saga-managed-error
TypeScript icon, indicating that this package has built-in type declarations

4.0.4 • Public • Published

Managed Error

npm version

Description

This package introduces a managed scoped Error class. It is designed to be and stay simple !!!

Here is an exemple:

{
  statusCode: 400,
  message: 'USER_REGISTER_BAD_REQUEST', // Comes from scope & status
  validations: [
    {
      field: 'email',
      message: 'missing tld'
    }, {
      field: 'firstname',
      message: 'should start with a capital'
    }
  ],
  context: {
    foo: 'bar'
  };
}

Usage

Here are the constructor arguments:

throw new ManagedError('USER_REGISTER', 400, {
  validations: [
    {
      field: 'email',
      message: 'missing tld'
    }, {
      field: 'firstname',
      message: 'should start with a capital'
    }
  ],
  context: {
    foo: 'bar'
  }
});
  1. scope required string
  2. statusCode optional number
  3. meta optional object
    1. meta.validations optional array
    2. meta.context optional object

Here is how you use it in your code.

const { ManagedError } = require('saga-managed-error');
// Or
import { ManagedError } from 'saga-managed-error';

if (!user) {
  throw new ManagedError('USER', 404);
}

if (vadlidationErrors.length > 0) {
  throw new ManagedError('USER_REGISTER', 400, { vadlidationErrors, context: req.body });
}

Valid status code

  • 400 BAD_REQUEST
  • 401 UNAUTHORIZED
  • 403 FORBIDDEN
  • 404 NOT_FOUND
  • 405 METHOD_NOT_ALLOWED
  • 406 NOT_ACCEPTABLE
  • 407 PROXY_AUTHENTICATION_REQUIRED
  • 408 REQUEST_TIMEOUT
  • 409 CONFLICT
  • 410 GONE
  • 411 LENGTH_REQUIRED
  • 412 PRECONDITION_FAILED
  • 413 PAYLOAD_TOO_LARGE
  • 414 URI_TOO_LONG
  • 415 UNSUPPORTED_MEDIA_TYPE
  • 416 RANGE_NOT_SATISFIABLE
  • 417 EXPECTATION_FAILED
  • 426 UPGRADE_REQUIRED
  • 428 PRECONDITION_REQUIRED
  • 429 TOO_MANY_REQUESTS
  • 431 REQUEST_HEADER_FIELDS_TOO_LARGE
  • 451 UNAVAILABLE_FOR_LEGAL_REASONS
  • 500 INTERNAL_SERVER_ERROR (default)
  • 501 NOT_IMPLEMENTED
  • 502 BAD_GATEWAY
  • 503 SERVICE_UNAVAILABLE
  • 504 GATEWAY_TIMEOUT
  • 505 HTTP_VERSION_NOT_SUPPORTED
  • 511 NETWORK_AUTHENTICATION_REQUIRED

Readme

Keywords

Package Sidebar

Install

npm i saga-managed-error

Weekly Downloads

391

Version

4.0.4

License

ISC

Unpacked Size

8.62 kB

Total Files

5

Last publish

Collaborators

  • sagacify