summaryrefslogtreecommitdiff
path: root/node_modules/@babel/preset-env/lib/polyfills/babel-polyfill.cjs
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@babel/preset-env/lib/polyfills/babel-polyfill.cjs')
-rw-r--r--node_modules/@babel/preset-env/lib/polyfills/babel-polyfill.cjs69
1 files changed, 69 insertions, 0 deletions
diff --git a/node_modules/@babel/preset-env/lib/polyfills/babel-polyfill.cjs b/node_modules/@babel/preset-env/lib/polyfills/babel-polyfill.cjs
new file mode 100644
index 00000000..2e578b1e
--- /dev/null
+++ b/node_modules/@babel/preset-env/lib/polyfills/babel-polyfill.cjs
@@ -0,0 +1,69 @@
+;
+const {
+ getImportSource,
+ getRequireSource,
+ isPolyfillSource
+} = require("./utils.cjs");
+const BABEL_POLYFILL_DEPRECATION = `
+ \`@babel/polyfill\` is deprecated. Please, use required parts of \`core-js\`
+ and \`regenerator-runtime/runtime\` separately`;
+const NO_DIRECT_POLYFILL_IMPORT = `
+ When setting \`useBuiltIns: 'usage'\`, polyfills are automatically imported when needed.
+ Please remove the direct import of \`SPECIFIER\` or use \`useBuiltIns: 'entry'\` instead.`;
+module.exports = function ({
+ template
+}, {
+ regenerator,
+ deprecated,
+ usage
+}) {
+ return {
+ name: "preset-env/replace-babel-polyfill",
+ visitor: {
+ ImportDeclaration(path) {
+ const src = getImportSource(path);
+ if (usage && isPolyfillSource(src)) {
+ console.warn(NO_DIRECT_POLYFILL_IMPORT.replace("SPECIFIER", src));
+ if (!deprecated) path.remove();
+ } else if (src === "@babel/polyfill") {
+ if (deprecated) {
+ console.warn(BABEL_POLYFILL_DEPRECATION);
+ } else if (regenerator) {
+ path.replaceWithMultiple(template.ast`
+ import "core-js";
+ import "regenerator-runtime/runtime.js";
+ `);
+ } else {
+ path.replaceWith(template.ast`
+ import "core-js";
+ `);
+ }
+ }
+ },
+ Program(path) {
+ path.get("body").forEach(bodyPath => {
+ const src = getRequireSource(bodyPath);
+ if (usage && isPolyfillSource(src)) {
+ console.warn(NO_DIRECT_POLYFILL_IMPORT.replace("SPECIFIER", src));
+ if (!deprecated) bodyPath.remove();
+ } else if (src === "@babel/polyfill") {
+ if (deprecated) {
+ console.warn(BABEL_POLYFILL_DEPRECATION);
+ } else if (regenerator) {
+ bodyPath.replaceWithMultiple(template.ast`
+ require("core-js");
+ require("regenerator-runtime/runtime.js");
+ `);
+ } else {
+ bodyPath.replaceWith(template.ast`
+ require("core-js");
+ `);
+ }
+ }
+ });
+ }
+ }
+ };
+};
+
+//# sourceMappingURL=babel-polyfill.cjs.map