1.2.0 • Published 4 years ago

@burdzin/coded-error v1.2.0

Weekly downloads
9
License
MIT
Repository
gitlab
Last release
4 years ago

coded-error

Create error instances with a code, status, etc.

Instalation

$ npm install @burdzin/coded-error --save

Usage

const CodedError = require('@burdzin/coded-error');
// there is a single error item by default:
// 0: {
//   message: 'Unknown error',
//   status: 500
// }

// we can create centralized list of all errors
CodedError.use({
  // override "Unknown error"
  0: {
    message: 'Internal error',
    status: 500
  },
  1000: {
    message: 'Authorization needed',
    status: 401
  },
  1001: {
    message: 'Missing parameter',
    status: 400
  },
  ...
});

// now we can throw error by code
throw new CodedError(1000);
// Error:
// - name: CodedError
// - code 1000
// - message: Authorization needed
// - status: 401

// we can override error fields
throw new CodedError(1000, {
  message: 'Authorization needed. 2 attempts left', // override
});
// Error:
// - name: CodedError
// - code 1000
// - message: Authorization needed. 2 attempts left
// - status: 401

// we can pass custom params
throw new CodedError(1000, {
  message: 'Authorization needed. 2 attempts left', // override
  details: { leftAttempts: 2 }, // pass some params
  quiet: true // pass other params
});
// Error:
// - name: CodedError
// - code 1000
// - message: Authorization needed. 2 attempts left
// - status: 401
// - details:
//   - leftAttempts: 2
// - quiet: true, (ok, we do not need to log the error)

// we can throw an error with non-existent code
throw new CodedError('NON_EXISTENT_CODE', { status: 504, message: 'Server do not respond' });
// Error:
// - name: CodedError
// - code NON_EXISTENT_CODE
// - message: Internal error -> Server do not respond
// - status: 500 -> 504
// - params: {}
// - meta: {}

Tests

$ npm test

License

MIT

1.2.0

4 years ago

1.1.2

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago