UNPKG

strings-interpolation

Version:
1 lines 962 B
"use strict";function traverseAndFlatten(t,e,n=""){Object.entries(t).forEach((([t,r])=>{const o=n?`${n}.${t}`:t;"object"==typeof r&&null!==r?traverseAndFlatten(r,e,o):e[o]=r}))}function flatten(t){const e={};return traverseAndFlatten(t,e),e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseInterpolation=exports.stringInterpolation=void 0;const regex=/\{\{([^{}]*?)\}\}/g;function interpolateValue(t,e){var n;const[r,o=""]=t.split("||").map((t=>t.trim()));return null!==(n=e[r])&&void 0!==n?n:o}const stringInterpolation=(t,e)=>{if("string"!=typeof t||"object"!=typeof e)return;const n=flatten(e);return t.replace(regex,(t=>interpolateValue(t.slice(2,-2),n)))};exports.stringInterpolation=stringInterpolation;const parseInterpolation=t=>{if("string"!=typeof t)return;const e=t.match(regex);return null==e?void 0:e.map((t=>t.slice(2,-2).split("||")[0].trim())).filter(((t,e,n)=>n.indexOf(t)===e))};exports.parseInterpolation=parseInterpolation;