JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 261
  • Score
    100M100P100Q81030F
  • License MIT

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 🔥

npm version main

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'));
// 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'));
// warning

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