mono/packages/osrl/liquidjs/template/value.js
2025-12-30 16:33:03 +01:00

26 lines
2.4 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Value = void 0;
const tokenizer_1 = require("../parser/tokenizer");
const filter_1 = require("./filter/filter");
class Value {
/**
* @param str the value to be valuated, eg.: "foobar" | truncate: 3
*/
constructor(str, liquid) {
this.filters = [];
const tokenizer = new tokenizer_1.Tokenizer(str, liquid.options.operatorsTrie);
this.initial = tokenizer.readExpression();
this.filters = tokenizer.readFilters().map(({ name, args }) => new filter_1.Filter(name, liquid.filters.get(name), args, liquid));
}
*value(ctx, lenient) {
lenient = lenient || (ctx.opts.lenientIf && this.filters.length > 0 && this.filters[0].name === 'default');
let val = yield this.initial.evaluate(ctx, lenient);
for (const filter of this.filters) {
val = yield filter.render(val, ctx);
}
return val;
}
}
exports.Value = Value;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGlxdWlkanMvdGVtcGxhdGUvdmFsdWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbURBQStDO0FBQy9DLDRDQUF3QztBQUl4QyxNQUFhLEtBQUs7SUFJaEI7O09BRUc7SUFDSCxZQUFvQixHQUFXLEVBQUUsTUFBYztRQU4vQixZQUFPLEdBQWEsRUFBRSxDQUFBO1FBT3BDLE1BQU0sU0FBUyxHQUFHLElBQUkscUJBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNsRSxJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUN6QyxJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxlQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBQzFILENBQUM7SUFDTSxDQUFFLEtBQUssQ0FBRSxHQUFZLEVBQUUsT0FBZ0I7UUFDNUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQTtRQUMxRyxJQUFJLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUVuRCxLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakMsR0FBRyxHQUFHLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7U0FDcEM7UUFDRCxPQUFPLEdBQUcsQ0FBQTtJQUNaLENBQUM7Q0FDRjtBQXJCRCxzQkFxQkMifQ==