1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = _default;
- var _debug = require("./debug");
- var _utils = require("./utils");
- function _default({
- types: t
- }) {
- function replaceWithPolyfillImports(path, polyfills, regenerator) {
- if (regenerator) {
- (0, _utils.createImport)(path, "regenerator-runtime");
- }
- const items = Array.isArray(polyfills) ? new Set(polyfills) : polyfills;
- for (const p of Array.from(items).reverse()) {
- (0, _utils.createImport)(path, p);
- }
- path.remove();
- }
- const isPolyfillImport = {
- ImportDeclaration(path, state) {
- if (path.node.specifiers.length === 0 && (0, _utils.isPolyfillSource)(path.node.source.value)) {
- this.importPolyfillIncluded = true;
- replaceWithPolyfillImports(path, state.opts.polyfills, state.opts.regenerator);
- }
- },
- Program(path, state) {
- path.get("body").forEach(bodyPath => {
- if ((0, _utils.isRequire)(t, bodyPath)) {
- replaceWithPolyfillImports(bodyPath, state.opts.polyfills, state.opts.regenerator);
- }
- });
- }
- };
- return {
- name: "transform-polyfill-require",
- visitor: isPolyfillImport,
- pre() {
- this.numPolyfillImports = 0;
- this.importPolyfillIncluded = false;
- },
- post() {
- const {
- debug,
- onDebug,
- polyfills
- } = this.opts;
- if (debug) {
- (0, _debug.logEntryPolyfills)(this.importPolyfillIncluded, polyfills, this.file.opts.filename, onDebug);
- }
- }
- };
- }
|