From 8bb4a965b113f0e35dc3ad56980875980f322dbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hu=C3=A1ng=20J=C3=B9nli=C3=A0ng?= Date: Tue, 24 Dec 2019 12:24:13 -0500 Subject: [PATCH 1/3] chore: add test files # Conflicts: # packages/babel-node/package.json --- packages/babel-node/package.json | 2 +- .../test/fixtures/babel-node/--presets/in-files/index.js | 1 + .../test/fixtures/babel-node/--presets/in-files/presetFile.js | 4 ++++ .../test/fixtures/babel-node/--presets/options.json | 3 +++ .../babel-node/test/fixtures/babel-node/--presets/stdout.txt | 2 ++ .../babel-node/test/fixtures/babel-node/-b/in-files/index.js | 1 + .../test/fixtures/babel-node/-b/in-files/presetFile.js | 4 ++++ packages/babel-node/test/fixtures/babel-node/-b/options.json | 3 +++ packages/babel-node/test/fixtures/babel-node/-b/stdout.txt | 2 ++ 9 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 packages/babel-node/test/fixtures/babel-node/--presets/in-files/index.js create mode 100644 packages/babel-node/test/fixtures/babel-node/--presets/in-files/presetFile.js create mode 100644 packages/babel-node/test/fixtures/babel-node/--presets/options.json create mode 100644 packages/babel-node/test/fixtures/babel-node/--presets/stdout.txt create mode 100644 packages/babel-node/test/fixtures/babel-node/-b/in-files/index.js create mode 100644 packages/babel-node/test/fixtures/babel-node/-b/in-files/presetFile.js create mode 100644 packages/babel-node/test/fixtures/babel-node/-b/options.json create mode 100644 packages/babel-node/test/fixtures/babel-node/-b/stdout.txt diff --git a/packages/babel-node/package.json b/packages/babel-node/package.json index 35a3ed463235..4faa600d8e63 100644 --- a/packages/babel-node/package.json +++ b/packages/babel-node/package.json @@ -20,7 +20,7 @@ ], "dependencies": { "@babel/register": "^7.7.7", - "commander": "^2.8.1", + "commander": "^4.0.1", "core-js": "^3.2.1", "lodash": "^4.17.13", "node-environment-flags": "^1.0.5", diff --git a/packages/babel-node/test/fixtures/babel-node/--presets/in-files/index.js b/packages/babel-node/test/fixtures/babel-node/--presets/in-files/index.js new file mode 100644 index 000000000000..85ce559e8f22 --- /dev/null +++ b/packages/babel-node/test/fixtures/babel-node/--presets/in-files/index.js @@ -0,0 +1 @@ +console.log("foo"); diff --git a/packages/babel-node/test/fixtures/babel-node/--presets/in-files/presetFile.js b/packages/babel-node/test/fixtures/babel-node/--presets/in-files/presetFile.js new file mode 100644 index 000000000000..b2d0556f1398 --- /dev/null +++ b/packages/babel-node/test/fixtures/babel-node/--presets/in-files/presetFile.js @@ -0,0 +1,4 @@ +module.exports = function () { + console.log("Preset was loaded, so --presets was used."); + return {}; +}; diff --git a/packages/babel-node/test/fixtures/babel-node/--presets/options.json b/packages/babel-node/test/fixtures/babel-node/--presets/options.json new file mode 100644 index 000000000000..bd14d5f365b2 --- /dev/null +++ b/packages/babel-node/test/fixtures/babel-node/--presets/options.json @@ -0,0 +1,3 @@ +{ + "args": ["--presets", "./presetFile.js", "index"] +} diff --git a/packages/babel-node/test/fixtures/babel-node/--presets/stdout.txt b/packages/babel-node/test/fixtures/babel-node/--presets/stdout.txt new file mode 100644 index 000000000000..69ccc409d020 --- /dev/null +++ b/packages/babel-node/test/fixtures/babel-node/--presets/stdout.txt @@ -0,0 +1,2 @@ +Preset was loaded, so --presets was used. +foo diff --git a/packages/babel-node/test/fixtures/babel-node/-b/in-files/index.js b/packages/babel-node/test/fixtures/babel-node/-b/in-files/index.js new file mode 100644 index 000000000000..85ce559e8f22 --- /dev/null +++ b/packages/babel-node/test/fixtures/babel-node/-b/in-files/index.js @@ -0,0 +1 @@ +console.log("foo"); diff --git a/packages/babel-node/test/fixtures/babel-node/-b/in-files/presetFile.js b/packages/babel-node/test/fixtures/babel-node/-b/in-files/presetFile.js new file mode 100644 index 000000000000..6e064ea108f2 --- /dev/null +++ b/packages/babel-node/test/fixtures/babel-node/-b/in-files/presetFile.js @@ -0,0 +1,4 @@ +module.exports = function () { + console.log("Preset was loaded, so -b was used."); + return {}; +}; diff --git a/packages/babel-node/test/fixtures/babel-node/-b/options.json b/packages/babel-node/test/fixtures/babel-node/-b/options.json new file mode 100644 index 000000000000..19044775d5e6 --- /dev/null +++ b/packages/babel-node/test/fixtures/babel-node/-b/options.json @@ -0,0 +1,3 @@ +{ + "args": ["-b", "./presetFile.js", "index"] +} diff --git a/packages/babel-node/test/fixtures/babel-node/-b/stdout.txt b/packages/babel-node/test/fixtures/babel-node/-b/stdout.txt new file mode 100644 index 000000000000..29cee3ef1391 --- /dev/null +++ b/packages/babel-node/test/fixtures/babel-node/-b/stdout.txt @@ -0,0 +1,2 @@ +Preset was loaded, so -b was used. +foo From 0a367f6199719f3a523c5e10e6f741f5c3ed7c23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hu=C3=A1ng=20J=C3=B9nli=C3=A0ng?= Date: Mon, 25 Nov 2019 15:07:58 -0500 Subject: [PATCH 2/3] fix: respect short flags when finding filename index --- packages/babel-node/src/_babel-node.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/babel-node/src/_babel-node.js b/packages/babel-node/src/_babel-node.js index 8e09639a5dd7..1bc69b805ae3 100644 --- a/packages/babel-node/src/_babel-node.js +++ b/packages/babel-node/src/_babel-node.js @@ -169,15 +169,15 @@ if (program.eval || program.print) { } if (arg[0] === "-") { - const camelArg = arg - .slice(2) - .replace(/-(\w)/, (s, c) => c.toUpperCase()); - const parsedArg = program[camelArg]; - if ( - arg === "-r" || - arg === "--require" || - (parsedArg && parsedArg !== true) - ) { + const parsedOption = program.options.find(option => { + return option.long === arg || option.short === arg; + }); + if (parsedOption === undefined) { + return; + } + const optionName = parsedOption.name(); + const parsedArg = program[optionName]; + if (optionName === "require" || (parsedArg && parsedArg !== true)) { ignoreNext = true; } } else { From ff09232cb7f4270e089878ac029e40a84350b6d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hu=C3=A1ng=20J=C3=B9nli=C3=A0ng?= Date: Mon, 25 Nov 2019 15:32:42 -0500 Subject: [PATCH 3/3] fix: use attributeName for kebab-case --- packages/babel-node/src/_babel-node.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/babel-node/src/_babel-node.js b/packages/babel-node/src/_babel-node.js index 1bc69b805ae3..9d472166ba46 100644 --- a/packages/babel-node/src/_babel-node.js +++ b/packages/babel-node/src/_babel-node.js @@ -175,7 +175,7 @@ if (program.eval || program.print) { if (parsedOption === undefined) { return; } - const optionName = parsedOption.name(); + const optionName = parsedOption.attributeName(); const parsedArg = program[optionName]; if (optionName === "require" || (parsedArg && parsedArg !== true)) { ignoreNext = true;