UNPKG

micro-json-error

Version:

Outputs errors from your micro service in JSON.

34 lines (26 loc) 973 B
'use strict'; const { send } = require('micro'); function sendError (request, response, error, options) { const { statusCode = 500, message = 'Internal Server Error' } = error; const { httpStatusCode, onError } = options; if (onError) { onError(error); } send(response, httpStatusCode || statusCode, { statusCode, message }); } module.exports = function (handleRequest, options = {}) { if (!handleRequest || typeof handleRequest !== 'function') { throw new Error('Please supply a callback to micro-json-error.'); } return function (request, response) {return __async(function*(){ try { yield handleRequest(request, response); } catch (error) { sendError(request, response, error, options); } }())}; }; function __async(g){return new Promise(function(s,j){function c(a,x){try{var r=g[x?"throw":"next"](a)}catch(e){j(e);return}r.done?s(r.value):Promise.resolve(r.value).then(c,d)}function d(e){c(e,1)}c()})}