24 lines
722 B
JavaScript
24 lines
722 B
JavaScript
var path = require("path");
|
|
|
|
module.exports = function (babel) {
|
|
var t = babel.types;
|
|
|
|
return new babel.Plugin("protect-internal-apis", {
|
|
visitor: {
|
|
Program: function (node, parent, scope, file) {
|
|
if (file.opts.filename.indexOf("tools/protect") >= 0) return;
|
|
if (file.opts.filename.indexOf("templates") >= 0) return;
|
|
|
|
var from = "/" + path.dirname(file.opts.filename.replace(/^src/, "lib"));
|
|
var to = "/lib/babel/tools";
|
|
|
|
var protectLoc = "./" + path.relative(from, to) + "/protect.js";
|
|
|
|
this.unshiftContainer("body", [
|
|
t.expressionStatement(t.callExpression(file.addImport(protectLoc), [t.identifier("module")]))
|
|
]);
|
|
}
|
|
}
|
|
});
|
|
}
|