@globalart/text-utils
Version:
A collection of modules, helpers and utils for working with text.
61 lines (60 loc) • 2.35 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.replacePlaceholdersInString = exports.replacePlaceholdersInObjectWithFlatten = exports.replacePlaceholdersInObject = void 0;
/**
* Replace placeholder in object
* @param obj
* @param replacements
* @returns
*/
const replacePlaceholdersInObject = (obj, replacements) => {
if (typeof obj === 'string') {
const replacedValue = obj.replace(/{{(.*?)}}/g, (_, key) => replacements[key] !== undefined ? replacements[key].toString() : _);
return !isNaN(replacedValue) ? Math.floor(parseFloat(replacedValue)) : replacedValue;
}
if (obj && typeof obj === 'object' && !Array.isArray(obj)) {
const result = {};
Object.entries(obj).forEach(([key, value]) => {
result[key] = (0, exports.replacePlaceholdersInObject)(value, replacements);
});
return result;
}
return obj;
};
exports.replacePlaceholdersInObject = replacePlaceholdersInObject;
/**
* Replace placeholder in object with flatter replacements
* @param value
* @param replacements
* @returns
*/
const replacePlaceholdersInObjectWithFlatten = (value, replacements) => {
const flattenVariables = (obj, prefix = '') => {
return Object.keys(obj).reduce((acc, k) => {
const pre = prefix.length ? `${prefix}.` : '';
if (typeof obj[k] === 'object' && obj[k] !== null) {
Object.assign(acc, flattenVariables(obj[k], `${pre}${k}`));
}
else {
acc[`${pre}${k}`] = obj[k];
}
return acc;
}, {});
};
if (replacements) {
const flatVariables = flattenVariables(replacements);
Object.keys(flatVariables).forEach((variable) => {
const regex = new RegExp(`{{${variable}}}`, 'g');
value = value.replace(regex, String(flatVariables[variable]));
});
}
return value;
};
exports.replacePlaceholdersInObjectWithFlatten = replacePlaceholdersInObjectWithFlatten;
/**
* Replace placeholder in the string
*/
const replacePlaceholdersInString = (value, replacements) => {
return value.replace(/{{(.*?)}}/g, (_, key) => { var _a; return (_a = replacements[key]) !== null && _a !== void 0 ? _a : _; });
};
exports.replacePlaceholdersInString = replacePlaceholdersInString;
;