@libs/status
v0.1.0
Published
http status code from Django REST framework
Downloads
6
Readme
Status
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;