4.1.0 • Published 5 years ago
koa-error-mapper v4.1.0
koa-error-mapper
koa-error-mapper is a middleware that handles application errors by mapping them to a custom format.
Status
Installation
Install the package via yarn:
❯ yarn add koa-error-mapperor via npm:
❯ npm install koa-error-mapper --saveUsage
Mappers
Mappers are responsible for handling errors and normalizing the response. A generic fallback mapper is included in case no custom mapper is available.
The only interface for a mapper is a map() function. A mapper should return undefined if it is not capable or responsible for mapping a specific error. It must return an object with status and body. If not returned on the object, the value on the response will be undefined for precaution. It may also contain a headers property.
module.exports = {
map(e) {
if (!(e instanceof CustomError)) {
return;
}
// Add your own custom logic here.
return { status: e.code, body: { message: e.message }, headers: { Foo: 'Bar' }};
}
};Now use the error mapper and register CustomMapper:
'use strict';
const CustomError = require('path/to/my/custom/error');
const Koa = require('koa');
const app = new Koa();
const customMapper = require('path/to/my/custom/mapper');
app.use(errorMapper([customMapper]);
app.get('/', async () => {
throw new CustomError(401, 'Ah-ah!');
});
app.listen(3000);Result:
GET /
HTTP/1.1 401 Unauthorized
Foo: Bar
{ "message": "Ah-ah!" }Tests
❯ yarn testRelease
❯ npm version [<new version> | major | minor | patch] -m "Release %s"License
MIT