hapi-error-logger
Version:
47 lines (34 loc) • 1.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _joi = _interopRequireDefault(require("joi"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const PluginSchema = _joi.default.object().keys({
replyWithStack: _joi.default.bool().optional().default(false).description('whether to add the stack as part of external error payload')
}).optional().default({});
const Plugin = {
name: 'hapi-error-logger',
register(server, options) {
const pluginOpts = _joi.default.attempt(options, PluginSchema); // register post response handler that logs 5xx request
server.ext('onPreResponse', request => {
const {
response
} = request; // isServer: convenience bool indicating status code >= 500
if (response && response.isBoom && response.isServer) {
const error = response.error || response.message; // skip logging if `error.data.skipLogs` is set
if (!response.data || !response.data.skipLogs) {
request.log(['error'], error);
}
if (pluginOpts.replyWithStack) {
response.output.payload.stack = response.stack;
}
}
return response;
});
}
};
var _default = Plugin;
exports.default = _default;
//# sourceMappingURL=index.js.map