@itsmworkbench/utils
Version:
The usual utility functions
32 lines (31 loc) • 1.44 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.reverseTemplate = exports.escapeRegExp = void 0;
function escapeRegExp(string) {
// console.log('escapeRegExp', string, typeof string);
const asString = string.toString();
let result = asString.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
// console.log('escapeRegExp -asstring', asString, typeof asString, 'result', result);
return result;
}
exports.escapeRegExp = escapeRegExp;
function reverseTemplate(inputString, variables) {
if (inputString === undefined)
return undefined;
let template = inputString;
for (const varName in variables) {
const varValue = variables[varName];
try {
// console.log(`Input [${inputString}]\n${varName}:${JSON.stringify ( varValue )} --- ${typeof varValue}\n${JSON.stringify ( variables )}`)
const escapedVarValue = escapeRegExp(varValue.toString());
const regex = new RegExp(escapedVarValue, 'g');
template = template.replace(regex, `\${${varName}}`);
}
catch (e) {
throw new Error(`${e}\nInput [${inputString}]\n${varName}:${JSON.stringify(varValue)} --- ${typeof varValue}\n${JSON.stringify(variables)}`);
}
}
console.log('reverseTemplate', inputString, variables, template);
return template;
}
exports.reverseTemplate = reverseTemplate;
;