Skip to content

OADA/oada-error-js

Repository files navigation

@oada/error

Coverage Status npm Downloads/week code style: prettier License

Connect style middleware for OADA Standard Errors.

Getting Started

Installation

The library can be installed with yarn using

yarn add @oada/error

Running the Examples

Minimal Example

See examples README

Running the tests, coverage, and style checks

The libraries test can be run with:

yarn test

API

OADAError(message, code, userMessage, href, detail)

Subclass of Error, it contains enough information to form an OADA Standard Error. OADA-specific express middlewares should favor throwing OADAError over Error. When paired with the OADAError middleware OADAError objects that are thrown are automatically converted to a compliant OADA Standard Response.

Parameters

message {String} A basic description of the error that occurred. Default: ''

code {Number/OADAError.codes.*} The HTTP response code for the error. Default: 500

userMessage {String} A short message that is appropriate to show the end user explaining the error. A client would typically blindly pass this message on to the user. Default: Unexpected error. Please try again or contact support.

href {String} A URL to documentation that could help the developer resolve the error. Default: https://github.com/OADA/oada-docs/blob/master/rest-specs/README.md

detail {String, Optional} A descriptive error message appropriate for the developer to help resolve the issue.

Usage Example

import { OADAError, Codes } from '@oada/error';

throw new OADAError('title', Codes.Ok, 'href', 'user message');

middleware(callback)

Connect style error handling middleware for OADA-originated projects. It catches OADAError objects that bubble up through middleware layers and generates a valid OADA Standard Error Response. Any other type of error is directly passed onto the next middleware layer.

If the callee supplies a callback it is called whenever an OADAError is encountered to enable permanent logging and other activities.

Parameters

callback {Function, Optional} Called whenever an OADAError is encountered in the middleware layers. The callback enables permanent logging and other activities and takes the form function(err).

Usage Example

import express from 'express';
import { middleware } from '@oada/error';

function logError(err) {
  console.log(err);
}

const app = express();
app.use(middleware(logError));