saga-managed-error
v4.0.4
Published
Custom error class for better error handling
Downloads
2,066
Readme
Managed Error
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'
}
});
scope
required stringstatusCode
optional numbermeta
optional objectmeta.validations
optional arraymeta.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