@libs/status
TypeScript icon, indicating that this package has built-in type declarations

0.1.0 • Public • Published

Status

npm-v-badge npm-dt-badge travis-ci-master-badge

Using named status codes is more better than bare ones.

It continues using the good named style from Django REST framework

// bad part
/**
 * Although it's easy and straightforward to represent connotation
 * (used status code), it's lack of denotation (concrete message)
 * to represent itself.
 */
res.status(200);

// normal part
/**
 * Set status code to a constant but it's not clear
 * because it's only used by http.
 */
const OK = 200;
res.status(OK);  // OK is 200

// good part
/**
 * It's composed of status code and message as a named constant.
 * It has met `connotation` and `denotation`. Therefore, it's
 * very high readable!
 */
res.status(HTTP_200_OK);

Installation

$ npm install @libs/status

Usage & Example

import * as status from '@libs/status';

res.status(status.HTTP_200_OK);

APIs

Validator

  • isInformational: (code: number) => boolean;
  • isSuccess: (code: number) => boolean;
  • isRedirect: (code: number) => boolean;
  • isClientError: (code: number) => boolean;
  • isServerError: (code: number) => boolean;

Constants

  • HTTP_100_CONTINUE = 100;
  • HTTP_101_SWITCHING_PROTOCOLS = 101;
  • HTTP_200_OK = 200;
  • HTTP_201_CREATED = 201;
  • HTTP_202_ACCEPTED = 202;
  • HTTP_203_NON_AUTHORITATIVE_INFORMATION = 203;
  • HTTP_204_NO_CONTENT = 204;
  • HTTP_205_RESET_CONTENT = 205;
  • HTTP_206_PARTIAL_CONTENT = 206;
  • HTTP_207_MULTI_STATUS = 207;
  • HTTP_300_MULTIPLE_CHOICES = 300;
  • HTTP_301_MOVED_PERMANENTLY = 301;
  • HTTP_302_FOUND = 302;
  • HTTP_303_SEE_OTHER = 303;
  • HTTP_304_NOT_MODIFIED = 304;
  • HTTP_305_USE_PROXY = 305;
  • HTTP_306_RESERVED = 306;
  • HTTP_307_TEMPORARY_REDIRECT = 307;
  • HTTP_400_BAD_REQUEST = 400;
  • HTTP_401_UNAUTHORIZED = 401;
  • HTTP_402_PAYMENT_REQUIRED = 402;
  • HTTP_403_FORBIDDEN = 403;
  • HTTP_404_NOT_FOUND = 404;
  • HTTP_405_METHOD_NOT_ALLOWED = 405;
  • HTTP_406_NOT_ACCEPTABLE = 406;
  • HTTP_407_PROXY_AUTHENTICATION_REQUIRED = 407;
  • HTTP_408_REQUEST_TIMEOUT = 408;
  • HTTP_409_CONFLICT = 409;
  • HTTP_410_GONE = 410;
  • HTTP_411_LENGTH_REQUIRED = 411;
  • HTTP_412_PRECONDITION_FAILED = 412;
  • HTTP_413_REQUEST_ENTITY_TOO_LARGE = 413;
  • HTTP_414_REQUEST_URI_TOO_LONG = 414;
  • HTTP_415_UNSUPPORTED_MEDIA_TYPE = 415;
  • HTTP_416_REQUESTED_RANGE_NOT_SATISFIABLE = 416;
  • HTTP_417_EXPECTATION_FAILED = 417;
  • HTTP_422_UNPROCESSABLE_ENTITY = 422;
  • HTTP_423_LOCKED = 423;
  • HTTP_424_FAILED_DEPENDENCY = 424;
  • HTTP_428_PRECONDITION_REQUIRED = 428;
  • HTTP_429_TOO_MANY_REQUESTS = 429;
  • HTTP_431_REQUEST_HEADER_FIELDS_TOO_LARGE = 431;
  • HTTP_451_UNAVAILABLE_FOR_LEGAL_REASONS = 451;
  • HTTP_500_INTERNAL_SERVER_ERROR = 500;
  • HTTP_501_NOT_IMPLEMENTED = 501;
  • HTTP_502_BAD_GATEWAY = 502;
  • HTTP_503_SERVICE_UNAVAILABLE = 503;
  • HTTP_504_GATEWAY_TIMEOUT = 504;
  • HTTP_505_HTTP_VERSION_NOT_SUPPORTED = 505;
  • HTTP_507_INSUFFICIENT_STORAGE = 507;
  • HTTP_511_NETWORK_AUTHENTICATION_REQUIRED = 511;

Package Sidebar

Install

npm i @libs/status

Weekly Downloads

1

Version

0.1.0

License

MIT

Last publish

Collaborators

  • libs