"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; exports.get = get; exports.getDependencies = getDependencies; exports.list = void 0; exports.minVersion = minVersion; var _t = require("@babel/types"); var _helpersGenerated = require("./helpers-generated.js"); const { cloneNode, identifier } = _t; function deep(obj, path, value) { try { const parts = path.split("."); let last = parts.shift(); while (parts.length > 0) { obj = obj[last]; last = parts.shift(); } if (arguments.length > 2) { obj[last] = value; } else { return obj[last]; } } catch (e) { e.message += ` (when accessing ${path})`; throw e; } } function permuteHelperAST(ast, metadata, bindingName, localBindings, getDependency, adjustAst) { const { locals, dependencies, exportBindingAssignments, exportName } = metadata; const bindings = new Set(localBindings || []); if (bindingName) bindings.add(bindingName); for (const [name, paths] of (Object.entries || (o => Object.keys(o).map(k => [k, o[k]])))(locals)) { let newName = name; if (bindingName && name === exportName) { newName = bindingName; } else { while (bindings.has(newName)) newName = "_" + newName; } if (newName !== name) { for (const path of paths) { deep(ast, path, identifier(newName)); } } } for (const [name, paths] of (Object.entries || (o => Object.keys(o).map(k => [k, o[k]])))(dependencies)) { const ref = typeof getDependency === "function" && getDependency(name) || identifier(name); for (const path of paths) { deep(ast, path, cloneNode(ref)); } } adjustAst == null || adjustAst(ast, exportName, map => { exportBindingAssignments.forEach(p => deep(ast, p, map(deep(ast, p)))); }); } const helperData = Object.create(null); function loadHelper(name) { if (!helperData[name]) { const helper = _helpersGenerated.default[name]; if (!helper) { throw Object.assign(new ReferenceError(`Unknown helper ${name}`), { code: "BABEL_HELPER_UNKNOWN", helper: name }); } helperData[name] = { minVersion: helper.minVersion, build(getDependency, bindingName, localBindings, adjustAst) { const ast = helper.ast(); permuteHelperAST(ast, helper.metadata, bindingName, localBindings, getDependency, adjustAst); return { nodes: ast.body, globals: helper.metadata.globals }; }, getDependencies() { return Object.keys(helper.metadata.dependencies); } }; } return helperData[name]; } function get(name, getDependency, bindingName, localBindings, adjustAst) { { if (typeof bindingName === "object") { const id = bindingName; if ((id == null ? void 0 : id.type) === "Identifier") { bindingName = id.name; } else { bindingName = undefined; } } } return loadHelper(name).build(getDependency, bindingName, localBindings, adjustAst); } function minVersion(name) { return loadHelper(name).minVersion; } function getDependencies(name) { return loadHelper(name).getDependencies(); } { exports.ensure = name => { loadHelper(name); }; } const list = exports.list = Object.keys(_helpersGenerated.default).map(name => name.replace(/^_/, "")); var _default = exports.default = get; //# sourceMappingURL=index.js.map