| |
| |
| |
| |
| |
| |
| |
| 'use strict' |
|
|
| |
| |
| |
| |
|
|
| var codes = require('./codes.json') |
|
|
| |
| |
| |
| |
|
|
| module.exports = status |
|
|
| |
| status.STATUS_CODES = codes |
|
|
| |
| status.codes = populateStatusesMap(status, codes) |
|
|
| |
| status.redirect = { |
| 300: true, |
| 301: true, |
| 302: true, |
| 303: true, |
| 305: true, |
| 307: true, |
| 308: true |
| } |
|
|
| |
| status.empty = { |
| 204: true, |
| 205: true, |
| 304: true |
| } |
|
|
| |
| status.retry = { |
| 502: true, |
| 503: true, |
| 504: true |
| } |
|
|
| |
| |
| |
| |
|
|
| function populateStatusesMap (statuses, codes) { |
| var arr = [] |
|
|
| Object.keys(codes).forEach(function forEachCode (code) { |
| var message = codes[code] |
| var status = Number(code) |
|
|
| |
| statuses[status] = message |
| statuses[message] = status |
| statuses[message.toLowerCase()] = status |
|
|
| |
| arr.push(status) |
| }) |
|
|
| return arr |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| function status (code) { |
| if (typeof code === 'number') { |
| if (!status[code]) throw new Error('invalid status code: ' + code) |
| return code |
| } |
|
|
| if (typeof code !== 'string') { |
| throw new TypeError('code must be a number or string') |
| } |
|
|
| |
| var n = parseInt(code, 10) |
| if (!isNaN(n)) { |
| if (!status[n]) throw new Error('invalid status code: ' + n) |
| return n |
| } |
|
|
| n = status[code.toLowerCase()] |
| if (!n) throw new Error('invalid status message: "' + code + '"') |
| return n |
| } |
|
|