@ebec/http
v2.3.0
Published
A library that provides extensible ES6 HTTP error classes.
Downloads
2,910
Maintainers
Readme
@ebec/http 🥁
A library that provides extensible ES6 HTTP error classes that define basic information about the error.
Table of Contents
Installation
npm install @ebec/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 "@ebec/http";
const clientError = new NotFoundError();
console.log(clientError.statusCode);
// 404
console.log(clientError.logMessage);
// false
console.log(clientError.code);
// NOT_FOUND
// ------------------------------------
const serverError = new InternalServerError({
logLevel: 'warning'
});
console.log(clientError.statusCode);
// 500
console.log(clientError.logMessage);
// true
console.log(clientError.code);
// INTERNAL_SERVER_ERROR
console.log(clientError.logLevel);
// warning
Another way to use the predefined error classes is to extend them,
with own options
.
Extend
import {
Options,
mergeOptions,
NotFoundError
} from "@ebec/http";
class UserNotFound extends NotFoundError {
constructor() {
super({
statusMessage: 'The user was not found.',
code: 'USER_NOT_FOUND'
});
}
}
Classes
The following HTTP classes are predefined:
Base
HTTPError
ClientError
ServerError
Client
- 400
BadRequestError
- 401
UnauthorizedError
- 403
ForbiddenError
- 404
NotFoundError
- 405
MethodNotAllowedError
- 406
NotAcceptableError
- 407
ProxyAuthenticationRequiredError
- 408
RequestTimeoutError
- 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
Utils
isHTTPError
This method determines whether it is a client or server error.
import { isHTTPError, NotFoundError } from "@ebec/http";
const error = new NotFoundError();
console.log(isHTTPError(error));
// true
isClientError
This method determines whether it is a client error.
import { isClientError, NotFoundError } from "@ebec/http";
const error = new NotFoundError();
console.log(isClientError(error));
// true
isServerError
This method determines whether it is a server error.
import { isServerError, NotFoundError } from "@ebec/http";
const error = new NotFoundError();
console.log(isServerError(error));
// false
License
Made with 💚
Published under MIT License.