1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 4x 10x 14x | /** * @typedef {string} Template */ /** * @param {Template} template * @param {Object<string|number|bool>} values */ export const format = (template, values) => template.replace( /\{\s*(.+?)(?:\s*=\s*"(.+?)")?\s*\}/g, (match, name, defaultValue) => values[name] || defaultValue || '' ); |