Sha256: 98d7aa5275dcbf8d2e6a23e0db3837b9f326b3ae7249ec01e0d13dd81d25aeb1

Contents?: true

Size: 1.11 KB

Versions: 35

Compression:

Stored size: 1.11 KB

Contents

var codes = require('./codes.json');

module.exports = status;

// [Integer...]
status.codes = Object.keys(codes).map(function (code) {
  code = ~~code;
  var msg = codes[code];
  status[code] = msg;
  status[msg] = status[msg.toLowerCase()] = code;
  return code;
});

// status codes for redirects
status.redirect = {
  300: true,
  301: true,
  302: true,
  303: true,
  305: true,
  307: true,
  308: true,
};

// status codes for empty bodies
status.empty = {
  204: true,
  205: true,
  304: true,
};

// status codes for when you should retry the request
status.retry = {
  502: true,
  503: true,
  504: true,
};

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');
  }

  // '403'
  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;
}

Version data entries

35 entries across 32 versions & 5 rubygems

Version Path
blackboard-3.1.9 lib/site_template/node_modules/statuses/index.js
webpack_rails-2.0.1 lib/webpack_rails/node_modules/express/node_modules/send/node_modules/statuses/index.js
webpack_rails-2.0.0 lib/webpack_rails/node_modules/express/node_modules/send/node_modules/statuses/index.js
webpack_rails-1.3.1 lib/webpack_rails/node_modules/express/node_modules/send/node_modules/statuses/index.js
webpack_rails-1.3.0 lib/webpack_rails/node_modules/express/node_modules/send/node_modules/statuses/index.js
webpack_rails-1.2.2 lib/webpack_rails/node_modules/express/node_modules/send/node_modules/statuses/index.js
webpack_rails-1.2.1 lib/webpack_rails/node_modules/express/node_modules/send/node_modules/statuses/index.js
webpack_rails-1.2.0 lib/webpack_rails/node_modules/express/node_modules/send/node_modules/statuses/index.js
hooch-0.4.2 jasmine/node_modules/karma/node_modules/connect/node_modules/csurf/node_modules/http-errors/node_modules/statuses/index.js
webpack_rails-1.1.1 lib/webpack_rails/node_modules/express/node_modules/send/node_modules/statuses/index.js
webpack_rails-1.1.0 lib/webpack_rails/node_modules/express/node_modules/send/node_modules/statuses/index.js
webpack_rails-1.0.1 lib/webpack_rails/node_modules/express/node_modules/send/node_modules/statuses/index.js
webpack_rails-1.0.0 lib/webpack_rails/node_modules/express/node_modules/send/node_modules/statuses/index.js
hooch-0.4.1 jasmine/node_modules/karma/node_modules/connect/node_modules/csurf/node_modules/http-errors/node_modules/statuses/index.js
hooch-0.4.0 jasmine/node_modules/karma/node_modules/connect/node_modules/csurf/node_modules/http-errors/node_modules/statuses/index.js
gulp_assets-1.0.0.pre.5 template/node_modules/webpack-dev-server/node_modules/express/node_modules/send/node_modules/statuses/index.js
gulp_assets-1.0.0.pre.5 template/node_modules/webpack-dev-server/node_modules/serve-index/node_modules/http-errors/node_modules/statuses/index.js
gulp_assets-1.0.0.pre.4 template/node_modules/webpack-dev-server/node_modules/serve-index/node_modules/http-errors/node_modules/statuses/index.js
gulp_assets-1.0.0.pre.4 template/node_modules/webpack-dev-server/node_modules/express/node_modules/send/node_modules/statuses/index.js
gulp_assets-1.0.0.pre.3 template/node_modules/webpack-dev-server/node_modules/express/node_modules/send/node_modules/statuses/index.js