@spartacus/core
Version:
Spartacus - the core framework
21 lines • 2.96 kB
JavaScript
export class StringTemplate {
/**
* Populates the given template with the variables provided
*
* @param templateString template of the OCC endpoint
* @param templateVariables variables to replace in the template
* @param encodeVariable encode variable before placing it in the template
*/
static resolve(templateString, templateVariables, encodeVariable) {
for (const variableLabel of Object.keys(templateVariables)) {
const placeholder = new RegExp('\\${' + variableLabel + '}', 'g');
templateString = templateString.replace(placeholder,
// TODO 4.0: default to encodeVariable = true
encodeVariable
? encodeURIComponent(templateVariables[variableLabel])
: templateVariables[variableLabel]);
}
return templateString;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLXRlbXBsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvY29uZmlnL3V0aWxzL3N0cmluZy10ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sY0FBYztJQUN6Qjs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsT0FBTyxDQUNaLGNBQXNCLEVBQ3RCLGlCQUF5QixFQUN6QixjQUF3QjtRQUV4QixLQUFLLE1BQU0sYUFBYSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUMxRCxNQUFNLFdBQVcsR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsYUFBYSxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNsRSxjQUFjLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FDckMsV0FBVztZQUNYLDZDQUE2QztZQUM3QyxjQUFjO2dCQUNaLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDdEQsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUNyQyxDQUFDO1NBQ0g7UUFDRCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgU3RyaW5nVGVtcGxhdGUge1xuICAvKipcbiAgICogUG9wdWxhdGVzIHRoZSBnaXZlbiB0ZW1wbGF0ZSB3aXRoIHRoZSB2YXJpYWJsZXMgcHJvdmlkZWRcbiAgICpcbiAgICogQHBhcmFtIHRlbXBsYXRlU3RyaW5nIHRlbXBsYXRlIG9mIHRoZSBPQ0MgZW5kcG9pbnRcbiAgICogQHBhcmFtIHRlbXBsYXRlVmFyaWFibGVzIHZhcmlhYmxlcyB0byByZXBsYWNlIGluIHRoZSB0ZW1wbGF0ZVxuICAgKiBAcGFyYW0gZW5jb2RlVmFyaWFibGUgZW5jb2RlIHZhcmlhYmxlIGJlZm9yZSBwbGFjaW5nIGl0IGluIHRoZSB0ZW1wbGF0ZVxuICAgKi9cbiAgc3RhdGljIHJlc29sdmUoXG4gICAgdGVtcGxhdGVTdHJpbmc6IHN0cmluZyxcbiAgICB0ZW1wbGF0ZVZhcmlhYmxlczogT2JqZWN0LFxuICAgIGVuY29kZVZhcmlhYmxlPzogYm9vbGVhblxuICApOiBzdHJpbmcge1xuICAgIGZvciAoY29uc3QgdmFyaWFibGVMYWJlbCBvZiBPYmplY3Qua2V5cyh0ZW1wbGF0ZVZhcmlhYmxlcykpIHtcbiAgICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gbmV3IFJlZ0V4cCgnXFxcXCR7JyArIHZhcmlhYmxlTGFiZWwgKyAnfScsICdnJyk7XG4gICAgICB0ZW1wbGF0ZVN0cmluZyA9IHRlbXBsYXRlU3RyaW5nLnJlcGxhY2UoXG4gICAgICAgIHBsYWNlaG9sZGVyLFxuICAgICAgICAvLyBUT0RPIDQuMDogZGVmYXVsdCB0byBlbmNvZGVWYXJpYWJsZSA9IHRydWVcbiAgICAgICAgZW5jb2RlVmFyaWFibGVcbiAgICAgICAgICA/IGVuY29kZVVSSUNvbXBvbmVudCh0ZW1wbGF0ZVZhcmlhYmxlc1t2YXJpYWJsZUxhYmVsXSlcbiAgICAgICAgICA6IHRlbXBsYXRlVmFyaWFibGVzW3ZhcmlhYmxlTGFiZWxdXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGVtcGxhdGVTdHJpbmc7XG4gIH1cbn1cbiJdfQ==