UNPKG

create-boom-error

Version:

Simply create sub-classed Boom errors for Hapi applications.

45 lines (36 loc) 889 B
const Boom = require('@hapi/boom'); const Decamelize = require('decamelize'); class BaseError extends Error { name; code; } function isDecoratedBoom(err) { return err instanceof BaseError; } function createBoomError(name, statusCode, message, code) { return class extends BaseError { constructor() { super(); this.name = name; if (code) { this.code = code; } else { this.code = Decamelize(name); } this.message = undefined; if (typeof message === 'string') { this.message = message; } else if (typeof message === 'function') { this.message = message.apply(null, arguments); } Boom.boomify(this, { statusCode }); if (!message) { Reflect.deleteProperty(this.output.payload, 'message'); } } } } module.exports = { isDecoratedBoom, createBoomError };