Back to Notes

Snippet

HTTP Status Codes with TypeScript Enums

August 18, 2023

0min read

With TypeScript, we can elegantly categorize and manage these status codes using Enums.

Using TypeScript for HTTP Status Codes:

TypeScript offers a powerful feature called Enums, allowing us to group related values together. In the context of HTTP status codes, Enums provide a structured and readable way to manage these codes.

export enum HttpStatusCode { 
  // 1xx Informational 
  CONTINUE = 100, 
  SWITCHING_PROTOCOLS = 101, 
  PROCESSING = 102, 
  // 2xx Success 
  OK = 200, 
  CREATED = 201, 
  ACCEPTED = 202, 
  NON_AUTHORITATIVE_INFORMATION = 203, 
  NO_CONTENT = 204, 
  RESET_CONTENT = 205, 
  PARTIAL_CONTENT = 206, 
  MULTI_STATUS = 207, 
  ALREADY_REPORTED = 208, 
  IM_USED = 226, 
  // 3xx Redirection 
  MULTIPLE_CHOICES = 300, 
  MOVED_PERMANENTLY = 301, 
  FOUND = 302, 
  SEE_OTHER = 303, 
  NOT_MODIFIED = 304, 
  USE_PROXY = 305,
  TEMPORARY_REDIRECT = 307, 
  PERMANENT_REDIRECT = 308, 
  // 4xx Client errors
  BAD_REQUEST = 400, 
  UNAUTHORIZED = 401, 
  PAYMENT_REQUIRED = 402, 
  FORBIDDEN = 403, 
  NOT_FOUND = 404, 
  METHOD_NOT_ALLOWED = 405, 
  NOT_ACCEPTABLE = 406, 
  PROXY_AUTHENTICATION_REQUIRED = 407, 
  REQUEST_TIMEOUT = 408, 
  CONFLICT = 409, 
  GONE = 410, 
  LENGTH_REQUIRED = 411, 
  PRECONDITION_FAILED = 412, 
  PAYLOAD_TOO_LARGE = 413, 
  URI_TOO_LONG = 414, 
  UNSUPPORTED_MEDIA_TYPE = 415, 
  RANGE_NOT_SATISFIABLE = 416, 
  EXPECTATION_FAILED = 417, 
  IM_A_TEAPOT = 418, 
  MISDIRECTED_REQUEST = 421, 
  UNPROCESSABLE_ENTITY = 422,
  LOCKED = 423, 
  FAILED_DEPENDENCY = 424, 
  UPGRADE_REQUIRED = 426, 
  PRECONDITION_REQUIRED = 428, 
  TOO_MANY_REQUESTS = 429, 
  REQUEST_HEADER_FIELDS_TOO_LARGE = 431, 
  UNAVAILABLE_FOR_LEGAL_REASONS = 451, 
  // 5xx Server errors 
  INTERNAL_SERVER_ERROR = 500, 
  NOT_IMPLEMENTED = 501, 
  BAD_GATEWAY = 502, 
  SERVICE_UNAVAILABLE = 503, 
  GATEWAY_TIMEOUT = 504, 
  HTTP_VERSION_NOT_SUPPORTED = 505, 
  VARIANT_ALSO_NEGOTIATES = 506, 
  INSUFFICIENT_STORAGE = 507, 
  LOOP_DETECTED = 508, 
  NOT_EXTENDED = 510, 
  NETWORK_AUTHENTICATION_REQUIRED = 511, 
}

Using TypeScript for HTTP Status Codes:

TypeScript offers a powerful feature called Enums, allowing us to group related values together. In the context of HTTP status codes, Enums provide a structured and readable way to manage these codes.

