GT2/Ejectable/node_modules/@expo/configure-splash-screen/build/utils/string-utils.js

48 lines
2.0 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.insert = exports.replace = void 0;
/**
* @returns [`true`, modifiedContent: string] if replacement is successful, [`false`, originalContent] otherwise.
*/
function replace(content, { replaceContent, replacePattern }) {
const replacePatternOccurrence = content.search(replacePattern);
if (replacePatternOccurrence !== -1) {
return [true, content.replace(replacePattern, replaceContent)];
}
return [false, content];
}
exports.replace = replace;
/**
* Inserts content just before first occurrence of provided pattern.
* @returns [`true`, modifiedContent: string] if insertion is successful, [`false`, originalContent] otherwise.
*/
function insert(content, { insertContent, insertPattern }, insertBeforeLastOccurrence = false) {
if (insertBeforeLastOccurrence) {
return insertBeforeLastOccurrenceFun(content, { insertContent, insertPattern });
}
const insertPatternOccurrence = content.search(insertPattern);
if (insertPatternOccurrence !== -1) {
return [
true,
`${content.slice(0, insertPatternOccurrence)}${insertContent}${content.slice(insertPatternOccurrence)}`,
];
}
return [false, content];
}
exports.insert = insert;
/**
* Finds last occurrence of provided pattern and inserts content just before it.
*@returns [`true`, modifiedContent: string] if insertion is successful, [`false`, originalContent] otherwise.
*/
function insertBeforeLastOccurrenceFun(content, { insertContent, insertPattern }) {
const results = [...content.matchAll(new RegExp(insertPattern, 'gm'))];
const patternLastOccurrence = results[results.length - 1];
if (!patternLastOccurrence) {
return [false, content];
}
return [
true,
`${content.slice(0, patternLastOccurrence.index)}${insertContent}${content.slice(patternLastOccurrence.index)}`,
];
}
//# sourceMappingURL=string-utils.js.map