45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
;
 | 
						|
const {
 | 
						|
  getImportSource,
 | 
						|
  getRequireSource
 | 
						|
} = require("./utils.cjs");
 | 
						|
function isRegeneratorSource(source) {
 | 
						|
  return source === "regenerator-runtime/runtime" || source === "regenerator-runtime/runtime.js";
 | 
						|
}
 | 
						|
module.exports = function () {
 | 
						|
  const visitor = {
 | 
						|
    ImportDeclaration(path) {
 | 
						|
      if (isRegeneratorSource(getImportSource(path))) {
 | 
						|
        this.regeneratorImportExcluded = true;
 | 
						|
        path.remove();
 | 
						|
      }
 | 
						|
    },
 | 
						|
    Program(path) {
 | 
						|
      path.get("body").forEach(bodyPath => {
 | 
						|
        if (isRegeneratorSource(getRequireSource(bodyPath))) {
 | 
						|
          this.regeneratorImportExcluded = true;
 | 
						|
          bodyPath.remove();
 | 
						|
        }
 | 
						|
      });
 | 
						|
    }
 | 
						|
  };
 | 
						|
  return {
 | 
						|
    name: "preset-env/remove-regenerator",
 | 
						|
    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.`);
 | 
						|
      }
 | 
						|
    }
 | 
						|
  };
 | 
						|
};
 | 
						|
 | 
						|
//# sourceMappingURL=regenerator.cjs.map
 |