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

    Keywords

    Install

    npm i saga-managed-error

    DownloadsWeekly Downloads

    59

    Version

    4.0.4

    License

    ISC

    Unpacked Size

    8.62 kB

    Total Files

    5

    Last publish

    Collaborators

    • sagacify