npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

http-code-util

v0.2.3

Published

Constants enumerating the HTTP status codes.

Downloads

17

Readme

http-code-util

Constants enumerating the HTTP status codes.

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.

Installation

npm install http-code-util --save

Usage (express 4.x)

import {
  ReasonPhrases,
  StatusCodes,
  getReasonPhrase,
  getStatusCode,
} from 'http-code-util';

response.status(StatusCodes.OK).send(ReasonPhrases.OK);

response.status(StatusCodes.INTERNAL_SERVER_ERROR).send({
  error: getReasonPhrase(StatusCodes.INTERNAL_SERVER_ERROR),
});

response.status(getStatusCode('Internal Server Error')).send({
  error: 'Internal Server Error',
});

Codes

|Code|Constant|Reason Phrase|Explenation| |---|---|---|---| |100|CONTINUE|Continue|The server has received the request headers, and the client should proceed to send the request body.| |101|SWITCHING_PROTOCOLS|Switching Protocols|The requester has asked the server to switch protocols, and the server has agreed to do so.| |102|PROCESSING|Processing|(WebDAV) The server has received and is processing the request, but no response is available yet.| |103|EARLY_HINTS|Early Hints|Used to return some response headers before final HTTP message.| |200|OK|OK|The request has succeeded.| |201|CREATED|Created|The request has been fulfilled, resulting in the creation of a new resource.| |202|ACCEPTED|Accepted|The request has been accepted for processing, but the processing has not been completed.| |203|NON_AUTHORITATIVE_INFORMATION|Non-Authoritative Information|The request was successful but the enclosed payload has been modified from that of the origin server's 200 (OK) response.| |204|NO_CONTENT|No Content|The server successfully processed the request, and is not returning any content.| |205|RESET_CONTENT|Reset Content|The server successfully processed the request, asks that the requester reset its document view, and is not returning any content.| |206|PARTIAL_CONTENT|Partial Content|The server is delivering only part of the resource (byte serving) due to a range header sent by the client.| |207|MULTI_STATUS|Multi-Status|(WebDAV) The message body that follows is by default an XML message and can contain a number of separate response codes, depending on how many sub-requests were made.| |208|ALREADY_REPORTED|Already Reported|(WebDAV) The members of a DAV binding have already been enumerated in a previous reply to this request, and are not being included again.| |226|IM_USED|IM Used|The server has fulfilled a request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.| |300|MULTIPLE_CHOICES|Multiple Choices|The request has more than one possible response. The user-agent or user should choose one of them.| |301|MOVED_PERMANENTLY|Moved Permanently|The URL of the requested resource has been changed permanently. The new URL is given in the response.| |302|FOUND|Found|The URL of the requested resource has been changed temporarily. The new URL is given in the response.| |303|SEE_OTHER|See Other|The response to the request can be found under another URL using a GET method.| |304|NOT_MODIFIED|Not Modified|Indicates that the resource has not been modified since the version specified by the request headers.| |305|USE_PROXY|Use Proxy|The requested resource is only available through a proxy, the address for which is provided in the response.| |306|SWITCH_PROXY|Switch Proxy|No longer used. Originally meant "Subsequent requests should use the specified proxy."| |307|TEMPORARY_REDIRECT|Temporary Redirect|The URL of the requested resource has been changed temporarily. The new URL is given in the response. The request method should not be changed when reissuing the original request.| |308|PERMANENT_REDIRECT|Permanent Redirect|The URL of the requested resource has been changed permanently. The new URL is given in the response. The request method should not be changed when reissuing the original request.| |400|BAD_REQUEST|Bad Request|The server could not understand the request due to invalid syntax.| |401|UNAUTHORIZED|Unauthorized|The client must authenticate itself to get the requested response.| |402|PAYMENT_REQUIRED|Payment Required|This response code is reserved for future use.| |403|FORBIDDEN|Forbidden|The client does not have access rights to the content.| |404|NOT_FOUND|Not Found|The server can not find the requested resource.| |405|METHOD_NOT_ALLOWED|Method Not Allowed|The request method is known by the server but has been disabled and cannot be used.| |406|NOT_ACCEPTABLE|Not Acceptable|The server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers.| |407|PROXY_AUTHENTICATION_REQUIRED|Proxy Authentication Required|The client must first authenticate itself with the proxy.| |408|REQUEST_TIMEOUT|Request Timeout|The server would like to shut down this unused connection.| |409|CONFLICT|Conflict|The request could not be completed due to a conflict with the current state of the target resource.| |410|GONE|Gone|The content has been permanently deleted from server, with no forwarding address.| |411|LENGTH_REQUIRED|Length Required|The server refuses to accept the request without a defined Content-Length header.| |412|PRECONDITION_FAILED|Precondition Failed|The client has indicated preconditions in its headers which the server does not meet.| |413|PAYLOAD_TOO_LARGE|Payload Too Large|Request entity is larger than limits defined by server.| |414|URI_TOO_LONG|URI Too Long|The URI requested by the client is longer than the server is willing to interpret.| |415|UNSUPPORTED_MEDIA_TYPE|Unsupported Media Type|The media format of the requested data is not supported by the server.| |416|RANGE_NOT_SATISFIABLE|Range Not Satisfiable|The range specified by the Range header field in the request can't be fulfilled.| |417|EXPECTATION_FAILED|Expectation Failed|The expectation indicated by the Expect request header field can't be met by the server.| |418|IM_A_TEAPOT|I'm a teapot|Any attempt to brew coffee with a teapot should result in the error code "418 I'm a teapot".| |421|MISDIRECTED_REQUEST|Misdirected Request|The request was directed at a server that is not able to produce a response.| |422|UNPROCESSABLE_ENTITY|Unprocessable Entity|(WebDAV) The request was well-formed but was unable to be followed due to semantic errors.| |423|LOCKED|Locked|(WebDAV) The resource that is being accessed is locked.| |424|FAILED_DEPENDENCY|Failed Dependency|(WebDAV) The request failed due to failure of a previous request.| |425|TOO_EARLY|Too Early|Indicates that the server is unwilling to risk processing a request that might be replayed.| |426|UPGRADE_REQUIRED|Upgrade Required|The client should switch to a different protocol such as TLS/1.0.| |428|PRECONDITION_REQUIRED|Precondition Required|The origin server requires the request to be conditional.| |429|TOO_MANY_REQUESTS|Too Many Requests|The user has sent too many requests in a given amount of time ("rate limiting").| |431|REQUEST_HEADER_FIELDS_TOO_LARGE|Request Header Fields Too Large|The server is unwilling to process the request because its header fields are too large.| |444|CONNECTION_CLOSED_WITHOUT_RESPONSE|Connection Closed Without Response|The server closed the connection without sending any response to the client.| |449|RETRY_WITH|Retry With|The server cannot honour the request because the user has not provided the required information.| |450|BLOCKED_BY_WINDOWS_PARENTAL_CONTROLS|Blocked by Windows Parental Controls|The request was blocked by Windows Parental Controls.| |451|UNAVAILABLE_FOR_LEGAL_REASONS|Unavailable For Legal Reasons|The user requests an illegal resource, such as a web page censored by a government.| |499|CLIENT_CLOSED_REQUEST|Client Closed Request|The client has closed the request before the server could send a response.| |500|INTERNAL_SERVER_ERROR|Internal Server Error|The server has encountered a situation it doesn't know how to handle.| |501|NOT_IMPLEMENTED|Not Implemented|The request method is not supported by the server and cannot be handled.| |502|BAD_GATEWAY|Bad Gateway|The server, while acting as a gateway or proxy, received an invalid response from the upstream server.| |503|SERVICE_UNAVAILABLE|Service Unavailable|The server is not ready to handle the request.| |504|GATEWAY_TIMEOUT|Gateway Timeout|The server, while acting as a gateway or proxy, did not get a response in time from the upstream server.| |505|HTTP_VERSION_NOT_SUPPORTED|HTTP Version Not Supported|The HTTP version used in the request is not supported by the server.| |506|VARIANT_ALSO_NEGOTIATES|Variant Also Negotiates|The server has an internal configuration error: the chosen variant resource is configured to engage in transparent content negotiation itself, and is therefore not a proper end point in the negotiation process.| |507|INSUFFICIENT_STORAGE|Insufficient Storage|(WebDAV) The server is unable to store the representation needed to complete the request.| |508|LOOP_DETECTED|Loop Detected|(WebDAV) The server detected an infinite loop while processing the request.| |510|NOT_EXTENDED|Not Extended|Further extensions to the request are required for the server to fulfill it.| |511|NETWORK_AUTHENTICATION_REQUIRED|Network Authentication Required|The client needs to authenticate to gain network access.| |599|NETWORK_CONNECT_TIMEOUT_ERROR|Network Connect Timeout Error|The network connection has timed out.|

Additional Usage Examples

All constants can also be accessed directly

import { HTTP_200_CODE, HTTP_200_NAME } from 'http-code-util';

response.status(HTTP_200_CODE).send(HTTP_200_NAME);

Helper Functions

| Function | Description | Affects bundle size | | -------------------------------- | ---------------------------------------------------------------------------------------------------------- | :-----------------: | | getStatusCode(phrase) | Returns the corresponding HTTP status code, or undefined if not found. | 🟡 | | getReasonphrase(code) | Returns the corresponding HTTP status phrase, or undefined if not found. | 🟡 | | getDescription(code) | Returns the corresponding HTTP status description, or undefined if not found. | 🔴 | | getStatusInfo(code) | Returns an object o the corresponding HTTP status code, phrase and description, or undefined if not found. | 🔴 | | isSuccess(code) | Returns true if the HTTP code is a success code (between 200 and 299). | 🟢 | | isRedirect(code) | Returns true if the HTTP code is a redirect code (between 300 and 399). | 🟢 | | isInformational(code) | Returns true if the HTTP code is an informational code (between 100 and 199). | 🟢 | | isClientError(code) | Returns true if the HTTP code is a client error code (between 400 and 499). | 🟢 | | isServerError(code) | Returns true if the HTTP code is a server error code (between 500 and 599). | 🟢 | | isOk(code) | Returns true if the HTTP code is 200 (OK). | 🟢 | | isError(code) | Returns true if the HTTP code is a client or server error code. | 🟢 | | hasContent(code) | Returns true if the HTTP code has content (not 204, 205, 304, or an error). | 🟢 | | isInformationalOrSuccess(code) | Returns true if the HTTP code is informational or a success code. | 🟢 | | isValid(code) | Returns true if the HTTP code is a known HTTP code code. | 🟡 |

Treeshaking and bundlesize legend

| Color | Treeshaking impact | Impact on bundle size | | :---: | --------------------------------------------------------------------- | --------------------- | | 🟢 | No or only specific code constants will get bundled. | almost none | | 🟡 | All status codes and status phrases get bundled. | small | | 🔴 | All status codes, status phrases and status descriptions get bundled. | big |

Usage Examples

import {
  isSuccess,
  isRedirect,
  isInformational,
  isClientError,
  isServerError,
  isOk,
  isError,
  hasContent,
  isInformationalOrSuccess,
  isValid,
} from 'http-code-util';

console.log(isSuccess(200)); // true
console.log(isRedirect(302)); // true
console.log(isInformational(100)); // true
console.log(isClientError(404)); // true
console.log(isServerError(500)); // true
console.log(isOk(200)); // true
console.log(isError(404)); // true
console.log(hasContent(200)); // true
console.log(isInformationalOrSuccess(200)); // true
console.log(isValid(200)); // true

License

This project is licensed under the MIT License - see the LICENSE file for details.