@technobuddha/library
Version:
A large library of useful functions
21 lines • 1.8 kB
JavaScript
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==