From 2a6a98c22570dd4249a87b74eaf96e628a4b548c Mon Sep 17 00:00:00 2001 From: Christoph Knittel Date: Mon, 21 Jul 2025 15:59:59 +0200 Subject: [PATCH] Bundle as cjs to fix yarn create --- .gitignore | 2 +- package-lock.json | 2 +- package.json | 6 +++--- rollup.config.mjs | 4 ++-- src/Main.res | 12 ++++++++---- 5 files changed, 15 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index ccfc975..b8c9f23 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,4 @@ **/*.res.js **/*.res.mjs .bsb.lock -out/create-rescript-app.mjs +out/create-rescript-app.cjs diff --git a/package-lock.json b/package-lock.json index 6c9aa0b..a1d818f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.10.0-beta.1", "license": "ISC", "bin": { - "create-rescript-app": "out/create-rescript-app.mjs" + "create-rescript-app": "out/create-rescript-app.cjs" }, "devDependencies": { "@clack/prompts": "^0.11.0", diff --git a/package.json b/package.json index acf6669..e1f8919 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "create-rescript-app", "version": "1.10.0-beta.1", "description": "Quickly create new ReScript apps from project templates.", - "main": "out/create-rescript-app.mjs", + "main": "out/create-rescript-app.cjs", "scripts": { "start": "node src/Main.res.mjs", "prepack": "rescript && rollup -c", @@ -30,10 +30,10 @@ ], "files": [ "templates", - "out/create-rescript-app.mjs" + "out/create-rescript-app.cjs" ], "bin": { - "create-rescript-app": "out/create-rescript-app.mjs" + "create-rescript-app": "out/create-rescript-app.cjs" }, "devDependencies": { "@clack/prompts": "^0.11.0", diff --git a/rollup.config.mjs b/rollup.config.mjs index 7e44910..d1cca98 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -5,8 +5,8 @@ import terser from "@rollup/plugin-terser"; export default { input: `src/Main.res.mjs`, output: { - file: `out/create-rescript-app.mjs`, - format: "es", + file: `out/create-rescript-app.cjs`, + format: "cjs", banner: "#!/usr/bin/env node", }, plugins: [terser(), nodeResolve({ preferBuiltins: true }), commonjs()], diff --git a/src/Main.res b/src/Main.res index 14de45c..3603276 100644 --- a/src/Main.res +++ b/src/Main.res @@ -18,7 +18,7 @@ let handleError = async (~outro, perform) => Process.exitWithCode(1) } -let run = async () => { +let main = async () => { let version = await getVersion() P.intro(C.dim(`create-rescript-app ${version}`)) @@ -66,6 +66,10 @@ https://rescript-lang.org`, } } -try await run() catch { -| P.Canceled => P.cancel("Canceled.") -} +// Do not use top-level await, otherwise we can't package as .cjs. +let run = async () => + try await main() catch { + | P.Canceled => P.cancel("Canceled.") + } + +run()->Promise.ignore