123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = _default;
- var _utils = require("./utils");
- 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.`;
- function _default({
- template
- }, {
- regenerator,
- deprecated,
- usage
- }) {
- return {
- name: "preset-env/replace-babel-polyfill",
- visitor: {
- ImportDeclaration(path) {
- const src = (0, _utils.getImportSource)(path);
- if (usage && (0, _utils.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 = (0, _utils.getRequireSource)(bodyPath);
- if (usage && (0, _utils.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");
- `);
- }
- }
- });
- }
- }
- };
- }
|