Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

koa-error-mapper

Package Overview
Dependencies
Maintainers
9
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

koa-error-mapper

An error mapper for Koa applications

  • 4.1.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
3.6K
increased by66.85%
Maintainers
9
Weekly downloads
 
Created
Source

koa-error-mapper

koa-error-mapper is a middleware that handles application errors by mapping them to a custom format.

Status

npm version build 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;
    }

    // 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 test

Release

❯ npm version [<new version> | major | minor | patch] -m "Release %s"

License

MIT

Keywords

FAQs

Package last updated on 06 Nov 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc