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-mapper
or via npm
:
❯ npm install koa-error-mapper --save
Usage
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;
}
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 test
Release
❯ npm version [<new version> | major | minor | patch] -m "Release %s"
License
MIT