UNPKG

nestjs-mailable

Version:

A comprehensive NestJS mail package with design patterns for email handling, templating, and multi-provider support

40 lines 1.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BaseTemplateEngine = void 0; exports.ensurePackageAvailable = ensurePackageAvailable; const path = require("path"); const fs_1 = require("fs"); function ensurePackageAvailable(packageName) { try { return require(packageName); } catch { throw new Error(`Template engine package '${packageName}' is not installed. ` + `Please install it with: npm install ${packageName}`); } } class BaseTemplateEngine { constructor(templateDir, mainFile, extension) { this.templateDir = templateDir; this.mainFile = mainFile; this.extension = extension; } resolveTemplatePath(template) { let templatePath = template || this.mainFile; if (!templatePath.endsWith(`.${this.extension}`)) { templatePath += `.${this.extension}`; } return path.join(this.templateDir, templatePath); } async loadTemplate(template) { try { const filePath = this.resolveTemplatePath(template); return await fs_1.promises.readFile(filePath, 'utf8'); } catch (error) { throw new Error(`Failed to load template file '${template}': ${error.message}`); } } } exports.BaseTemplateEngine = BaseTemplateEngine; //# sourceMappingURL=base.engine.js.map