From 580e798e16346eb894eb899edac82d2efdf40adc Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Sat, 18 Apr 2026 22:32:53 -0500 Subject: initial commit --- node_modules/@babel/template/lib/literal.js | 69 +++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 node_modules/@babel/template/lib/literal.js (limited to 'node_modules/@babel/template/lib/literal.js') diff --git a/node_modules/@babel/template/lib/literal.js b/node_modules/@babel/template/lib/literal.js new file mode 100644 index 0000000..58beffb --- /dev/null +++ b/node_modules/@babel/template/lib/literal.js @@ -0,0 +1,69 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = literalTemplate; +var _options = require("./options.js"); +var _parse = require("./parse.js"); +var _populate = require("./populate.js"); +function literalTemplate(formatter, tpl, opts) { + const { + metadata, + names + } = buildLiteralData(formatter, tpl, opts); + return arg => { + const defaultReplacements = {}; + arg.forEach((replacement, i) => { + defaultReplacements[names[i]] = replacement; + }); + return arg => { + const replacements = (0, _options.normalizeReplacements)(arg); + if (replacements) { + Object.keys(replacements).forEach(key => { + if (hasOwnProperty.call(defaultReplacements, key)) { + throw new Error("Unexpected replacement overlap."); + } + }); + } + return formatter.unwrap((0, _populate.default)(metadata, replacements ? Object.assign(replacements, defaultReplacements) : defaultReplacements)); + }; + }; +} +function buildLiteralData(formatter, tpl, opts) { + let prefix = "BABEL_TPL$"; + const raw = tpl.join(""); + do { + prefix = "$$" + prefix; + } while (raw.includes(prefix)); + const { + names, + code + } = buildTemplateCode(tpl, prefix); + const metadata = (0, _parse.default)(formatter, formatter.code(code), { + parser: opts.parser, + placeholderWhitelist: new Set(names.concat(opts.placeholderWhitelist ? Array.from(opts.placeholderWhitelist) : [])), + placeholderPattern: opts.placeholderPattern, + preserveComments: opts.preserveComments, + syntacticPlaceholders: opts.syntacticPlaceholders + }); + return { + metadata, + names + }; +} +function buildTemplateCode(tpl, prefix) { + const names = []; + let code = tpl[0]; + for (let i = 1; i < tpl.length; i++) { + const value = `${prefix}${i - 1}`; + names.push(value); + code += value + tpl[i]; + } + return { + names, + code + }; +} + +//# sourceMappingURL=literal.js.map -- cgit v1.2.3