UNPKG

auth-center

Version:
50 lines (41 loc) 1.33 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = _default; var _nodemailer = _interopRequireDefault(require("nodemailer")); var _lodash = _interopRequireDefault(require("lodash.template")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _default(app, options = {}) { const templates = options.templates || {}; const transport = _nodemailer.default.createTransport(options); Object.keys(templates).forEach(k => { templates[k].title = (0, _lodash.default)(templates[k].subject, { interpolate: /{{([\s\S]+?)}}/g }); templates[k].render = (0, _lodash.default)(templates[k].html, { interpolate: /{{([\s\S]+?)}}/g }); }); app.use(async function mailHandler(ctx, next) { ctx.sendMail = (to, key, data, files) => new Promise((resolve, reject) => { const tpl = templates[key]; transport.sendMail({ from: options.from, to: to, attachments: files, subject: tpl.title(data), html: tpl.render(data) }, err => { if (err) { console.error(err); reject(new Error('Send failed')); } else { resolve(); } }); }); await next(); }); } module.exports = exports.default;