Skip to content

js-thing/http-status-codes

Repository files navigation

npm version Build status codecov GitHub version dependencies dev-dependencies npm-downloads

Http Status Codes

This library is a complete collection of all Http Status Codes and Reason Phrases along with helper functions with no dependencies and is open source written in typescript.

Use with Typescript or Javascript in both server or client side.

Covers status codes defined in

  • Hypertext Transfer Protocol (HTTP/1.0) defined in RFC 1945
  • Hypertext Transfer Protocol (HTTP/1.1) defined in RFC 2616
  • Web-based Distributed Authoring and Versioning (WebDAV) defined in RFC 2518

View project on GitHub


Documentation

Each and every member/property/function of the library are properly documented to get comprehensive inforation along with supporting links to original sources.

An example of VS Code IntelliSense showing the Unauthorized enum member.

image

The complete documentation of this project can be found in this link.


Installation

Install from npm

npm install @js-thing/http-status-codes

Import it to your project

Use ES module import

import { 
    HttpInformationStatusCodes, 
    HttpSuccessStatusCodes,
    HttpRedirectionStatusCodes,
    HttpClientErrorStatusCodes,     
    HttpServerErrorStatusCodes,
    HttpStatusCodes,
} from '@js-thing/http-status-codes';

Or CommonJS Require

const { 
    HttpInformationStatusCodes, 
    HttpSuccessStatusCodes, 
    HttpRedirectionStatusCodes, 
    HttpClientErrorStatusCodes, 
    HttpServerErrorStatusCodes,
    HttpStatusCodes,
} = require('@js-thing/http-status-codes');

Usage

The HttpStatusCodes enum is the status code super set of HttpInformationStatusCodes, HttpSuccessStatusCodes, HttpRedirectionStatusCodes, HttpClientErrorStatusCodes and HttpServerErrorStatusCodes enums

// use the combined enum to access any status code
const code = HttpStatusCodes.Continue; // code = 100
const code = HttpStatusCodes.Ok; // code = 200
const code = HttpStatusCodes.Found; // code = 302
const code = HttpStatusCodes.BadRequest; // code = 400
const code = HttpStatusCodes.InternalServerError; // code = 500

// Or use the individual enum group
const code = HttpInformationStatusCodes.Continue; // code = 100
const code = HttpSuccessStatusCodes.Ok; // code = 200
const code = HttpRedirectionStatusCodes.Found; // code = 302
const code = HttpClientErrorStatusCodes.BadRequest; // code = 400
const code = HttpServerErrorStatusCodes.InternalServerError; // code = 500

Similarly for reason phrase

const {
    HttpInformationReasonPhrases,
    HttpSuccessReasonPhrases,
    HttpRedirectionReasonPhrases,
    HttpClientErrorReasonPhrases,
    HttpServerErrorReasonPhrases,
    HttpReasonPhrases
  } = require("@js-thing/http-status-codes");

// use the combined enum to access any reason rhrase
const phrase = HttpReasonPhrases.Continue; // phrase = "Continue"
const phrase = HttpReasonPhrases.Ok; // phrase = "OK"
const phrase = HttpReasonPhrases.Found; // phrase = "Found"
const phrase = HttpReasonPhrases.BadRequest; // phrase = "Bad Request"
const phrase = HttpReasonPhrases.InternalServerError; // phrase = "Internal Server Error"

// Or use the individual enum group
const phrase = HttpInformationReasonPhrases.Continue; // phrase = "Continue"
const phrase = HttpSuccessReasonPhrases.Ok; // phrase = "OK"
const phrase = HttpRedirectionReasonPhrases.Found; // phrase = "Found"
const phrase = HttpClientErrorReasonPhrases.BadRequest; // phrase = "Bad Request"
const phrase = HttpServerErrorReasonPhrases.InternalServerError; // phrase = "Internal Server Error"

Check status code, reason phrase defined in RFC

const {
  isSuccessStatusCode,
  isSuccessReasonPhrase,
  isSuccessStatus,
} = require("@js-thing/http-status-codes");

isSuccessStatusCode(200); // returns true
isSuccessStatusCode(250); // returns false as 250 is not defined in RFC
isSuccessReasonPhrase("OK"); // returns true
isSuccessReasonPhrase("ABC"); // returns false
// isSuccessStatus accepts both number or string and can check code or phrase
isSuccessStatus(200); // returns true
isSuccessStatus("OK"); // returns true

// similarly these methods are available for other status family as well

Check status code family

const {
  is1xxInformationStatusCode,
  is2xxSuccessStatusCode,
  is3xxRedirectionStatusCode,
  is4xxClientErrorStatusCode,
  is5xxServerErrorStatusCode,
} = require("@js-thing/http-status-codes");

is1xxInformationStatusCode(code); // returns true for code >= 100 && code <=199
is2xxSuccessStatusCode(code); // returns true for code >= 200 && code <=299
is3xxRedirectionStatusCode(code); // returns true for code >= 300 && code <=399
is4xxClientErrorStatusCode(code); // returns true for code >= 400 && code <=499
is5xxServerErrorStatusCode(code); // returns true for code >= 500 && code <=599

Get status code, reason phrase and complete status code with phrase

const {
  getStatusCode,
  getReasonPhrase,
  getCompositeStatus,
} = require("@js-thing/http-status-codes");

getStatusCode("OK"); // returns 200
//or pass an optional parameter to ignore the case of the status phrase
getStatusCode("ok", true); // returns 200
getStatusCode("abc"); // returns undefined

getReasonPhrase(200); // returns "OK"
getCompositeStatus(200); // returns "200 OK"

Contributors

Jnyan Ankur Kakati
Abhishek Chaterjee
Ankita Agarwal
Nabadeep Kakati - Logo


Licence

The documentation for this project is directly sourced from MDN Web Docs by Mozilla Contributors is licensed under CC-BY-SA 2.5

The project excluding the documentation is licenced under MIT