UNPKG

@globalart/text-utils

Version:

A collection of modules, helpers and utils for working with text.

61 lines (60 loc) 2.35 kB
"use strict"; 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;