0.1.0 • Published 9 years ago
@libs/status v0.1.0
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/statusUsage & 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;