twing
Version:
First-class Twig engine for Node.js
47 lines (46 loc) • 1.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.escapeValueSynchronously = exports.escapeValue = void 0;
const markup_1 = require("../markup");
const escapeValue = (template, environment, value, strategy, charset) => {
if (typeof value === "boolean") {
return Promise.resolve(value);
}
if ((0, markup_1.isAMarkup)(value)) {
return Promise.resolve(value);
}
let result;
if ((value === null) || (value === undefined)) {
result = '';
}
else {
const strategyHandler = environment.escapingStrategyHandlers[strategy];
if (strategyHandler === undefined) {
return Promise.reject(new Error(`Invalid escaping strategy "${strategy}" (valid ones: ${Object.keys(environment.escapingStrategyHandlers).sort().join(', ')}).`));
}
result = strategyHandler(value.toString(), charset || environment.charset, template.name);
}
return Promise.resolve(result);
};
exports.escapeValue = escapeValue;
const escapeValueSynchronously = (template, environment, value, strategy, charset) => {
if (typeof value === "boolean") {
return value;
}
if ((0, markup_1.isAMarkup)(value)) {
return value;
}
let result;
if ((value === null) || (value === undefined)) {
result = '';
}
else {
const strategyHandler = environment.escapingStrategyHandlers[strategy];
if (strategyHandler === undefined) {
throw new Error(`Invalid escaping strategy "${strategy}" (valid ones: ${Object.keys(environment.escapingStrategyHandlers).sort().join(', ')}).`);
}
result = strategyHandler(value.toString(), charset || environment.charset, template.name);
}
return result;
};
exports.escapeValueSynchronously = escapeValueSynchronously;