UNPKG

@vulcan-sql/core

Version:
63 lines 2.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TemplateEngine = void 0; const tslib_1 = require("tslib"); const inversify_1 = require("inversify"); const types_1 = require("../../containers/types"); const models_1 = require("../../models/index"); const utils_1 = require("../utils"); let TemplateEngine = class TemplateEngine { constructor(compiler, templateProvider, compilerLoader) { this.compiler = compiler; this.compilerLoader = compilerLoader; if (templateProvider) this.templateProvider = templateProvider; } compile() { var e_1, _a; var _b, _c; return tslib_1.__awaiter(this, void 0, void 0, function* () { if (!this.templateProvider) throw new utils_1.InternalError('Template provider has not been initialized.'); yield ((_c = (_b = this.templateProvider).activate) === null || _c === void 0 ? void 0 : _c.call(_b)); const templateResult = {}; const metadataResult = {}; try { for (var _d = tslib_1.__asyncValues(this.templateProvider.getTemplates()), _e; _e = yield _d.next(), !_e.done;) { const template = _e.value; const { compiledData, metadata } = yield this.compiler.compile(template.statement); // load compileData immediately to the loader this.compilerLoader.setSource(template.name, compiledData); templateResult[template.name] = compiledData; metadataResult[template.name] = metadata; } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (_e && !_e.done && (_a = _d.return)) yield _a.call(_d); } finally { if (e_1) throw e_1.error; } } return { templates: templateResult, metadata: metadataResult, }; }); } execute(templateName, data, pagination) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return this.compiler.execute(templateName, data, pagination); }); } }; TemplateEngine = tslib_1.__decorate([ (0, inversify_1.injectable)(), tslib_1.__param(0, (0, inversify_1.inject)(types_1.TYPES.Compiler)), tslib_1.__param(1, (0, inversify_1.inject)(types_1.TYPES.TemplateProvider)), tslib_1.__param(1, (0, inversify_1.optional)()), tslib_1.__param(2, (0, inversify_1.inject)(types_1.TYPES.CompilerLoader)), tslib_1.__metadata("design:paramtypes", [Object, Object, models_1.CodeLoader]) ], TemplateEngine); exports.TemplateEngine = TemplateEngine; //# sourceMappingURL=templateEngine.js.map