| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- "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 = [/<head>/, /<!doctype html>/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 <head> 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
|