Package Exports
- @typescript-error/http
- @typescript-error/http/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@typescript-error/http) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@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 --saveUsage
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'));
// 404
console.log(clientError.getOption('logMessage'));
// false
console.log(clientError.getOption('code'));
// NOT_FOUND
// ------------------------------------
const serverError = new InternalServerError({
logLevel: 'warning'
});
console.log(serverError.getOption('statusCode'));
// 500
console.log(serverError.getOption('logMessage'));
// true
console.log(serverError.getOption('code'));
// INTERNAL_SERVER_ERROR
console.log(serverError.getOption('logLevel'));
// warningAnother 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