41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = void 0;
|
||
|
|
||
|
var _helperPluginUtils = require("@babel/helper-plugin-utils");
|
||
|
|
||
|
var _core = require("@babel/core");
|
||
|
|
||
|
var _default = (0, _helperPluginUtils.declare)((api, options) => {
|
||
|
api.assertVersion(7);
|
||
|
const {
|
||
|
helperVersion = "7.0.0-beta.0",
|
||
|
whitelist = false
|
||
|
} = options;
|
||
|
|
||
|
if (whitelist !== false && (!Array.isArray(whitelist) || whitelist.some(w => typeof w !== "string"))) {
|
||
|
throw new Error(".whitelist must be undefined, false, or an array of strings");
|
||
|
}
|
||
|
|
||
|
const helperWhitelist = whitelist ? new Set(whitelist) : null;
|
||
|
return {
|
||
|
name: "external-helpers",
|
||
|
|
||
|
pre(file) {
|
||
|
file.set("helperGenerator", name => {
|
||
|
if (file.availableHelper && !file.availableHelper(name, helperVersion)) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if (helperWhitelist && !helperWhitelist.has(name)) return;
|
||
|
return _core.types.memberExpression(_core.types.identifier("babelHelpers"), _core.types.identifier(name));
|
||
|
});
|
||
|
}
|
||
|
|
||
|
};
|
||
|
});
|
||
|
|
||
|
exports.default = _default;
|