@webdoc/template-library
Version:
Goodies for @webdoc template packages! See @webdoc/legacy-template for an example!
43 lines (39 loc) • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.TemplatePipeline = void 0;
var _TemplateRenderer = require("./TemplateRenderer");
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
class TemplatePipeline {
constructor(renderer) {
_defineProperty(this, "renderer", void 0);
_defineProperty(this, "elements", void 0);
this.renderer = renderer;
this.elements = [];
}
render(templateFile, templateData, pipelineData) {
let output = this.renderer.render(templateFile, templateData);
for (let i = 0; i < this.elements.length; i++) {
const poutput = this.elements[i].run(output, pipelineData);
if (!poutput) {
return;
}
output = poutput;
}
return output;
}
close() {
for (const pe of this.elements) {
pe.close();
}
}
pipe(element) {
this.elements.push(element);
if (element.attachTo) {
element.attachTo(this);
}
return this;
}
}
exports.TemplatePipeline = TemplatePipeline;