diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2023-12-21 22:46:53 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2023-12-21 22:46:53 +0800 |
| commit | f06956efd2dc4bf77244a9fcce2b883a00b925af (patch) | |
| tree | 0123cb73ce67f1f4b17e1d6cbabff076ee44e31b /node_modules/@babel/preset-env/lib/polyfills/babel-polyfill.cjs | |
| parent | 8d980c13970c15b6d2312b6fc4ac51698dd0d220 (diff) | |
updated node modules
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.cjs | 69 |
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 |
