"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.transformIndexHtml = exports.injectScriptToHtml = exports.asyncReplace = void 0; async function asyncReplace(input, re, replacer) { let match; let remaining = input; let rewritten = ''; while ((match = re.exec(remaining))) { rewritten += remaining.slice(0, match.index); rewritten += await replacer(match); remaining = remaining.slice(match.index + match[0].length); } rewritten += remaining; return rewritten; } exports.asyncReplace = asyncReplace; const injectReplaceRE = [//, //i]; function injectScriptToHtml(html, script) { // inject after head or doctype for (const re of injectReplaceRE) { if (re.test(html)) { return html.replace(re, `$&${script}`); } } // if no tag or doctype is present, just prepend return script + html; } exports.injectScriptToHtml = injectScriptToHtml; async function transformIndexHtml(html, transforms = [], apply, isBuild = false) { const trans = transforms .map((t) => { return typeof t === 'function' && apply === 'post' ? t : t.apply === apply ? t.transform : undefined; }) .filter(Boolean); let code = html; for (const transform of trans) { code = await transform({ isBuild, code }); } return code; } exports.transformIndexHtml = transformIndexHtml; //# sourceMappingURL=transformUtils.js.map