UNPKG

@webdoc/template-library

Version:

Goodies for @webdoc template packages! See @webdoc/legacy-template for an example!

43 lines (39 loc) 1.18 kB
"use strict"; 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;