From 7961570c7222b3c6ae074083e4b469f29d8a104c Mon Sep 17 00:00:00 2001 From: joe fleming Date: Thu, 4 Apr 2019 17:05:38 -0700 Subject: [PATCH] fix: reject form module, don't exit also resolve with the payload information --- src/cli.js | 6 +++++- src/index.js | 13 +++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/cli.js b/src/cli.js index af69b33..01cd8d3 100755 --- a/src/cli.js +++ b/src/cli.js @@ -36,4 +36,8 @@ function buildConfig(args) { // parse args from CLI const args = parseArgs(); -pkgcomp(buildConfig(args), utils.getIdent(), args); +pkgcomp(buildConfig(args), utils.getIdent(), args).catch(err => { + // eslint-disable-next-line no-console + console.error(err); + process.exit(err.exitCode); +}); diff --git a/src/index.js b/src/index.js index 4e792ca..54840fc 100644 --- a/src/index.js +++ b/src/index.js @@ -54,9 +54,14 @@ module.exports = async function pkgcomp(config, ident, opts = defaultOptions) { if (runCmd) { const res = await execCommand(config.cmd); - if (res.code !== 0) process.exit(res.code); - data.write(config.dataDir, ident, payload); - } else { - data.write(config.dataDir, ident, payload); + if (res.code !== 0) { + const err = new Error(`Script exited with code ${res.code}`); + err.exitCode = res.code; + err.cmd = res.cmd; + throw err; + } } + + data.write(config.dataDir, ident, payload); + return payload; };