From bd9dc67661462f9052c70d1e0e39465ea7836b63 Mon Sep 17 00:00:00 2001 From: Aleksej Komarov Date: Thu, 12 Aug 2021 18:52:04 +0300 Subject: [PATCH] v0.8.1 --- .yarn/juke/index.js | 420 ++++++++++++++++++++++---------------------- CHANGELOG.md | 6 + build.mjs | 13 +- package.json | 2 +- src/exec.ts | 23 +-- src/index.ts | 32 +++- tools/publish.sh | 2 +- 7 files changed, 262 insertions(+), 236 deletions(-) diff --git a/.yarn/juke/index.js b/.yarn/juke/index.js index 3cde779..4ee8fbf 100644 --- a/.yarn/juke/index.js +++ b/.yarn/juke/index.js @@ -54,9 +54,9 @@ var __toModule = (module2) => { return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2); }; -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/color-name-npm-1.1.4-025792b0ea-b044585952.zip/node_modules/color-name/index.js +// pnp:color-name-npm-1.1.4-025792b0ea-b044585952.zip/node_modules/color-name/index.js var require_color_name = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/color-name-npm-1.1.4-025792b0ea-b044585952.zip/node_modules/color-name/index.js"(exports, module2) { + "pnp:color-name-npm-1.1.4-025792b0ea-b044585952.zip/node_modules/color-name/index.js"(exports, module2) { "use strict"; module2.exports = { "aliceblue": [240, 248, 255], @@ -211,9 +211,9 @@ var require_color_name = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/color-convert-npm-2.0.1-79730e935b-79e6bdb9fd.zip/node_modules/color-convert/conversions.js +// pnp:color-convert-npm-2.0.1-79730e935b-79e6bdb9fd.zip/node_modules/color-convert/conversions.js var require_conversions = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/color-convert-npm-2.0.1-79730e935b-79e6bdb9fd.zip/node_modules/color-convert/conversions.js"(exports, module2) { + "pnp:color-convert-npm-2.0.1-79730e935b-79e6bdb9fd.zip/node_modules/color-convert/conversions.js"(exports, module2) { var cssKeywords = require_color_name(); var reverseKeywords = {}; for (const key of Object.keys(cssKeywords)) { @@ -882,9 +882,9 @@ var require_conversions = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/color-convert-npm-2.0.1-79730e935b-79e6bdb9fd.zip/node_modules/color-convert/route.js +// pnp:color-convert-npm-2.0.1-79730e935b-79e6bdb9fd.zip/node_modules/color-convert/route.js var require_route = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/color-convert-npm-2.0.1-79730e935b-79e6bdb9fd.zip/node_modules/color-convert/route.js"(exports, module2) { + "pnp:color-convert-npm-2.0.1-79730e935b-79e6bdb9fd.zip/node_modules/color-convert/route.js"(exports, module2) { var conversions = require_conversions(); function buildGraph() { const graph = {}; @@ -950,9 +950,9 @@ var require_route = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/color-convert-npm-2.0.1-79730e935b-79e6bdb9fd.zip/node_modules/color-convert/index.js +// pnp:color-convert-npm-2.0.1-79730e935b-79e6bdb9fd.zip/node_modules/color-convert/index.js var require_color_convert = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/color-convert-npm-2.0.1-79730e935b-79e6bdb9fd.zip/node_modules/color-convert/index.js"(exports, module2) { + "pnp:color-convert-npm-2.0.1-79730e935b-79e6bdb9fd.zip/node_modules/color-convert/index.js"(exports, module2) { var conversions = require_conversions(); var route = require_route(); var convert = {}; @@ -1011,9 +1011,9 @@ var require_color_convert = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/ansi-styles-npm-4.3.0-245c7d42c7-513b44c3b2.zip/node_modules/ansi-styles/index.js +// pnp:ansi-styles-npm-4.3.0-245c7d42c7-513b44c3b2.zip/node_modules/ansi-styles/index.js var require_ansi_styles = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/ansi-styles-npm-4.3.0-245c7d42c7-513b44c3b2.zip/node_modules/ansi-styles/index.js"(exports, module2) { + "pnp:ansi-styles-npm-4.3.0-245c7d42c7-513b44c3b2.zip/node_modules/ansi-styles/index.js"(exports, module2) { "use strict"; var wrapAnsi16 = (fn, offset) => (...args) => { const code = fn(...args); @@ -1150,9 +1150,9 @@ var require_ansi_styles = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/has-flag-npm-4.0.0-32af9f0536-261a135703.zip/node_modules/has-flag/index.js +// pnp:has-flag-npm-4.0.0-32af9f0536-261a135703.zip/node_modules/has-flag/index.js var require_has_flag = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/has-flag-npm-4.0.0-32af9f0536-261a135703.zip/node_modules/has-flag/index.js"(exports, module2) { + "pnp:has-flag-npm-4.0.0-32af9f0536-261a135703.zip/node_modules/has-flag/index.js"(exports, module2) { "use strict"; module2.exports = (flag, argv = process.argv) => { const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--"; @@ -1163,9 +1163,9 @@ var require_has_flag = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/supports-color-npm-7.2.0-606bfcf7da-3dda818de0.zip/node_modules/supports-color/index.js +// pnp:supports-color-npm-7.2.0-606bfcf7da-3dda818de0.zip/node_modules/supports-color/index.js var require_supports_color = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/supports-color-npm-7.2.0-606bfcf7da-3dda818de0.zip/node_modules/supports-color/index.js"(exports, module2) { + "pnp:supports-color-npm-7.2.0-606bfcf7da-3dda818de0.zip/node_modules/supports-color/index.js"(exports, module2) { "use strict"; var os = require("os"); var tty = require("tty"); @@ -1265,9 +1265,9 @@ var require_supports_color = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/chalk-npm-4.1.2-ba8b67ab80-fe75c9d5c7.zip/node_modules/chalk/source/util.js +// pnp:chalk-npm-4.1.2-ba8b67ab80-fe75c9d5c7.zip/node_modules/chalk/source/util.js var require_util = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/chalk-npm-4.1.2-ba8b67ab80-fe75c9d5c7.zip/node_modules/chalk/source/util.js"(exports, module2) { + "pnp:chalk-npm-4.1.2-ba8b67ab80-fe75c9d5c7.zip/node_modules/chalk/source/util.js"(exports, module2) { "use strict"; var stringReplaceAll = (string, substring, replacer) => { let index = string.indexOf(substring); @@ -1304,9 +1304,9 @@ var require_util = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/chalk-npm-4.1.2-ba8b67ab80-fe75c9d5c7.zip/node_modules/chalk/source/templates.js +// pnp:chalk-npm-4.1.2-ba8b67ab80-fe75c9d5c7.zip/node_modules/chalk/source/templates.js var require_templates = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/chalk-npm-4.1.2-ba8b67ab80-fe75c9d5c7.zip/node_modules/chalk/source/templates.js"(exports, module2) { + "pnp:chalk-npm-4.1.2-ba8b67ab80-fe75c9d5c7.zip/node_modules/chalk/source/templates.js"(exports, module2) { "use strict"; var TEMPLATE_REGEX = /(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; var STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; @@ -1418,9 +1418,9 @@ var require_templates = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/chalk-npm-4.1.2-ba8b67ab80-fe75c9d5c7.zip/node_modules/chalk/source/index.js +// pnp:chalk-npm-4.1.2-ba8b67ab80-fe75c9d5c7.zip/node_modules/chalk/source/index.js var require_source = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/chalk-npm-4.1.2-ba8b67ab80-fe75c9d5c7.zip/node_modules/chalk/source/index.js"(exports, module2) { + "pnp:chalk-npm-4.1.2-ba8b67ab80-fe75c9d5c7.zip/node_modules/chalk/source/index.js"(exports, module2) { "use strict"; var ansiStyles = require_ansi_styles(); var { stdout: stdoutColor, stderr: stderrColor } = require_supports_color(); @@ -1592,9 +1592,9 @@ var require_source = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/lowercase.js +// pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/lowercase.js var require_lowercase = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/lowercase.js"(exports, module2) { + "pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/lowercase.js"(exports, module2) { "use strict"; function lowercase(str) { str = String(str); @@ -1610,9 +1610,9 @@ var require_lowercase = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/uppercase.js +// pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/uppercase.js var require_uppercase = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/uppercase.js"(exports, module2) { + "pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/uppercase.js"(exports, module2) { "use strict"; function uppercase(str) { str = String(str); @@ -1628,9 +1628,9 @@ var require_uppercase = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/camelcase.js +// pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/camelcase.js var require_camelcase = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/camelcase.js"(exports, module2) { + "pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/camelcase.js"(exports, module2) { "use strict"; var lowercase = require_lowercase(); var uppercase = require_uppercase(); @@ -1661,9 +1661,9 @@ var require_camelcase = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/capitalcase.js +// pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/capitalcase.js var require_capitalcase = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/capitalcase.js"(exports, module2) { + "pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/capitalcase.js"(exports, module2) { "use strict"; var uppercase = require_uppercase(); function capitalcase(str) { @@ -1677,9 +1677,9 @@ var require_capitalcase = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/snakecase.js +// pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/snakecase.js var require_snakecase = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/snakecase.js"(exports, module2) { + "pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/snakecase.js"(exports, module2) { "use strict"; var lowercase = require_lowercase(); var uppercase = require_uppercase(); @@ -1721,9 +1721,9 @@ var require_snakecase = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/constcase.js +// pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/constcase.js var require_constcase = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/constcase.js"(exports, module2) { + "pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/constcase.js"(exports, module2) { "use strict"; var uppercase = require_uppercase(); var snakecase = require_snakecase(); @@ -1740,9 +1740,9 @@ var require_constcase = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/cramcase.js +// pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/cramcase.js var require_cramcase = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/cramcase.js"(exports, module2) { + "pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/cramcase.js"(exports, module2) { "use strict"; var snakecase = require_snakecase(); function cramcase(str) { @@ -1752,9 +1752,9 @@ var require_cramcase = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/decapitalcase.js +// pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/decapitalcase.js var require_decapitalcase = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/decapitalcase.js"(exports, module2) { + "pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/decapitalcase.js"(exports, module2) { "use strict"; var lowercase = require_lowercase(); function capitalcase(str) { @@ -1768,9 +1768,9 @@ var require_decapitalcase = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/dotcase.js +// pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/dotcase.js var require_dotcase = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/dotcase.js"(exports, module2) { + "pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/dotcase.js"(exports, module2) { "use strict"; var snakecase = require_snakecase(); function dotcase(str) { @@ -1780,9 +1780,9 @@ var require_dotcase = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/enumcase.js +// pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/enumcase.js var require_enumcase = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/enumcase.js"(exports, module2) { + "pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/enumcase.js"(exports, module2) { "use strict"; var snakecase = require_snakecase(); function enumcase(str) { @@ -1792,9 +1792,9 @@ var require_enumcase = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/pascalcase.js +// pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/pascalcase.js var require_pascalcase = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/pascalcase.js"(exports, module2) { + "pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/pascalcase.js"(exports, module2) { "use strict"; var camelcase2 = require_camelcase(); var capitalcase = require_capitalcase(); @@ -1805,9 +1805,9 @@ var require_pascalcase = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/pathcase.js +// pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/pathcase.js var require_pathcase = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/pathcase.js"(exports, module2) { + "pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/pathcase.js"(exports, module2) { "use strict"; var snakecase = require_snakecase(); function pathcase(str) { @@ -1817,9 +1817,9 @@ var require_pathcase = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/trimcase.js +// pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/trimcase.js var require_trimcase = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/trimcase.js"(exports, module2) { + "pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/trimcase.js"(exports, module2) { "use strict"; function trimcase(str) { return String(str).trim(); @@ -1828,9 +1828,9 @@ var require_trimcase = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/sentencecase.js +// pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/sentencecase.js var require_sentencecase = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/sentencecase.js"(exports, module2) { + "pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/sentencecase.js"(exports, module2) { "use strict"; var lowercase = require_lowercase(); var trimcase = require_trimcase(); @@ -1848,9 +1848,9 @@ var require_sentencecase = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/spacecase.js +// pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/spacecase.js var require_spacecase = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/spacecase.js"(exports, module2) { + "pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/spacecase.js"(exports, module2) { "use strict"; var snakecase = require_snakecase(); function spacecase(str) { @@ -1860,9 +1860,9 @@ var require_spacecase = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/spinalcase.js +// pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/spinalcase.js var require_spinalcase = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/spinalcase.js"(exports, module2) { + "pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/spinalcase.js"(exports, module2) { "use strict"; var snakecase = require_snakecase(); function spinalcase2(str) { @@ -1872,9 +1872,9 @@ var require_spinalcase = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/titlecase.js +// pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/titlecase.js var require_titlecase = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/titlecase.js"(exports, module2) { + "pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/titlecase.js"(exports, module2) { "use strict"; var snakecase = require_snakecase(); var lowercase = require_lowercase(); @@ -1895,9 +1895,9 @@ var require_titlecase = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/index.js +// pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/index.js var require_lib = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/index.js"(exports, module2) { + "pnp:stringcase-npm-4.3.1-2f1c329337-741a448632.zip/node_modules/stringcase/lib/index.js"(exports, module2) { "use strict"; var camelcase2 = require_camelcase(); var capitalcase = require_capitalcase(); @@ -1955,9 +1955,9 @@ var require_lib = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/fs.realpath-npm-1.0.0-c8f05d8126-99ddea01a7.zip/node_modules/fs.realpath/old.js +// pnp:fs.realpath-npm-1.0.0-c8f05d8126-99ddea01a7.zip/node_modules/fs.realpath/old.js var require_old = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/fs.realpath-npm-1.0.0-c8f05d8126-99ddea01a7.zip/node_modules/fs.realpath/old.js"(exports) { + "pnp:fs.realpath-npm-1.0.0-c8f05d8126-99ddea01a7.zip/node_modules/fs.realpath/old.js"(exports) { var pathModule = require("path"); var isWindows = process.platform === "win32"; var fs4 = require("fs"); @@ -2167,9 +2167,9 @@ var require_old = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/fs.realpath-npm-1.0.0-c8f05d8126-99ddea01a7.zip/node_modules/fs.realpath/index.js +// pnp:fs.realpath-npm-1.0.0-c8f05d8126-99ddea01a7.zip/node_modules/fs.realpath/index.js var require_fs = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/fs.realpath-npm-1.0.0-c8f05d8126-99ddea01a7.zip/node_modules/fs.realpath/index.js"(exports, module2) { + "pnp:fs.realpath-npm-1.0.0-c8f05d8126-99ddea01a7.zip/node_modules/fs.realpath/index.js"(exports, module2) { module2.exports = realpath; realpath.realpath = realpath; realpath.sync = realpathSync; @@ -2226,9 +2226,9 @@ var require_fs = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/concat-map-npm-0.0.1-85a921b7ee-902a9f5d89.zip/node_modules/concat-map/index.js +// pnp:concat-map-npm-0.0.1-85a921b7ee-902a9f5d89.zip/node_modules/concat-map/index.js var require_concat_map = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/concat-map-npm-0.0.1-85a921b7ee-902a9f5d89.zip/node_modules/concat-map/index.js"(exports, module2) { + "pnp:concat-map-npm-0.0.1-85a921b7ee-902a9f5d89.zip/node_modules/concat-map/index.js"(exports, module2) { module2.exports = function(xs, fn) { var res = []; for (var i = 0; i < xs.length; i++) { @@ -2246,9 +2246,9 @@ var require_concat_map = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/balanced-match-npm-1.0.0-951a2ad706-9b67bfe558.zip/node_modules/balanced-match/index.js +// pnp:balanced-match-npm-1.0.0-951a2ad706-9b67bfe558.zip/node_modules/balanced-match/index.js var require_balanced_match = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/balanced-match-npm-1.0.0-951a2ad706-9b67bfe558.zip/node_modules/balanced-match/index.js"(exports, module2) { + "pnp:balanced-match-npm-1.0.0-951a2ad706-9b67bfe558.zip/node_modules/balanced-match/index.js"(exports, module2) { "use strict"; module2.exports = balanced; function balanced(a, b, str) { @@ -2303,9 +2303,9 @@ var require_balanced_match = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/brace-expansion-npm-1.1.11-fb95eb05ad-faf34a7bb0.zip/node_modules/brace-expansion/index.js +// pnp:brace-expansion-npm-1.1.11-fb95eb05ad-faf34a7bb0.zip/node_modules/brace-expansion/index.js var require_brace_expansion = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/brace-expansion-npm-1.1.11-fb95eb05ad-faf34a7bb0.zip/node_modules/brace-expansion/index.js"(exports, module2) { + "pnp:brace-expansion-npm-1.1.11-fb95eb05ad-faf34a7bb0.zip/node_modules/brace-expansion/index.js"(exports, module2) { var concatMap = require_concat_map(); var balanced = require_balanced_match(); module2.exports = expandTop; @@ -2448,9 +2448,9 @@ var require_brace_expansion = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/minimatch-npm-3.0.4-6e76f51c23-66ac295f8a.zip/node_modules/minimatch/minimatch.js +// pnp:minimatch-npm-3.0.4-6e76f51c23-66ac295f8a.zip/node_modules/minimatch/minimatch.js var require_minimatch = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/minimatch-npm-3.0.4-6e76f51c23-66ac295f8a.zip/node_modules/minimatch/minimatch.js"(exports, module2) { + "pnp:minimatch-npm-3.0.4-6e76f51c23-66ac295f8a.zip/node_modules/minimatch/minimatch.js"(exports, module2) { module2.exports = minimatch; minimatch.Minimatch = Minimatch; var path2 = { sep: "/" }; @@ -3016,9 +3016,9 @@ var require_minimatch = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/inherits-npm-2.0.4-c66b3957a0-4a48a73384.zip/node_modules/inherits/inherits_browser.js +// pnp:inherits-npm-2.0.4-c66b3957a0-4a48a73384.zip/node_modules/inherits/inherits_browser.js var require_inherits_browser = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/inherits-npm-2.0.4-c66b3957a0-4a48a73384.zip/node_modules/inherits/inherits_browser.js"(exports, module2) { + "pnp:inherits-npm-2.0.4-c66b3957a0-4a48a73384.zip/node_modules/inherits/inherits_browser.js"(exports, module2) { if (typeof Object.create === "function") { module2.exports = function inherits(ctor, superCtor) { if (superCtor) { @@ -3048,9 +3048,9 @@ var require_inherits_browser = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/inherits-npm-2.0.4-c66b3957a0-4a48a73384.zip/node_modules/inherits/inherits.js +// pnp:inherits-npm-2.0.4-c66b3957a0-4a48a73384.zip/node_modules/inherits/inherits.js var require_inherits = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/inherits-npm-2.0.4-c66b3957a0-4a48a73384.zip/node_modules/inherits/inherits.js"(exports, module2) { + "pnp:inherits-npm-2.0.4-c66b3957a0-4a48a73384.zip/node_modules/inherits/inherits.js"(exports, module2) { try { util = require("util"); if (typeof util.inherits !== "function") @@ -3063,9 +3063,9 @@ var require_inherits = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/path-is-absolute-npm-1.0.1-31bc695ffd-060840f92c.zip/node_modules/path-is-absolute/index.js +// pnp:path-is-absolute-npm-1.0.1-31bc695ffd-060840f92c.zip/node_modules/path-is-absolute/index.js var require_path_is_absolute = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/path-is-absolute-npm-1.0.1-31bc695ffd-060840f92c.zip/node_modules/path-is-absolute/index.js"(exports, module2) { + "pnp:path-is-absolute-npm-1.0.1-31bc695ffd-060840f92c.zip/node_modules/path-is-absolute/index.js"(exports, module2) { "use strict"; function posix(path2) { return path2.charAt(0) === "/"; @@ -3083,9 +3083,9 @@ var require_path_is_absolute = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/glob-npm-7.1.7-5698ad9c48-b61f48973b.zip/node_modules/glob/common.js +// pnp:glob-npm-7.1.7-5698ad9c48-b61f48973b.zip/node_modules/glob/common.js var require_common = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/glob-npm-7.1.7-5698ad9c48-b61f48973b.zip/node_modules/glob/common.js"(exports) { + "pnp:glob-npm-7.1.7-5698ad9c48-b61f48973b.zip/node_modules/glob/common.js"(exports) { exports.setopts = setopts; exports.ownProp = ownProp; exports.makeAbs = makeAbs; @@ -3274,9 +3274,9 @@ var require_common = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/glob-npm-7.1.7-5698ad9c48-b61f48973b.zip/node_modules/glob/sync.js +// pnp:glob-npm-7.1.7-5698ad9c48-b61f48973b.zip/node_modules/glob/sync.js var require_sync = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/glob-npm-7.1.7-5698ad9c48-b61f48973b.zip/node_modules/glob/sync.js"(exports, module2) { + "pnp:glob-npm-7.1.7-5698ad9c48-b61f48973b.zip/node_modules/glob/sync.js"(exports, module2) { module2.exports = globSync; globSync.GlobSync = GlobSync; var fs4 = require("fs"); @@ -3625,9 +3625,9 @@ var require_sync = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/wrappy-npm-1.0.2-916de4d4b3-159da4805f.zip/node_modules/wrappy/wrappy.js +// pnp:wrappy-npm-1.0.2-916de4d4b3-159da4805f.zip/node_modules/wrappy/wrappy.js var require_wrappy = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/wrappy-npm-1.0.2-916de4d4b3-159da4805f.zip/node_modules/wrappy/wrappy.js"(exports, module2) { + "pnp:wrappy-npm-1.0.2-916de4d4b3-159da4805f.zip/node_modules/wrappy/wrappy.js"(exports, module2) { module2.exports = wrappy; function wrappy(fn, cb) { if (fn && cb) @@ -3656,9 +3656,9 @@ var require_wrappy = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/once-npm-1.4.0-ccf03ef07a-cd0a885013.zip/node_modules/once/once.js +// pnp:once-npm-1.4.0-ccf03ef07a-cd0a885013.zip/node_modules/once/once.js var require_once = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/once-npm-1.4.0-ccf03ef07a-cd0a885013.zip/node_modules/once/once.js"(exports, module2) { + "pnp:once-npm-1.4.0-ccf03ef07a-cd0a885013.zip/node_modules/once/once.js"(exports, module2) { var wrappy = require_wrappy(); module2.exports = wrappy(once); module2.exports.strict = wrappy(onceStrict); @@ -3701,9 +3701,9 @@ var require_once = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/inflight-npm-1.0.6-ccedb4b908-f4f76aa072.zip/node_modules/inflight/inflight.js +// pnp:inflight-npm-1.0.6-ccedb4b908-f4f76aa072.zip/node_modules/inflight/inflight.js var require_inflight = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/inflight-npm-1.0.6-ccedb4b908-f4f76aa072.zip/node_modules/inflight/inflight.js"(exports, module2) { + "pnp:inflight-npm-1.0.6-ccedb4b908-f4f76aa072.zip/node_modules/inflight/inflight.js"(exports, module2) { var wrappy = require_wrappy(); var reqs = Object.create(null); var once = require_once(); @@ -3748,9 +3748,9 @@ var require_inflight = __commonJS({ } }); -// pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/glob-npm-7.1.7-5698ad9c48-b61f48973b.zip/node_modules/glob/glob.js +// pnp:glob-npm-7.1.7-5698ad9c48-b61f48973b.zip/node_modules/glob/glob.js var require_glob = __commonJS({ - "pnp:/Users/style/Documents/Projects/juke-build/.yarn/cache/glob-npm-7.1.7-5698ad9c48-b61f48973b.zip/node_modules/glob/glob.js"(exports, module2) { + "pnp:glob-npm-7.1.7-5698ad9c48-b61f48973b.zip/node_modules/glob/glob.js"(exports, module2) { module2.exports = glob2; var fs4 = require("fs"); var rp = require_fs(); @@ -4323,7 +4323,7 @@ var import_chalk4 = __toModule(require_source()); var import_module = __toModule(require("module")); // pnp:/Users/style/Documents/Projects/juke-build/package.json -var version = "0.8.0"; +var version = "0.8.1"; // pnp:/Users/style/Documents/Projects/juke-build/src/chdir.ts var import_fs = __toModule(require("fs")); @@ -4347,27 +4347,124 @@ var chdir = (directory, relativeTo) => { process.chdir(directory); }; -// pnp:/Users/style/Documents/Projects/juke-build/src/logger.ts +// pnp:/Users/style/Documents/Projects/juke-build/src/exec.ts var import_chalk = __toModule(require_source()); +var import_child_process = __toModule(require("child_process")); +var import_fs2 = __toModule(require("fs")); +var import_path2 = __toModule(require("path")); +var children = new Set(); +var killChildren = () => { + for (const child of children) { + child.kill("SIGTERM"); + children.delete(child); + console.log("killed child process"); + } +}; +var trap = (signals, handler) => { + let readline; + if (process.platform === "win32") { + readline = require("readline").createInterface({ + input: process.stdin, + output: process.stdout + }); + } + for (const signal of signals) { + const handleSignal = () => handler(signal); + if (signal === "EXIT") { + process.on("exit", handleSignal); + continue; + } + if (readline) { + readline.on("SIG" + signal, handleSignal); + } + process.on("SIG" + signal, handleSignal); + } +}; +var ExitCode = class extends Error { + constructor(code, signal) { + super("Process exited with code: " + code); + this.code = null; + this.signal = null; + this.code = code; + this.signal = signal || null; + } +}; +var exec = (executable, args = [], options = {}) => { + const _a = options, { + silent = false, + throw: canThrow = true + } = _a, spawnOptions = __objRest(_a, [ + "silent", + "throw" + ]); + return new Promise((resolve, reject) => { + if (import_fs2.default.existsSync(executable)) { + executable = (0, import_path2.resolve)(executable); + } + if (process.env.JUKE_DEBUG) { + console.log(import_chalk.default.grey("$", executable, ...args)); + } + const child = (0, import_child_process.spawn)(executable, args, spawnOptions); + children.add(child); + let stdout = ""; + let stderr = ""; + let combined = ""; + child.stdout.on("data", (data) => { + if (!silent) { + process.stdout.write(data); + } + stdout += data; + combined += data; + }); + child.stderr.on("data", (data) => { + if (!silent) { + process.stderr.write(data); + } + stderr += data; + combined += data; + }); + child.on("error", (err) => reject(err)); + child.on("exit", (code, signal) => { + children.delete(child); + if (code !== 0 && canThrow) { + const error = new ExitCode(code); + error.code = code; + error.signal = signal; + reject(error); + return; + } + resolve({ + code, + signal, + stdout, + stderr, + combined + }); + }); + }); +}; + +// pnp:/Users/style/Documents/Projects/juke-build/src/logger.ts +var import_chalk2 = __toModule(require_source()); var logger = { log: (...args) => { console.log(...args); }, error: (...args) => { - console.log(import_chalk.default.bold(import_chalk.default.redBright("=>"), import_chalk.default.whiteBright(...args))); + console.log(import_chalk2.default.bold(import_chalk2.default.redBright("=>"), import_chalk2.default.whiteBright(...args))); }, action: (...args) => { - console.log(import_chalk.default.bold(import_chalk.default.greenBright("=>"), import_chalk.default.whiteBright(...args))); + console.log(import_chalk2.default.bold(import_chalk2.default.greenBright("=>"), import_chalk2.default.whiteBright(...args))); }, warn: (...args) => { - console.log(import_chalk.default.bold(import_chalk.default.yellowBright("=>"), import_chalk.default.whiteBright(...args))); + console.log(import_chalk2.default.bold(import_chalk2.default.yellowBright("=>"), import_chalk2.default.whiteBright(...args))); }, info: (...args) => { - console.log(import_chalk.default.bold(import_chalk.default.blueBright("::"), import_chalk.default.whiteBright(...args))); + console.log(import_chalk2.default.bold(import_chalk2.default.blueBright("::"), import_chalk2.default.whiteBright(...args))); }, debug: (...args) => { if (process.env.JUKE_DEBUG) { - console.log(import_chalk.default.gray(...args)); + console.log(import_chalk2.default.gray(...args)); } } }; @@ -4577,119 +4674,6 @@ var parseArgs = (args, parameters) => { return parameterMap; }; -// pnp:/Users/style/Documents/Projects/juke-build/src/exec.ts -var import_chalk2 = __toModule(require_source()); -var import_child_process = __toModule(require("child_process")); -var import_fs2 = __toModule(require("fs")); -var import_path2 = __toModule(require("path")); -var children = new Set(); -var killChildren = () => { - for (const child of children) { - child.kill("SIGTERM"); - children.delete(child); - console.log("killed child process"); - } -}; -var trap = (signals, handler) => { - let readline; - if (process.platform === "win32") { - readline = require("readline").createInterface({ - input: process.stdin, - output: process.stdout - }); - } - for (const signal of signals) { - const handleSignal = () => handler(signal); - if (signal === "EXIT") { - process.on("exit", handleSignal); - continue; - } - if (readline) { - readline.on("SIG" + signal, handleSignal); - } - process.on("SIG" + signal, handleSignal); - } -}; -trap(["EXIT", "BREAK", "HUP", "INT", "TERM"], (signal) => { - if (signal !== "EXIT") { - console.log("Received", signal); - } - killChildren(); - if (signal !== "EXIT") { - process.exit(1); - } -}); -var exceptionHandler = (err) => { - console.log(err); - killChildren(); - process.exit(1); -}; -process.on("unhandledRejection", exceptionHandler); -process.on("uncaughtException", exceptionHandler); -var ExitCode = class extends Error { - constructor(code, signal) { - super("Process exited with code: " + code); - this.code = null; - this.signal = null; - this.code = code; - this.signal = signal || null; - } -}; -var exec = (executable, args = [], options = {}) => { - const _a = options, { - silent = false, - throw: canThrow = true - } = _a, spawnOptions = __objRest(_a, [ - "silent", - "throw" - ]); - return new Promise((resolve, reject) => { - if (import_fs2.default.existsSync(executable)) { - executable = (0, import_path2.resolve)(executable); - } - if (process.env.JUKE_DEBUG) { - console.log(import_chalk2.default.grey("$", executable, ...args)); - } - const child = (0, import_child_process.spawn)(executable, args, spawnOptions); - children.add(child); - let stdout = ""; - let stderr = ""; - let combined = ""; - child.stdout.on("data", (data) => { - if (!silent) { - process.stdout.write(data); - } - stdout += data; - combined += data; - }); - child.stderr.on("data", (data) => { - if (!silent) { - process.stderr.write(data); - } - stderr += data; - combined += data; - }); - child.on("error", (err) => reject(err)); - child.on("exit", (code, signal) => { - children.delete(child); - if (code !== 0 && canThrow) { - const error = new ExitCode(code); - error.code = code; - error.signal = signal; - reject(error); - return; - } - resolve({ - code, - signal, - stdout, - stderr, - combined - }); - }); - }); -}; - // pnp:/Users/style/Documents/Projects/juke-build/src/fs.ts var import_fs3 = __toModule(require("fs")); var import_glob = __toModule(require_glob()); @@ -5056,6 +5040,7 @@ var createTarget = (config) => new Target(config); // pnp:/Users/style/Documents/Projects/juke-build/src/index.ts var chalk4 = import_chalk4.default; +var lastExitCode = null; var setup = async (config) => { logger.info(`Juke Build version ${version}`); if (!config.file) { @@ -5100,9 +5085,30 @@ var setup = async (config) => { default: DefaultTarget, singleTarget: config.singleTarget }); - return runner.start(); + return runner.start().then((code) => { + lastExitCode = code; + return code; + }); }; var sleep = (time) => new Promise((resolve) => setTimeout(resolve, time)); +trap(["EXIT", "BREAK", "HUP", "INT", "TERM"], (signal) => { + if (signal !== "EXIT") { + console.log("Received", signal); + } + killChildren(); + if (signal !== "EXIT") { + process.exit(1); + } else if (lastExitCode !== null) { + process.exit(lastExitCode); + } +}); +var exceptionHandler = (err) => { + console.log(err); + killChildren(); + process.exit(1); +}; +process.on("unhandledRejection", exceptionHandler); +process.on("uncaughtException", exceptionHandler); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { ExitCode, diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f85ac6..3d21247 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ ## [Unreleased] +## [0.8.1] - 2021-08-12 + +### Fixed + +- Juke will properly exit with a non-zero exit code if any target has failed. As before, this is overridable via `Juke.setup().then((code) => ...)`. + ## [0.8.0] - 2021-08-11 ### Added diff --git a/build.mjs b/build.mjs index ddbcbf5..18916bb 100755 --- a/build.mjs +++ b/build.mjs @@ -44,11 +44,16 @@ export const BundleTarget = new Juke.Target({ entryPoints: ['src/index.ts'], outfile: 'dist/index.js', }); - if (String.prototype.replaceAll) { - const content = fs.readFileSync('dist/index.js', 'utf-8') - .replaceAll(process.cwd() + '/.yarn/cache/', ''); - fs.writeFileSync('dist/index.js', content); + // A very crude implementation of replaceAll + let content = fs.readFileSync('dist/index.js', 'utf-8'); + while (true) { + const nextContent = content.replace(process.cwd() + '/.yarn/cache/', ''); + if (content === nextContent) { + break; + } + content = nextContent; } + fs.writeFileSync('dist/index.js', content); }, }); diff --git a/package.json b/package.json index d4459fc..b6a460e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "juke-build", - "version": "0.8.0", + "version": "0.8.1", "description": "The AKE-less Build System for JavaScript and Node.js.", "keywords": [ "build", diff --git a/src/exec.ts b/src/exec.ts index 235a53b..d76823f 100644 --- a/src/exec.ts +++ b/src/exec.ts @@ -5,7 +5,7 @@ import { resolve as resolvePath } from 'path'; const children = new Set(); -const killChildren = () => { +export const killChildren = () => { for (const child of children) { child.kill('SIGTERM'); children.delete(child); @@ -15,7 +15,7 @@ const killChildren = () => { type SignalHandler = (signal: string) => void; -const trap = (signals: string[], handler: SignalHandler) => { +export const trap = (signals: string[], handler: SignalHandler) => { let readline; if (process.platform === 'win32') { readline = require('readline').createInterface({ @@ -36,25 +36,6 @@ const trap = (signals: string[], handler: SignalHandler) => { } }; -trap(['EXIT', 'BREAK', 'HUP', 'INT', 'TERM'], (signal) => { - if (signal !== 'EXIT') { - console.log('Received', signal); - } - killChildren(); - if (signal !== 'EXIT') { - process.exit(1); - } -}); - -const exceptionHandler = (err: unknown) => { - console.log(err); - killChildren(); - process.exit(1); -}; - -process.on('unhandledRejection', exceptionHandler); -process.on('uncaughtException', exceptionHandler); - export class ExitCode extends Error { code: number | null = null; signal: string | null = null; diff --git a/src/index.ts b/src/index.ts index ecd9c4f..4cd3b59 100644 --- a/src/index.ts +++ b/src/index.ts @@ -2,6 +2,7 @@ import _chalk from 'chalk'; import { createRequire } from 'module'; import { version } from '../package.json'; import { chdir } from './chdir'; +import { killChildren, trap } from './exec'; import { logger } from './logger'; import { createParameter, Parameter } from './parameter'; import { runner } from './runner'; @@ -22,6 +23,8 @@ export { export const chalk = _chalk; +let lastExitCode: number | null = null; + type SetupConfig = { file: string; /** @@ -37,7 +40,7 @@ type SetupConfig = { * @param config Juke Build configuration. * @returns Exit code of the whole runner process. */ -export const setup = async (config: SetupConfig) => { +export const setup = async (config: SetupConfig): Promise => { logger.info(`Juke Build version ${version}`) if (!config.file) { logger.error(`Field 'file' is required in Juke.setup()`); @@ -89,9 +92,34 @@ export const setup = async (config: SetupConfig) => { default: DefaultTarget, singleTarget: config.singleTarget, }); - return runner.start(); + return runner.start().then((code) => { + lastExitCode = code; + return code; + }); }; export const sleep = (time: number) => ( new Promise((resolve) => setTimeout(resolve, time)) ); + +trap(['EXIT', 'BREAK', 'HUP', 'INT', 'TERM'], (signal) => { + if (signal !== 'EXIT') { + console.log('Received', signal); + } + killChildren(); + if (signal !== 'EXIT') { + process.exit(1); + } + else if (lastExitCode !== null) { + process.exit(lastExitCode); + } +}); + +const exceptionHandler = (err: unknown) => { + console.log(err); + killChildren(); + process.exit(1); +}; + +process.on('unhandledRejection', exceptionHandler); +process.on('uncaughtException', exceptionHandler); diff --git a/tools/publish.sh b/tools/publish.sh index 565a71c..4793ed7 100755 --- a/tools/publish.sh +++ b/tools/publish.sh @@ -20,7 +20,7 @@ fi if [[ ${from_git} == "0" ]]; then echo "=> Starting versioning tool" - yarn release-tool version + yarn release-tool version --yes fi echo "=> Pushing to git"