UNPKG

@technobuddha/library

Version:
21 lines 1.8 kB
import { empty } from "./unicode.js"; /** * Fill a template with supplied values * @param input - The template * @param values - A dictionary of name-values used to fill in values in the template * @param options - see {@link FillTemplateOptions} * @defaultValue open '\{\{' * @defaultValue close '\}\}' * @returns template with values replaced * @group String * @category Operations */ export function fillTemplate(input, values, { open = '{{', close = '}}' } = {}) { let argInput = input; for (const match of argInput.match(new RegExp(`${RegExp.escape(open)}(.+?)${RegExp.escape(close)}`, 'ug')) ?? []) { const key = match.slice(open.length, -close.length).trim(); argInput = argInput.replace(match, values[key] ?? empty); } return argInput; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsbC10ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9maWxsLXRlbXBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFhckM7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQzFCLEtBQWEsRUFDYixNQUEwQyxFQUMxQyxFQUFFLElBQUksR0FBRyxJQUFJLEVBQUUsS0FBSyxHQUFHLElBQUksS0FBMEIsRUFBRTtJQUV2RCxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFFckIsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRLENBQUMsS0FBSyxDQUNoQyxJQUFJLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUN2RSxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ1IsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNELFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMifQ==