# http-status-codes

Constants enumerating the HTTP status codes. Based on the [Java Apache HttpStatus API](http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/HttpStatus.html).

All status codes defined in RFC1945 (HTTP/1.0), RFC2616 (HTTP/1.1), RFC2518 (WebDAV), RFC6585 (Additional HTTP Status Codes), and RFC7538 (Permanent Redirect) are supported.

Completely library agnostic. No dependencies.

## Installation

```console
npm install http-status-codes --save
```

## Usage (express 4.x)

```javascript
var HttpStatus = require('http-status-codes');

response
	.status(HttpStatus.OK)
	.send('ok');

response
	.status(HttpStatus.INTERNAL_SERVER_ERROR)
	.send({
		error: HttpStatus.getStatusText(HttpStatus.INTERNAL_SERVER_ERROR)
	});
```

## Codes

Constant                            | Code  | Status Text
------------------------------------|-------|-----------------------------------
ACCEPTED                            | 202   | Accepted
BAD_GATEWAY                         | 502   | Bad Gateway
BAD_REQUEST                         | 400   | Bad Request
CONFLICT                            | 409   | Conflict
CONTINUE                            | 100   | Continue
CREATED                             | 201   | Created
EXPECTATION_FAILED                  | 417   | Expectation Failed
FAILED_DEPENDENCY                   | 424   | Failed Dependency
FORBIDDEN                           | 403   | Forbidden
GATEWAY_TIMEOUT                     | 504   | Gateway Timeout
GONE                                | 410   | Gone
HTTP_VERSION_NOT_SUPPORTED          | 505   | HTTP Version Not Supported
IM_A_TEAPOT                         | 418   | I'm a teapot
INSUFFICIENT_SPACE_ON_RESOURCE      | 419   | Insufficient Space on Resource
INSUFFICIENT_STORAGE                | 507   | Insufficient Storage
INTERNAL_SERVER_ERROR               | 500   | Server Error
LENGTH_REQUIRED                     | 411   | Length Required
LOCKED                              | 423   | Locked
METHOD_FAILURE                      | 420   | Method Failure
METHOD_NOT_ALLOWED                  | 405   | Method Not Allowed
MOVED_PERMANENTLY                   | 301   | Moved Permanently
MOVED_TEMPORARILY                   | 302   | Moved Temporarily
MULTI_STATUS                        | 207   | Multi-Status
MULTIPLE_CHOICES                    | 300   | Multiple Choices
NETWORK_AUTHENTICATION_REQUIRED     | 511   | Network Authentication Required
NO_CONTENT                          | 204   | No Content
NON_AUTHORITATIVE_INFORMATION       | 203   | Non Authoritative Information
NOT_ACCEPTABLE                      | 406   | Not Acceptable
NOT_FOUND                           | 404   | Not Found
NOT_IMPLEMENTED                     | 501   | Not Implemented
NOT_MODIFIED                        | 304   | Not Modified
OK                                  | 200   | OK
PARTIAL_CONTENT                     | 206   | Partial Content
PAYMENT_REQUIRED                    | 402   | Payment Required
PERMANENT_REDIRECT                  | 308   | Permanent Redirect
PRECONDITION_FAILED                 | 412   | Precondition Failed
PRECONDITION_REQUIRED               | 428   | Precondition Required
PROCESSING                          | 102   | Processing
PROXY_AUTHENTICATION_REQUIRED       | 407   | Proxy Authentication Required
REQUEST_HEADER_FIELDS_TOO_LARGE     | 431   | Request Header Fields Too Large
REQUEST_TIMEOUT                     | 408   | Request Timeout
REQUEST_TOO_LONG                    | 413   | Request Entity Too Large
REQUEST_URI_TOO_LONG                | 414   | Request-URI Too Long
REQUESTED_RANGE_NOT_SATISFIABLE     | 416   | Requested Range Not Satisfiable
RESET_CONTENT                       | 205   | Reset Content
SEE_OTHER                           | 303   | See Other
SERVICE_UNAVAILABLE                 | 503   | Service Unavailable
SWITCHING_PROTOCOLS                 | 101   | Switching Protocols
TEMPORARY_REDIRECT                  | 307   | Temporary Redirect
TOO_MANY_REQUESTS                   | 429   | Too Many Requests
UNAUTHORIZED                        | 401   | Unauthorized
UNPROCESSABLE_ENTITY                | 422   | Unprocessable Entity
UNSUPPORTED_MEDIA_TYPE              | 415   | Unsupported Media Type
USE_PROXY                           | 305   | Use Proxy

## TypeScript

There is an included definition file that adds rules for use, comments, and links to official documentation.

### Usage

Option 1: Full import of package

```typescript
import * as HttpStatus from 'http-status-codes'

response
	.status(HttpStatus.OK)
	.send('ok')

response
	.status(HttpStatus.INTERNAL_SERVER_ERROR)
	.send({
		error: HttpStatus.getStatusText(HttpStatus.INTERNAL_SERVER_ERROR)
	})
```

Option 2: Selective import

```typescript
import { OK, getStatusText } from 'http-status-codes'

response
	.status(OK)
	.send(getStatusText(OK))
```
