From adb4701e003e5ee8fa32c01e69d0fbfd5e8acc5b Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sun, 24 Mar 2019 07:03:25 +0700 Subject: [PATCH] Normalize `core-js` entry points (#9752) * normalize `core-js` entry points names * Update packages/babel-preset-env/src/polyfills/corejs3/entry-plugin.js Co-Authored-By: zloirock * handle windows paths --- .../src/polyfills/corejs3/entry-plugin.js | 6 ++++++ .../fixtures/corejs3/entry-normalization/input.mjs | 7 +++++++ .../corejs3/entry-normalization/options.json | 12 ++++++++++++ .../fixtures/corejs3/entry-normalization/output.mjs | 11 +++++++++++ 4 files changed, 36 insertions(+) create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-normalization/input.mjs create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-normalization/options.json create mode 100644 packages/babel-preset-env/test/fixtures/corejs3/entry-normalization/output.mjs diff --git a/packages/babel-preset-env/src/polyfills/corejs3/entry-plugin.js b/packages/babel-preset-env/src/polyfills/corejs3/entry-plugin.js index da8034779d..1d8d3df0a2 100644 --- a/packages/babel-preset-env/src/polyfills/corejs3/entry-plugin.js +++ b/packages/babel-preset-env/src/polyfills/corejs3/entry-plugin.js @@ -21,6 +21,12 @@ function isBabelPolyfillSource(source) { } function isCoreJSSource(source) { + if (typeof source === "string") { + source = source + .replace(/\\/g, "/") + .replace(/(\/(index)?)?(\.js)?$/i, "") + .toLowerCase(); + } return has(corejsEntries, source) && corejsEntries[source]; } diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-normalization/input.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-normalization/input.mjs new file mode 100644 index 0000000000..5617711cfa --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-normalization/input.mjs @@ -0,0 +1,7 @@ +import 'core-js/es/map/index.js'; +import 'core-js/es/set/index'; +import 'core-js/es/array/from.js'; +import 'core-js/es/promise/'; +import 'cOrE-jS/eS/SymBOL/iTERator'; +import 'core-js\\es\\symbol\\async-iterator'; +import 'foo/index.js'; diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-normalization/options.json b/packages/babel-preset-env/test/fixtures/corejs3/entry-normalization/options.json new file mode 100644 index 0000000000..fe930890ee --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-normalization/options.json @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "../../../../lib", + { + "modules": false, + "useBuiltIns": "entry", + "corejs": 3 + } + ] + ] +} diff --git a/packages/babel-preset-env/test/fixtures/corejs3/entry-normalization/output.mjs b/packages/babel-preset-env/test/fixtures/corejs3/entry-normalization/output.mjs new file mode 100644 index 0000000000..479672b52e --- /dev/null +++ b/packages/babel-preset-env/test/fixtures/corejs3/entry-normalization/output.mjs @@ -0,0 +1,11 @@ +import "core-js/modules/es.symbol.async-iterator"; +import "core-js/modules/es.symbol.iterator"; +import "core-js/modules/es.array.from"; +import "core-js/modules/es.map"; +import "core-js/modules/es.object.to-string"; +import "core-js/modules/es.promise"; +import "core-js/modules/es.promise.finally"; +import "core-js/modules/es.set"; +import "core-js/modules/es.string.iterator"; +import "core-js/modules/web.dom-collections.iterator"; +import 'foo/index.js';