From 7ea50bbaa8bf3b0caedc1f9789b79eec245e0fe9 Mon Sep 17 00:00:00 2001 From: Barnaby Shearer Date: Thu, 28 Mar 2024 19:03:44 +0000 Subject: [PATCH] Preserve exit codes --- bin/deploy.mjs | 10 +++++----- bin/dev.mjs | 2 +- bin/format.mjs | 2 +- bin/lint.mjs | 4 ++-- bin/test.mjs | 6 +++--- package.json | 2 +- src/cmd.mjs | 17 ++++++++++------- 7 files changed, 23 insertions(+), 20 deletions(-) diff --git a/bin/deploy.mjs b/bin/deploy.mjs index 256ae94..3e8c6fd 100755 --- a/bin/deploy.mjs +++ b/bin/deploy.mjs @@ -9,17 +9,17 @@ const release = process.argv[3]; fs.writeFileSync("src/release.ts", `export default "${release}";`); -await cmd(`wrangler secret:bulk /dev/stdin --env ${env}`); -await cmd( +cmd(`wrangler secret:bulk /dev/stdin --env ${env}`); +cmd( `sentry-cli releases --org change-engine --project ${basename(process.cwd())} new ${release} --finalize`, ); -await cmd( +cmd( `sentry-cli releases --org change-engine --project ${basename(process.cwd())} set-commits ${release}`, ); -await cmd(`wrangler deploy --env ${env} --outdir dist`); +cmd(`wrangler deploy --env ${env} --outdir dist`); -await cmd( +cmd( `sentry-cli sourcemaps --org change-engine --project ${basename(process.cwd())} upload --release="${release}" dist`, ); diff --git a/bin/dev.mjs b/bin/dev.mjs index ba8c349..55e2ff9 100755 --- a/bin/dev.mjs +++ b/bin/dev.mjs @@ -2,4 +2,4 @@ "use strict"; import { cmd } from "../src/cmd.mjs"; -await cmd("wrangler dev"); +cmd("wrangler dev"); diff --git a/bin/format.mjs b/bin/format.mjs index e032bc9..bdd3c74 100755 --- a/bin/format.mjs +++ b/bin/format.mjs @@ -2,4 +2,4 @@ "use strict"; import { cmd } from "../src/cmd.mjs"; -await cmd("prettier --write . !tsconfig.json !test/api.d.ts"); +cmd("prettier --write . !tsconfig.json !test/api.d.ts"); diff --git a/bin/lint.mjs b/bin/lint.mjs index f12d054..4fcad27 100755 --- a/bin/lint.mjs +++ b/bin/lint.mjs @@ -2,5 +2,5 @@ "use strict"; import { cmd } from "../src/cmd.mjs"; -await cmd("eslint --max-warnings=0 src"); -await cmd("prettier --check . !tsconfig.json !test/api.d.ts"); +cmd("eslint --max-warnings=0 src"); +cmd("prettier --check . !tsconfig.json !test/api.d.ts"); diff --git a/bin/test.mjs b/bin/test.mjs index 397fb15..fb8cdc7 100755 --- a/bin/test.mjs +++ b/bin/test.mjs @@ -7,12 +7,12 @@ import openapiTS from "openapi-typescript"; import { Miniflare } from "miniflare"; if (fs.existsSync("wrangler.toml")) { - await cmd("wrangler deploy --dry-run --outdir=dist"); + cmd("wrangler deploy --dry-run --outdir=dist"); const miniflare = new Miniflare({ modules: true, scriptPath: "dist/index.js", }); - const request = await fetch( + const request = fetch( `${await miniflare.ready}doc`, { SENTRY_DSN: null, SENTRY_ENVIRONMENT: null }, null, @@ -21,7 +21,7 @@ if (fs.existsSync("wrangler.toml")) { await miniflare.dispose(); fs.writeFileSync("test/api.d.ts", types); } -await cmd("vitest --globals --no-file-parallelism", [ +cmd("vitest --globals --no-file-parallelism", [ ...(!process.argv.slice(2).includes("-w") && !process.argv.slice(2).includes("--watch") ? ["--run"] diff --git a/package.json b/package.json index 7965c42..5e0243f 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "name": "two-stroke", "packageManager": "yarn@4.1.0", "type": "module", - "version": "1.0.10", + "version": "1.0.11", "devDependencies": { "@types/eslint": "^8.56.5", "@types/node": "^20.11.25", diff --git a/src/cmd.mjs b/src/cmd.mjs index 6df703a..77737cf 100644 --- a/src/cmd.mjs +++ b/src/cmd.mjs @@ -1,10 +1,13 @@ -import { spawn } from "child_process"; +import { spawnSync } from "child_process"; export function cmd(cmd, args = []) { - const p = spawn(cmd.split(" ")[0], [...cmd.split(" ").slice(1), ...args], { - stdio: "inherit", - }); - return new Promise((resolve) => { - p.on("exit", resolve); - }); + const { error, status } = spawnSync( + cmd.split(" ")[0], + [...cmd.split(" ").slice(1), ...args], + { + stdio: "inherit", + }, + ); + if (status) process.exit(status); + if (error) throw error; }