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

38 lines
3.3 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Render = void 0;
const error_1 = require("../util/error");
const simple_emitter_1 = require("../emitters/simple-emitter");
const streamed_emitter_1 = require("../emitters/streamed-emitter");
const async_1 = require("../util/async");
const keeping_type_emitter_1 = require("../emitters/keeping-type-emitter");
class Render {
renderTemplatesToNodeStream(templates, ctx) {
const emitter = new streamed_emitter_1.StreamedEmitter();
Promise.resolve().then(() => (0, async_1.toPromise)(this.renderTemplates(templates, ctx, emitter)))
.then(() => emitter.end(), err => emitter.error(err));
return emitter.stream;
}
*renderTemplates(templates, ctx, emitter) {
if (!emitter) {
emitter = ctx.opts.keepOutputType ? new keeping_type_emitter_1.KeepingTypeEmitter() : new simple_emitter_1.SimpleEmitter();
}
for (const tpl of templates) {
try {
// if tpl.render supports emitter, it'll return empty `html`
const html = yield tpl.render(ctx, emitter);
// if not, it'll return an `html`, write to the emitter for it
html && emitter.write(html);
if (emitter['break'] || emitter['continue'])
break;
}
catch (e) {
const err = error_1.RenderError.is(e) ? e : new error_1.RenderError(e, tpl);
throw err;
}
}
return emitter.buffer;
}
}
exports.Render = Render;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpcXVpZGpzL3JlbmRlci9yZW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQTJDO0FBSTNDLCtEQUEwRDtBQUMxRCxtRUFBOEQ7QUFDOUQseUNBQXlDO0FBQ3pDLDJFQUFxRTtBQUVyRSxNQUFhLE1BQU07SUFDViwyQkFBMkIsQ0FBRSxTQUFxQixFQUFFLEdBQVk7UUFDckUsTUFBTSxPQUFPLEdBQUcsSUFBSSxrQ0FBZSxFQUFFLENBQUE7UUFDckMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFBLGlCQUFTLEVBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDbkYsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUN2RCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUE7SUFDdkIsQ0FBQztJQUNNLENBQUUsZUFBZSxDQUFFLFNBQXFCLEVBQUUsR0FBWSxFQUFFLE9BQWlCO1FBQzlFLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixPQUFPLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUkseUNBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSw4QkFBYSxFQUFFLENBQUE7U0FDbkY7UUFDRCxLQUFLLE1BQU0sR0FBRyxJQUFJLFNBQVMsRUFBRTtZQUMzQixJQUFJO2dCQUNGLDREQUE0RDtnQkFDNUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQTtnQkFDM0MsOERBQThEO2dCQUM5RCxJQUFJLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDM0IsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQztvQkFBRSxNQUFLO2FBQ25EO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsTUFBTSxHQUFHLEdBQUcsbUJBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxtQkFBVyxDQUFDLENBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtnQkFDcEUsTUFBTSxHQUFHLENBQUE7YUFDVjtTQUNGO1FBQ0QsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFBO0lBQ3ZCLENBQUM7Q0FDRjtBQXpCRCx3QkF5QkMifQ==