UNPKG

dispo

Version:

Job and cronjob scheduler for Node

134 lines (99 loc) 3.4 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _assign = require('babel-runtime/core-js/object/assign'); var _assign2 = _interopRequireDefault(_assign); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _nodemailer = require('nodemailer'); var _nodemailer2 = _interopRequireDefault(_nodemailer); var _nodemailerSendmailTransport = require('nodemailer-sendmail-transport'); var _nodemailerSendmailTransport2 = _interopRequireDefault(_nodemailerSendmailTransport); var _ = require('.'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Default logger options * @type {Object} */ var defaults = { transport: (0, _nodemailerSendmailTransport2.default)(), mail: { from: 'Dispo <dispo@example.com>' } }; /** * Mailer */ var Mailer = function () { /** * Creates an instance of Mailer. * * @memberOf Mailer * @param {Object} [config={}] */ function Mailer(config) { (0, _classCallCheck3.default)(this, Mailer); this.config = (0, _assign2.default)({}, defaults, config); } /** * Initializes a nodemailer transport * * @memberOf Mailer * @return {Promise<void>} */ (0, _createClass3.default)(Mailer, [{ key: 'init', value: function init() { this._mailer = _nodemailer2.default.createTransport(this.config.transport); } }, { key: 'sendMail', value: function () { var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(job, message) { var _ref2, _ref2$data, notifyOnError, name, id; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return (0, _.getJob)(job); case 2: _ref2 = _context.sent; _ref2$data = _ref2.data; notifyOnError = _ref2$data.notifyOnError; name = _ref2$data.name; id = _ref2.id; if (notifyOnError) { _context.next = 9; break; } return _context.abrupt('return'); case 9: this._mailer.sendMail((0, _assign2.default)({}, this.config.mail, { to: notifyOnError, subject: 'Job "' + name + '" (id ' + id + ') failed', text: 'Job "' + name + '" (id ' + id + ') failed\n\n' + message })); case 10: case 'end': return _context.stop(); } } }, _callee, this); })); function sendMail(_x, _x2) { return _ref.apply(this, arguments); } return sendMail; }() }]); return Mailer; }(); exports.default = Mailer;