@goa/statuses
v1.0.1
Published
HTTP status utility.
Downloads
13
Readme
@goa/statuses
@goa/statuses
is HTTP status utility.
yarn add @goa/statuses
Table Of Contents
API
The package is available by importing its default function and additional objects populated with status codes:
import status, { STATUS_CODES } from '@goa/statuses'
status( code: number|string,
): number
Get the status code.
Given a number, this will throw if it is not a known status code, otherwise the code will be returned. Given a string, the string will be parsed for a number and return the code if valid, otherwise will lookup the code assuming this is the status message.
- code* (number | string): The code or phrase.
import status from '@goa/statuses'
console.log(status(403)) // => 403
console.log(status('403')) // => 403
console.log(status('forbidden')) // => 403
console.log(status('Forbidden')) // => 403
try {
status(5000) // throws, as it's not supported by Node.JS
} catch (err) {
console.log(err.message)
}
403
403
403
403
invalid status code: 5000
Codes Objects
Additional exports are populated with codes directly.
!Object<string, string> STATUS_CODES
Returns an object which maps status codes to status messages, in the same format as the Node.JS http
module.
import { STATUS_CODES } from '@goa/statuses'
console.log(STATUS_CODES)
{ '100': 'Continue',
'101': 'Switching Protocols',
'102': 'Processing',
'103': 'Early Hints',
'200': 'OK',
'201': 'Created',
'202': 'Accepted',
'203': 'Non-Authoritative Information',
'204': 'No Content',
'205': 'Reset Content',
'206': 'Partial Content',
'207': 'Multi-Status',
'208': 'Already Reported',
'226': 'IM Used',
'300': 'Multiple Choices',
'301': 'Moved Permanently',
'302': 'Found',
'303': 'See Other',
'304': 'Not Modified',
'305': 'Use Proxy',
'306': '(Unused)',
'307': 'Temporary Redirect',
'308': 'Permanent Redirect',
'400': 'Bad Request',
'401': 'Unauthorized',
'402': 'Payment Required',
'403': 'Forbidden',
'404': 'Not Found',
'405': 'Method Not Allowed',
'406': 'Not Acceptable',
'407': 'Proxy Authentication Required',
'408': 'Request Timeout',
'409': 'Conflict',
'410': 'Gone',
'411': 'Length Required',
'412': 'Precondition Failed',
'413': 'Payload Too Large',
'414': 'URI Too Long',
'415': 'Unsupported Media Type',
'416': 'Range Not Satisfiable',
'417': 'Expectation Failed',
'418': 'I\'m a teapot',
'421': 'Misdirected Request',
'422': 'Unprocessable Entity',
'423': 'Locked',
'424': 'Failed Dependency',
'425': 'Unordered Collection',
'426': 'Upgrade Required',
'428': 'Precondition Required',
'429': 'Too Many Requests',
'431': 'Request Header Fields Too Large',
'451': 'Unavailable For Legal Reasons',
'500': 'Internal Server Error',
'501': 'Not Implemented',
'502': 'Bad Gateway',
'503': 'Service Unavailable',
'504': 'Gateway Timeout',
'505': 'HTTP Version Not Supported',
'506': 'Variant Also Negotiates',
'507': 'Insufficient Storage',
'508': 'Loop Detected',
'509': 'Bandwidth Limit Exceeded',
'510': 'Not Extended',
'511': 'Network Authentication Required' }
!Array<number> codes
Returns an array of all the status codes as numbers.
import { codes } from '@goa/statuses'
console.log(codes)
[ 100,
101,
102,
103,
200,
201,
202,
203,
204,
205,
206,
207,
208,
226,
300,
301,
302,
303,
304,
305,
306,
307,
308,
400,
401,
402,
403,
404,
405,
406,
407,
408,
409,
410,
411,
412,
413,
414,
415,
416,
417,
418,
421,
422,
423,
424,
425,
426,
428,
429,
431,
451,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511 ]
status[code]
Map of code
to status message
. Returns undefined
for invalid codes.
import status from '@goa/statuses'
console.log(status[404])
Not Found
status[message]
Map of status message
to code
. msg
can either be title-cased or lower-cased. Returns undefined
for invalid status messages.
import status from '@goa/statuses'
console.log(status['not found'])
console.log(status['Not Found'])
404
404
redirect[code]
Returns true
if a status code is a valid redirect status.
import { redirect } from '@goa/statuses'
console.log(redirect[200])
console.log(redirect[301])
undefined
true
empty[code]
Returns true
if a status code expects an empty body.
import { empty } from '@goa/statuses'
console.log(empty[200])
console.log(empty[204])
console.log(empty[304])
undefined
true
true
retry[code]
Returns true
if you should retry the rest.
import { retry } from '@goa/statuses'
console.log(retry[501])
console.log(retry[503])
undefined
true
Copyright & License
GNU Affero General Public License v3.0
Original work by Jonathan Ong and Douglas Christopher Wilson under MIT license found in COPYING.