UNPKG

zents

Version:

ZenTS is a Node.js & TypeScript MVC-Framework for building rich web applications, released as free and open-source software under the MIT License. It is designed for building web applications with modern tools and design patterns.

44 lines 1.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TemplateEngineLoader = void 0; const filesystem_1 = require("../filesystem"); const config_1 = require("../config/config"); const path_1 = require("path"); const logger_1 = require("../log/logger"); class TemplateEngineLoader extends filesystem_1.AbstractZenFileLoader { async load() { const [files, filters] = await Promise.all([this.loadFiles(), this.loadFilters()]); return { files, filters, }; } async loadFiles() { return (await filesystem_1.fs.readDir(filesystem_1.fs.resolveZenPath('view'))).filter((filePath) => filePath.endsWith(`.${config_1.config.template.extension}`)); } async loadFilters() { var _a; const filters = new Map(); const dir = path_1.join(filesystem_1.fs.resolveZenPath('template'), 'filter'); if (!(await filesystem_1.fs.exists(dir))) { return filters; } const filePaths = (await filesystem_1.fs.readDir(dir)).filter((filePath) => filePath.endsWith(filesystem_1.fs.resolveZenFileExtension())); for (const filePath of filePaths) { const { key, module } = await this.loadModule(filePath); const filterModule = module; const name = typeof filterModule.filtername === 'string' ? filterModule.filtername : key; if (filters.has(name)) { logger_1.log.warn(`Template filter "${name}" has already been set. Skipping...`); continue; } filters.set(name, { async: (_a = filterModule.async) !== null && _a !== void 0 ? _a : false, module, }); } return filters; } } exports.TemplateEngineLoader = TemplateEngineLoader; //# sourceMappingURL=TemplateEngineLoader.js.map