@typescript-error/http 🔥

This is a library, which provides HTTP error classes (NotFoundError, InternalServerError, ...),
which can also simply be extended.
Table of Contents
Installation
npm install @typescript-error/http --save
Usage
The usage is pretty easy, just import one of the client or server error classes and use them
in throw- & catch- statements.
Basic
import {
InternalServerError,
NotFoundError
} from "@typescript-error/http";
const clientError = new NotFoundError();
console.log(clientError.getOption('statusCode'));
console.log(clientError.getOption('logMessage'));
console.log(clientError.getOption('code'));
const serverError = new InternalServerError({
logLevel: 'warning'
});
console.log(serverError.getOption('statusCode'));
console.log(serverError.getOption('logMessage'));
console.log(serverError.getOption('code'));
console.log(serverError.getOption('logLevel'));
Another way to use the predefined error classes is to extend them,
with own options.
Extend
import {
ErrorOptions,
mergeErrorOptions,
NotFoundError
} from "@typescript-error/http";
class UserNotFound extends NotFoundError {
constructor(options?: ErrorOptions) {
super(mergeErrorOptions(
{
message: 'The user was not found.',
code: 'USER_NOT_FOUND'
},
...(options ? options : {})
));
}
}
Types
The following HTTP classes are predefined:
Client
- 400
BadRequestError
- 401
UnauthorizedError
- 403
ForbiddenError
- 404
NotFoundError
- 405
MethodNotAllowedError
- 406
NotAcceptableError
- 407
ProxyAuthenticationRequiredError
- 408
RequesTimeoutError
- 409
ConflictError
- 410
GoneError
- 411
LengthRequiredError
- 412
PreconditionFailedError
- 413
RequestEntityTooLargeError
- 414
RequestUriTooLongError
- 415
UnsupportedMediaTypeError
- 416
RequestRangeNotSatisfiedError
- 417
ExpectationFailedError
- 418
ImATeapotError
- 420
EnhanceYourCalmError
- 422
UnprocessableEntityError
- 423
LockedError
- 424
FailedDependencyError
- 424
UnorderedCollectionError
- 426
UpgradeRequiredError
- 428
PreconditionRequiredError
- 429
TooManyRequestError
- 431
RequestHeaderFieldsTooLargeError
- 444
NoResponseError
- 449
RetryWithError
- 450
BlockedByWindowsParentError
- 499
ClientClosedRequestError
Server
- 500
InternalServerError
- 501
NotImplementedError
- 502
BadGatewayError
- 503
ServiceUnavailableError
- 504
GatewayTimeoutError
- 505
HTTPVersionNotSupportedError
- 506
VariantAlsoNegotiates
- 507
InsufficientStorageError
- 508
LoopDetectedError
- 509
BandwidthLimitExceededError
- 510
NotExtendedError
- 511
NetworkAuthenticationRequiredError