@nestjs-modules/mailer
Version:
NestJS - a mailer module (@mailer)
28 lines (27 loc) • 1.12 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.LiquidAdapter = void 0;
const path = require("path");
const lodash_1 = require("lodash");
const liquidjs_1 = require("liquidjs");
class LiquidAdapter {
constructor(config) {
Object.assign(this.config, config);
}
compile(mail, callback, mailerOptions) {
const { context, template } = mail.data;
const templateExt = path.extname(template) || '.liquid';
const templateName = path.basename(template, path.extname(template));
const templateDir = path.isAbsolute(template)
? path.dirname(template)
: path.join((0, lodash_1.get)(mailerOptions, 'template.dir', ''), path.dirname(template));
const engine = new liquidjs_1.Liquid(Object.assign({ extname: templateExt, root: templateDir }, this.config.globals));
engine.renderFile(templateName, context).then((body) => {
mail.data.html = body;
return callback();
}).catch((err) => {
return callback(err);
});
}
}
exports.LiquidAdapter = LiquidAdapter;
;