@lleon/http-errors
v1.0.2
Published
Http errors made easy using classes
Downloads
88
Readme
HTTP Errors
Install
npm install @lleon/http-errors
Example
Test instance
import { HttpError, NotFound } from '@lleon/http-errors';
const error = new NotFound()
console.log(error instanceof Error) // true
console.log(error instanceof HttpError) // true
console.log(error instanceof NotFound) // true
With default options
import { NotFound } from '@lleon/http-errors';
const error = new NotFound();
console.log(error.statusCode); // 404
console.log(error.message); // "Not Found"
console.log(error.toJSON()); // { "statusCode": 404, "message": "Not Found", "timestamp": 1512682132993, "metadata": {} }
With custom error message
import { NotFound } from '@lleon/http-errors';
const error = new NotFound('User not found');
console.log(error.statusCode); // 404
console.log(error.message); // "User not found"
console.log(error.toJSON()); // { "statusCode": 404, "message": "User not Found", "timestamp": 1512682132993, "metadata": {} }
With custom metadata
import { NotFound } from '@lleon/http-errors';
const error = new NotFound({ id: 1 });
console.log(error.statusCode); // 404
console.log(error.message); // "User not found"
console.log(error.toJSON()); // { "statusCode": 404, "message": "Not Found", "timestamp": 1512682132993, "metadata": { "id": 1 } }
With custom message and custom metadata
import { NotFound } from '@lleon/http-errors';
const error = new NotFound('User not found', { id: 1 });
console.log(error.statusCode); // 404
console.log(error.message); // "User not found"
console.log(error.toJSON()); // { "statusCode": 404, "message": "User not Found", "timestamp": 1512682132993, "metadata": { "id": 1 } }
Errors
| Error | Code | Message |
| --------------------------------- | ---- | ---------------------------------- |
| BadRequest
| 400 | Bad Request |
| Unauthorized
| 401 | Unauthorized |
| PaymentRequired
| 402 | Payment Required |
| Forbidden
| 403 | Forbidden |
| NotFound
| 404 | Not Found |
| MethodNotAllowed
| 405 | Method Not Allowed |
| NotAcceptable
| 406 | Not Acceptable |
| ProxyAuthenticationRequired
| 407 | Proxy Authentication Required |
| RequestTimeout
| 408 | Request Timeout |
| Conflict
| 409 | Conflict |
| Gone
| 410 | Gone |
| LengthRequired
| 411 | Length Required |
| PreconditionFailed
| 412 | Precondition Failed |
| PayloadTooLarge
| 413 | Payload Too Large |
| RequestUriTooLong
| 414 | Request-URI Too Long |
| UnsupportedMediaType
| 415 | Unsupported Media Type |
| RequestedRangeNotSatisfiable
| 416 | Requested Range Not Satisfiable |
| ExpectationFailed
| 417 | Expectation Failed |
| ImATeapot
| 418 | I'm a teapot |
| MisdirectedRequest
| 421 | Misdirected Request |
| UnprocessableEntity
| 422 | Unprocessable Entity |
| Locked
| 423 | Locked |
| FailedDependency
| 424 | Failed Dependency |
| UpgradeRequired
| 426 | Upgrade Required |
| PreconditionRequired
| 428 | Precondition Required |
| TooManyRequests
| 429 | Too Many Requests |
| RequestHeaderFieldsTooLarge
| 431 | Request Header Fields Too Large |
| ConnectionClosedWithoutResponse
| 444 | Connection Closed Without Response |
| UnavailableForLegalReasons
| 451 | Unavailable For Legal Reasons |
| ClientClosedRequest
| 499 | Client Closed Request |
| InternalServerError
| 500 | Internal Server Error |
| NotImplemented
| 501 | Not Implemented |
| BadGateway
| 502 | Bad Gateway |
| ServiceUnavailable
| 503 | Service Unavailable |
| GatewayTimeout
| 504 | Gateway Timeout |
| HttpVersionNotSupported
| 505 | HTTP Version Not Supported |
| VariantAlsoNegotiates
| 506 | Variant Also Negotiates |
| InsufficientStorage
| 507 | Insufficient Storage |
| LoopDetected
| 508 | Loop Detected |
| NotExtended
| 510 | Not Extended |
| NetworkAuthenticationRequired
| 511 | Network Authentication Required |
| NetworkConnectTimeoutError
| 599 | Network Connect Timeout Error |