2015-06-25 23:20:18 +01:00

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")]))
]);
}
}
});
}