diff --git a/experimental/babel-preset-env/src/index.js b/experimental/babel-preset-env/src/index.js index 911909dea7..791848c2a7 100644 --- a/experimental/babel-preset-env/src/index.js +++ b/experimental/babel-preset-env/src/index.js @@ -50,11 +50,12 @@ export const isPluginRequired = (supportedEnvironments, plugin) => { const lowestImplementedVersion = plugin[environment]; const lowestTargetedVersion = supportedEnvironments[environment]; - if (lowestTargetedVersion < lowestImplementedVersion) { - return true; + if (typeof lowestTargetedVersion === "string") { + throw new Error(`Target version must be a number, + '${lowestTargetedVersion}' was given for '${environment}'`); } - return false; + return lowestTargetedVersion < lowestImplementedVersion; }); return isRequiredForEnvironments.length > 0 ? true : false; diff --git a/experimental/babel-preset-env/test/index.js b/experimental/babel-preset-env/test/index.js index e72908f428..b43db5c5c7 100644 --- a/experimental/babel-preset-env/test/index.js +++ b/experimental/babel-preset-env/test/index.js @@ -158,6 +158,20 @@ describe("babel-preset-env", () => { babelPresetEnv.isPluginRequired(targets, plugin); }, Error); }); + + it("will throw if target version is not a number", () => { + const plugin = { + "node": 6, + }; + + const targets = { + "node": "6.5", + }; + + assert.throws(() => { + babelPresetEnv.isPluginRequired(targets, plugin); + }, Error); + }); }); describe("validateLooseOption", () => {