export enum HttpStatusCode { 
  // 1xx Informational 
  CONTINUE = 100, 
  SWITCHING_PROTOCOLS = 101, 
  PROCESSING = 102, 
  // 2xx Success 
  OK = 200, 
  CREATED = 201, 
  ACCEPTED = 202, 
  NON_AUTHORITATIVE_INFORMATION = 203, 
  NO_CONTENT = 204, 
  RESET_CONTENT = 205, 
  PARTIAL_CONTENT = 206, 
  MULTI_STATUS = 207, 
  ALREADY_REPORTED = 208, 
  IM_USED = 226, 
  // 3xx Redirection 
  MULTIPLE_CHOICES = 300, 
  MOVED_PERMANENTLY = 301, 
  FOUND = 302, 
  SEE_OTHER = 303, 
  NOT_MODIFIED = 304, 
  USE_PROXY = 305,
  TEMPORARY_REDIRECT = 307, 
  PERMANENT_REDIRECT = 308, 
  // 4xx Client errors
  BAD_REQUEST = 400, 
  UNAUTHORIZED = 401, 
  PAYMENT_REQUIRED = 402, 
  FORBIDDEN = 403, 
  NOT_FOUND = 404, 
  METHOD_NOT_ALLOWED = 405, 
  NOT_ACCEPTABLE = 406, 
  PROXY_AUTHENTICATION_REQUIRED = 407, 
  REQUEST_TIMEOUT = 408, 
  CONFLICT = 409, 
  GONE = 410, 
  LENGTH_REQUIRED = 411, 
  PRECONDITION_FAILED = 412, 
  PAYLOAD_TOO_LARGE = 413, 
  URI_TOO_LONG = 414, 
  UNSUPPORTED_MEDIA_TYPE = 415, 
  RANGE_NOT_SATISFIABLE = 416, 
  EXPECTATION_FAILED = 417, 
  IM_A_TEAPOT = 418, 
  MISDIRECTED_REQUEST = 421, 
  UNPROCESSABLE_ENTITY = 422,
  LOCKED = 423, 
  FAILED_DEPENDENCY = 424, 
  UPGRADE_REQUIRED = 426, 
  PRECONDITION_REQUIRED = 428, 
  TOO_MANY_REQUESTS = 429, 
  REQUEST_HEADER_FIELDS_TOO_LARGE = 431, 
  UNAVAILABLE_FOR_LEGAL_REASONS = 451, 
  // 5xx Server errors 
  INTERNAL_SERVER_ERROR = 500, 
  NOT_IMPLEMENTED = 501, 
  BAD_GATEWAY = 502, 
  SERVICE_UNAVAILABLE = 503, 
  GATEWAY_TIMEOUT = 504, 
  HTTP_VERSION_NOT_SUPPORTED = 505, 
  VARIANT_ALSO_NEGOTIATES = 506, 
  INSUFFICIENT_STORAGE = 507, 
  LOOP_DETECTED = 508, 
  NOT_EXTENDED = 510, 
  NETWORK_AUTHENTICATION_REQUIRED = 511, 
}

Using TypeScript for HTTP Status Codes:

TypeScript offers a powerful feature called Enums, allowing us to group related values together. In the context of HTTP status codes, Enums provide a structured and readable way to manage these codes.

export enum HttpStatusCode { 
  // 1xx Informational 
  CONTINUE = 100, 
  SWITCHING_PROTOCOLS = 101, 
  PROCESSING = 102, 
  // 2xx Success 
  OK = 200, 
  CREATED = 201, 
  ACCEPTED = 202, 
  NON_AUTHORITATIVE_INFORMATION = 203, 
  NO_CONTENT = 204, 
  RESET_CONTENT = 205, 
  PARTIAL_CONTENT = 206, 
  MULTI_STATUS = 207, 
  ALREADY_REPORTED = 208, 
  IM_USED = 226, 
  // 3xx Redirection 
  MULTIPLE_CHOICES = 300, 
  MOVED_PERMANENTLY = 301, 
  FOUND = 302, 
  SEE_OTHER = 303, 
  NOT_MODIFIED = 304, 
  USE_PROXY = 305,
  TEMPORARY_REDIRECT = 307, 
  PERMANENT_REDIRECT = 308, 
  // 4xx Client errors
  BAD_REQUEST = 400, 
  UNAUTHORIZED = 401, 
  PAYMENT_REQUIRED = 402, 
  FORBIDDEN = 403, 
  NOT_FOUND = 404, 
  METHOD_NOT_ALLOWED = 405, 
  NOT_ACCEPTABLE = 406, 
  PROXY_AUTHENTICATION_REQUIRED = 407, 
  REQUEST_TIMEOUT = 408, 
  CONFLICT = 409, 
  GONE = 410, 
  LENGTH_REQUIRED = 411, 
  PRECONDITION_FAILED = 412, 
  PAYLOAD_TOO_LARGE = 413, 
  URI_TOO_LONG = 414, 
  UNSUPPORTED_MEDIA_TYPE = 415, 
  RANGE_NOT_SATISFIABLE = 416, 
  EXPECTATION_FAILED = 417, 
  IM_A_TEAPOT = 418, 
  MISDIRECTED_REQUEST = 421, 
  UNPROCESSABLE_ENTITY = 422,
  LOCKED = 423, 
  FAILED_DEPENDENCY = 424, 
  UPGRADE_REQUIRED = 426, 
  PRECONDITION_REQUIRED = 428, 
  TOO_MANY_REQUESTS = 429, 
  REQUEST_HEADER_FIELDS_TOO_LARGE = 431, 
  UNAVAILABLE_FOR_LEGAL_REASONS = 451, 
  // 5xx Server errors 
  INTERNAL_SERVER_ERROR = 500, 
  NOT_IMPLEMENTED = 501, 
  BAD_GATEWAY = 502, 
  SERVICE_UNAVAILABLE = 503, 
  GATEWAY_TIMEOUT = 504, 
  HTTP_VERSION_NOT_SUPPORTED = 505, 
  VARIANT_ALSO_NEGOTIATES = 506, 
  INSUFFICIENT_STORAGE = 507, 
  LOOP_DETECTED = 508, 
  NOT_EXTENDED = 510, 
  NETWORK_AUTHENTICATION_REQUIRED = 511, 
}

