diff --git a/src/index.js b/src/index.js index 2ce8be2a..da606295 100644 --- a/src/index.js +++ b/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/src/normalize-options.js b/src/normalize-options.js index 6e09cbf1..703ed151 100644 --- a/src/normalize-options.js +++ b/src/normalize-options.js @@ -1,6 +1,6 @@ import intersection from "lodash/intersection"; 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 +69,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) {