UNPKG

@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 (49 loc) 2.05 kB
import { TemplateEngineEnum, TemplateLanguageEnum } from './template.types'; import { ModuleMetadata, Type } from '@nestjs/common'; export type TemplateFilter = (...args: any[]) => any; export interface CustomEngineOptions { filters?: Record<string, TemplateFilter>; globals?: Record<string, any>; } export interface NestDynamicTemplatesModuleConfig { isGlobal?: boolean; engines?: { template?: TemplateEngineEnum[]; language?: TemplateLanguageEnum[]; }; filters?: Record<string, TemplateFilter>; globals?: Record<string, any>; engineOptions?: { template?: Partial<Record<TemplateEngineEnum, Record<string, any>>>; language?: Partial<Record<TemplateLanguageEnum, Record<string, any>>>; }; enginesOptions?: { filters?: Record<string, TemplateFilter>; globalValues?: Record<string, any>; template?: Partial<Record<TemplateEngineEnum, Record<string, any>>>; language?: Partial<Record<TemplateLanguageEnum, Record<string, any>>>; }; } export interface ResolvedTemplatesConfig { isGlobal: boolean; engines: { template: TemplateEngineEnum[]; language: TemplateLanguageEnum[]; }; filters: Record<string, TemplateFilter>; globals: Record<string, any>; engineOptions: { template: Partial<Record<TemplateEngineEnum, Record<string, any>>>; language: Partial<Record<TemplateLanguageEnum, Record<string, any>>>; }; } export interface NestDynamicTemplatesModuleOptionsFactory { createNestDynamicTemplatesModuleOptions(): Promise<NestDynamicTemplatesModuleConfig> | NestDynamicTemplatesModuleConfig; } export interface NestDynamicTemplatesModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> { isGlobal?: boolean; useExisting?: Type<NestDynamicTemplatesModuleOptionsFactory>; useClass?: Type<NestDynamicTemplatesModuleOptionsFactory>; useFactory?: (...args: any[]) => Promise<NestDynamicTemplatesModuleConfig> | NestDynamicTemplatesModuleConfig; inject?: any[]; }