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
JavaScript
;
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