UNPKG

micro-notify

Version:

A simple wrapper to send micro errors to Bugsnag

1 lines 635 B
'use strict';const{send}=require('micro'),Boom=require('boom'),bugsnag=require('bugsnag');module.exports=exports=(a,b={})=>c=>{if(!a)throw new Error('micro-notify must be initialized with a Bugsnag API key.');if(!c||'function'!=typeof c)throw new Error('micro-notify must be passed a function.');return bugsnag.register(a,b),async function(a,b){try{return await c(a,b)}catch(a){console.error(a),bugsnag.notify(a);let c=b.statusCode||500;a.isBoom?c=a.output.statusCode:a.statusCode&&(c=a.statusCode),400>c&&(c=500);const d=a.isBoom?Boom.boomify(a):Boom.boomify(a,c);send(b,c,Object.assign({},d.output.payload,d.data&&{data:d.data}))}}};