Using TypeScript for HTTP Status Codes:

TypeScript offers a powerful feature called Enums, allowing us to group related values together. In the context of HTTP status codes, Enums provide a structured and readable way to manage these codes.

export enum HttpStatusCode { 
  // 1xx Informational 
  CONTINUE = 100, 
  SWITCHING_PROTOCOLS = 101, 
  PROCESSING = 102, 
  // 2xx Success 
  OK = 200, 
  CREATED = 201, 
  ACCEPTED = 202, 
  NON_AUTHORITATIVE_INFORMATION = 203, 
  NO_CONTENT = 204, 
  RESET_CONTENT = 205, 
  PARTIAL_CONTENT = 206, 
  MULTI_STATUS = 207, 
  ALREADY_REPORTED = 208, 
  IM_USED = 226, 
  // 3xx Redirection 
  MULTIPLE_CHOICES = 300, 
  MOVED_PERMANENTLY = 301, 
  FOUND = 302, 
  SEE_OTHER = 303, 
  NOT_MODIFIED = 304, 
  USE_PROXY = 305,
  TEMPORARY_REDIRECT = 307, 
  PERMANENT_REDIRECT = 308, 
  // 4xx Client errors
  BAD_REQUEST = 400, 
  UNAUTHORIZED = 401, 
  PAYMENT_REQUIRED = 402, 
  FORBIDDEN = 403, 
  NOT_FOUND = 404, 
  METHOD_NOT_ALLOWED = 405, 
  NOT_ACCEPTABLE = 406, 
  PROXY_AUTHENTICATION_REQUIRED = 407, 
  REQUEST_TIMEOUT = 408, 
  CONFLICT = 409, 
  GONE = 410, 
  LENGTH_REQUIRED = 411, 
  PRECONDITION_FAILED = 412, 
  PAYLOAD_TOO_LARGE = 413, 
  URI_TOO_LONG = 414, 
  UNSUPPORTED_MEDIA_TYPE = 415, 
  RANGE_NOT_SATISFIABLE = 416, 
  EXPECTATION_FAILED = 417, 
  IM_A_TEAPOT = 418, 
  MISDIRECTED_REQUEST = 421, 
  UNPROCESSABLE_ENTITY = 422,
  LOCKED = 423, 
  FAILED_DEPENDENCY = 424, 
  UPGRADE_REQUIRED = 426, 
  PRECONDITION_REQUIRED = 428, 
  TOO_MANY_REQUESTS = 429, 
  REQUEST_HEADER_FIELDS_TOO_LARGE = 431, 
  UNAVAILABLE_FOR_LEGAL_REASONS = 451, 
  // 5xx Server errors 
  INTERNAL_SERVER_ERROR = 500, 
  NOT_IMPLEMENTED = 501, 
  BAD_GATEWAY = 502, 
  SERVICE_UNAVAILABLE = 503, 
  GATEWAY_TIMEOUT = 504, 
  HTTP_VERSION_NOT_SUPPORTED = 505, 
  VARIANT_ALSO_NEGOTIATES = 506, 
  INSUFFICIENT_STORAGE = 507, 
  LOOP_DETECTED = 508, 
  NOT_EXTENDED = 510, 
  NETWORK_AUTHENTICATION_REQUIRED = 511, 
}

Get in touch

Seeking a fresh opportunity or have an inquiry? Don't hesitate to reach out to me.

Get in touch

Seeking a fresh opportunity or have an inquiry? Don't hesitate to reach out to me.

Get in touch

Seeking a fresh opportunity or have an inquiry? Don't hesitate to reach out to me.

©

2024

Dylan Britz