"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; function _helperPluginUtils() { const data = require("@babel/helper-plugin-utils"); _helperPluginUtils = function () { return data; }; return data; } function _core() { const data = require("@babel/core"); _core = function () { return data; }; return data; } 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;