@ackplus/nest-dynamic-templates
Version:
A powerful and flexible dynamic template rendering library for NestJS applications with support for Nunjucks, Handlebars, EJS, Pug, MJML, Markdown, and more.
50 lines • 1.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DEFAULT_ENGINES = void 0;
exports.resolveConfig = resolveConfig;
const template_types_1 = require("../interfaces/template.types");
exports.DEFAULT_ENGINES = {
template: [template_types_1.TemplateEngineEnum.NUNJUCKS],
language: [
template_types_1.TemplateLanguageEnum.HTML,
template_types_1.TemplateLanguageEnum.MJML,
template_types_1.TemplateLanguageEnum.TEXT,
],
};
let warnedAboutLegacy = false;
function resolveConfig(config = {}) {
const legacy = mapLegacy(config);
return {
isGlobal: config.isGlobal ?? false,
engines: {
template: dedupe(config.engines?.template ?? exports.DEFAULT_ENGINES.template),
language: dedupe(config.engines?.language ?? exports.DEFAULT_ENGINES.language),
},
filters: { ...legacy.filters, ...config.filters },
globals: { ...legacy.globals, ...config.globals },
engineOptions: {
template: { ...legacy.engineOptions.template, ...config.engineOptions?.template },
language: { ...legacy.engineOptions.language, ...config.engineOptions?.language },
},
};
}
function mapLegacy(config) {
const legacy = config.enginesOptions;
if (legacy && !warnedAboutLegacy) {
warnedAboutLegacy = true;
console.warn('[nest-dynamic-templates] `enginesOptions` is deprecated. Use top-level ' +
'`filters`, `globals` and `engineOptions` instead. See the v2 migration guide.');
}
return {
filters: legacy?.filters ?? {},
globals: legacy?.globalValues ?? {},
engineOptions: {
template: legacy?.template ?? {},
language: legacy?.language ?? {},
},
};
}
function dedupe(items) {
return Array.from(new Set(items));
}
//# sourceMappingURL=resolve-config.js.map