From 68c2a725c656f5e5d09a8b92c5891b4cd01ce8d3 Mon Sep 17 00:00:00 2001 From: Brian Ng Date: Tue, 28 Feb 2017 11:36:02 -0600 Subject: [PATCH] add electron version util to normalize-options --- experimental/babel-preset-env/src/index.js | 13 +++---------- .../babel-preset-env/src/normalize-options.js | 12 ++++++++++++ 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/experimental/babel-preset-env/src/index.js b/experimental/babel-preset-env/src/index.js index 2ce8be2a86..da60629526 100644 --- a/experimental/babel-preset-env/src/index.js +++ b/experimental/babel-preset-env/src/index.js @@ -1,10 +1,8 @@ import browserslist from "browserslist"; -import invariant from "invariant"; import builtInsList from "../data/built-ins.json"; import defaultInclude from "./default-includes"; -import { electronToChromium } from "electron-to-chromium"; import moduleTransformations from "./module-transformations"; -import normalizeOptions from "./normalize-options.js"; +import normalizeOptions, { getElectronChromeVersion } from "./normalize-options.js"; import pluginList from "../data/plugins.json"; import transformPolyfillRequirePlugin from "./transform-polyfill-require-plugin"; @@ -102,14 +100,9 @@ export const getTargets = (targets = {}) => { targetOps.node = getCurrentNodeVersion(); } - // Replace Electron versions with their Chrome equivalent + // Replace Electron target with its Chrome equivalent if (targetOps.electron) { - const electronChromeVersion = parseInt(electronToChromium(targetOps.electron), 10); - - invariant( - !!electronChromeVersion, - `Electron version ${targetOps.electron} is either too old or too new` - ); + const electronChromeVersion = getElectronChromeVersion(targetOps.electron); targetOps.chrome = targetOps.chrome ? Math.min(targetOps.chrome, electronChromeVersion) diff --git a/experimental/babel-preset-env/src/normalize-options.js b/experimental/babel-preset-env/src/normalize-options.js index b09826e9e5..4ceaeecc0d 100644 --- a/experimental/babel-preset-env/src/normalize-options.js +++ b/experimental/babel-preset-env/src/normalize-options.js @@ -1,4 +1,5 @@ import invariant from "invariant"; +import { electronToChromium } from "electron-to-chromium"; import builtInsList from "../data/built-ins.json"; import defaultInclude from "./default-includes"; import moduleTransformations from "./module-transformations"; @@ -69,6 +70,17 @@ export const validateModulesOption = (modulesOpt = "commonjs") => { return modulesOpt; }; +export const getElectronChromeVersion = (electronVersion) => { + const electronChromeVersion = parseInt(electronToChromium(electronVersion), 10); + + invariant( + !!electronChromeVersion, + `Electron version ${electronVersion} is either too old or too new` + ); + + return electronChromeVersion; +}; + export default function normalizeOptions(opts) { // TODO: remove whitelist in favor of include in next major if (opts.whitelist && !hasBeenWarned) {