1234567891011121314151617181920212223242526272829303132333435 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.replaceAll = exports.replace = void 0;
- function replace(segments, pattern, ...replacers) {
- const str = toString(segments);
- const match = str.match(pattern);
- if (match && match.index !== undefined) {
- const start = match.index;
- const end = start + match[0].length;
- offsetStack();
- overwrite(segments, [start, end], ...replacers.map(replacer => typeof replacer === 'function' ? replacer(match[0]) : replacer));
- resetOffsetStack();
- }
- }
- exports.replace = replace;
- function replaceAll(segments, pattern, ...replacers) {
- const str = toString(segments);
- const allMatch = str.matchAll(pattern);
- let length = str.length;
- let lengthDiff = 0;
- for (const match of allMatch) {
- if (match.index !== undefined) {
- const start = match.index + lengthDiff;
- const end = start + match[0].length;
- offsetStack();
- overwrite(segments, [start, end], ...replacers.map(replacer => typeof replacer === 'function' ? replacer(match[0]) : replacer));
- resetOffsetStack();
- const newLength = getLength(segments);
- lengthDiff += newLength - length;
- length = newLength;
- }
- }
- }
- exports.replaceAll = replaceAll;
- //# sourceMappingURL=replace.js.map
|