You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.2 KiB
54 lines
1.2 KiB
4 years ago
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = _default;
|
||
|
|
||
|
var _utils = require("../../utils");
|
||
|
|
||
|
function isRegeneratorSource(source) {
|
||
|
return source === "regenerator-runtime/runtime";
|
||
|
}
|
||
|
|
||
|
function _default() {
|
||
|
const visitor = {
|
||
|
ImportDeclaration(path) {
|
||
|
if (isRegeneratorSource((0, _utils.getImportSource)(path))) {
|
||
|
this.regeneratorImportExcluded = true;
|
||
|
path.remove();
|
||
|
}
|
||
|
},
|
||
|
|
||
|
Program(path) {
|
||
|
path.get("body").forEach(bodyPath => {
|
||
|
if (isRegeneratorSource((0, _utils.getRequireSource)(bodyPath))) {
|
||
|
this.regeneratorImportExcluded = true;
|
||
|
bodyPath.remove();
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
};
|
||
|
return {
|
||
|
name: "regenerator-entry",
|
||
|
visitor,
|
||
|
|
||
|
pre() {
|
||
|
this.regeneratorImportExcluded = false;
|
||
|
},
|
||
|
|
||
|
post() {
|
||
|
if (this.opts.debug && this.regeneratorImportExcluded) {
|
||
|
let filename = this.file.opts.filename;
|
||
|
|
||
|
if (process.env.BABEL_ENV === "test") {
|
||
|
filename = filename.replace(/\\/g, "/");
|
||
|
}
|
||
|
|
||
|
console.log(`\n[${filename}] Based on your targets, regenerator-runtime import excluded.`);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
};
|
||
|
}
|