yodelay
Version:
Log and send error metrics off with ease.
39 lines (27 loc) • 3.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _unhandledError = require("unhandled-error");
var _unhandledError2 = _interopRequireDefault(_unhandledError);
var _moment = require("moment");
var _moment2 = _interopRequireDefault(_moment);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class UnhandledRejectionTransport {
constructor(opts) {
this.logger = opts.logger;
this.appName = opts.appName;
this.metric = opts.metric;
}
initialize() {
var _this = this;
(0, _unhandledError2.default)(function (error, context) {
const errorType = context.hasOwnProperty("promise") ? "unhandled_promise_rejection" : "unhandled_error";
const loggerMessage = _this.logger.logMessageFormat(error.message);
_this.logger.log(Object.assign({}, loggerMessage, { level: "error" }));
_this.metric.send(loggerMessage, errorType);
}, { doNotCrash: true });
}
}
exports.default = UnhandledRejectionTransport;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc3BvcnRzL3VuaGFuZGxlZFJlamVjdGlvbi5qcyJdLCJuYW1lcyI6WyJVbmhhbmRsZWRSZWplY3Rpb25UcmFuc3BvcnQiLCJjb25zdHJ1Y3RvciIsIm9wdHMiLCJsb2dnZXIiLCJhcHBOYW1lIiwibWV0cmljIiwiaW5pdGlhbGl6ZSIsImVycm9yIiwiY29udGV4dCIsImVycm9yVHlwZSIsImhhc093blByb3BlcnR5IiwibG9nZ2VyTWVzc2FnZSIsImxvZ01lc3NhZ2VGb3JtYXQiLCJtZXNzYWdlIiwibG9nIiwibGV2ZWwiLCJzZW5kIiwiZG9Ob3RDcmFzaCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7QUFDQTs7Ozs7O0FBRUEsTUFBTUEsMkJBQU4sQ0FBa0M7QUFDaENDLGNBQVlDLElBQVosRUFBa0I7QUFDaEIsU0FBS0MsTUFBTCxHQUFjRCxLQUFLQyxNQUFuQjtBQUNBLFNBQUtDLE9BQUwsR0FBZUYsS0FBS0UsT0FBcEI7QUFDQSxTQUFLQyxNQUFMLEdBQWNILEtBQUtHLE1BQW5CO0FBQ0Q7O0FBRURDLGVBQWE7QUFBQTs7QUFDWCxrQ0FDRSxVQUFDQyxLQUFELEVBQVFDLE9BQVIsRUFBb0I7QUFDbEIsWUFBTUMsWUFBWUQsUUFBUUUsY0FBUixDQUF1QixTQUF2QixJQUNkLDZCQURjLEdBRWQsaUJBRko7O0FBSUEsWUFBTUMsZ0JBQWdCLE1BQUtSLE1BQUwsQ0FBWVMsZ0JBQVosQ0FBNkJMLE1BQU1NLE9BQW5DLENBQXRCOztBQUVBLFlBQUtWLE1BQUwsQ0FBWVcsR0FBWixtQkFBcUJILGFBQXJCLEVBQXVDLEVBQUVJLE9BQU8sT0FBVCxFQUF2QztBQUNBLFlBQUtWLE1BQUwsQ0FBWVcsSUFBWixDQUFpQkwsYUFBakIsRUFBZ0NGLFNBQWhDO0FBQ0QsS0FWSCxFQVdFLEVBQUVRLFlBQVksSUFBZCxFQVhGO0FBYUQ7QUFyQitCOztrQkF3Qm5CakIsMkIiLCJmaWxlIjoidW5oYW5kbGVkUmVqZWN0aW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHVuaGFuZGxlZEVycm9yIGZyb20gXCJ1bmhhbmRsZWQtZXJyb3JcIjtcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xuXG5jbGFzcyBVbmhhbmRsZWRSZWplY3Rpb25UcmFuc3BvcnQge1xuICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgdGhpcy5sb2dnZXIgPSBvcHRzLmxvZ2dlcjtcbiAgICB0aGlzLmFwcE5hbWUgPSBvcHRzLmFwcE5hbWU7XG4gICAgdGhpcy5tZXRyaWMgPSBvcHRzLm1ldHJpYztcbiAgfVxuXG4gIGluaXRpYWxpemUoKSB7XG4gICAgdW5oYW5kbGVkRXJyb3IoXG4gICAgICAoZXJyb3IsIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgZXJyb3JUeXBlID0gY29udGV4dC5oYXNPd25Qcm9wZXJ0eShcInByb21pc2VcIilcbiAgICAgICAgICA/IFwidW5oYW5kbGVkX3Byb21pc2VfcmVqZWN0aW9uXCJcbiAgICAgICAgICA6IFwidW5oYW5kbGVkX2Vycm9yXCI7XG5cbiAgICAgICAgY29uc3QgbG9nZ2VyTWVzc2FnZSA9IHRoaXMubG9nZ2VyLmxvZ01lc3NhZ2VGb3JtYXQoZXJyb3IubWVzc2FnZSk7XG5cbiAgICAgICAgdGhpcy5sb2dnZXIubG9nKHsgLi4ubG9nZ2VyTWVzc2FnZSwgLi4ueyBsZXZlbDogXCJlcnJvclwiIH0gfSk7XG4gICAgICAgIHRoaXMubWV0cmljLnNlbmQobG9nZ2VyTWVzc2FnZSwgZXJyb3JUeXBlKTtcbiAgICAgIH0sXG4gICAgICB7IGRvTm90Q3Jhc2g6IHRydWUgfVxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgVW5oYW5kbGVkUmVqZWN0aW9uVHJhbnNwb3J0O1xuIl19