UNPKG

gbox-errors

Version:

Error handlers

48 lines (40 loc) 1.27 kB
const boom = require('boom'); const validateData = require('./validateData'); module.exports = function (data) { if (typeof validateData(data) === 'string') { return boom.badRequest(validateData(data)); } let codes = new Map([ [400, 'badRequest'], [401, 'unauthorized'], [402, 'paymentRequired'], [403, 'forbidden'], [404, 'notFound'], [405, 'methodNotAllowed'], [406, 'notAcceptable'], [407, 'proxyAuthRequired'], [408, 'clientTimeout'], [409, 'conflict'], [410, 'resourceGone'], [411, 'lengthRequired'], [412, 'preconditionFailed'], [413, 'entityTooLarge'], [414, 'uriTooLong'], [415, 'unsupportedMediaType'], [416, 'rangeNotSatisfiable'], [417, 'expectationFailed'], [422, 'badData'], [423, 'locked'], [424, 'failedDependency'], [428, 'preconditionRequired'], [429, 'preconditionRequired'], [431, 'illegal'] ]); let [status, message, optional, err] = [data[0], data[1], data[2]]; err = boom[codes.get(status)](message); err.code = "CUSTOM_ERROR"; if (optional) { err.output.options = optional; } return err; };