CoolFace
Apppublic

opusdev/vector-similarity-api

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes
index.js147 linesDownload Raw Back to statuses
1/*!2 * statuses3 * Copyright(c) 2014 Jonathan Ong4 * Copyright(c) 2016 Douglas Christopher Wilson5 * MIT Licensed6 */7 8'use strict'9 10/**11 * Module dependencies.12 * @private13 */14 15var codes = require('./codes.json')16 17/**18 * Module exports.19 * @public20 */21 22module.exports = status23 24// status code to message map25status.message = codes26 27// status message (lower-case) to code map28status.code = createMessageToStatusCodeMap(codes)29 30// array of status codes31status.codes = createStatusCodeList(codes)32 33// status codes for redirects34status.redirect = {35  300: true,36  301: true,37  302: true,38  303: true,39  305: true,40  307: true,41  308: true42}43 44// status codes for empty bodies45status.empty = {46  204: true,47  205: true,48  304: true49}50 51// status codes for when you should retry the request52status.retry = {53  502: true,54  503: true,55  504: true56}57 58/**59 * Create a map of message to status code.60 * @private61 */62 63function createMessageToStatusCodeMap (codes) {64  var map = {}65 66  Object.keys(codes).forEach(function forEachCode (code) {67    var message = codes[code]68    var status = Number(code)69 70    // populate map71    map[message.toLowerCase()] = status72  })73 74  return map75}76 77/**78 * Create a list of all status codes.79 * @private80 */81 82function createStatusCodeList (codes) {83  return Object.keys(codes).map(function mapCode (code) {84    return Number(code)85  })86}87 88/**89 * Get the status code for given message.90 * @private91 */92 93function getStatusCode (message) {94  var msg = message.toLowerCase()95 96  if (!Object.prototype.hasOwnProperty.call(status.code, msg)) {97    throw new Error('invalid status message: "' + message + '"')98  }99 100  return status.code[msg]101}102 103/**104 * Get the status message for given code.105 * @private106 */107 108function getStatusMessage (code) {109  if (!Object.prototype.hasOwnProperty.call(status.message, code)) {110    throw new Error('invalid status code: ' + code)111  }112 113  return status.message[code]114}115 116/**117 * Get the status code.118 *119 * Given a number, this will throw if it is not a known status120 * code, otherwise the code will be returned. Given a string,121 * the string will be parsed for a number and return the code122 * if valid, otherwise will lookup the code assuming this is123 * the status message.124 *125 * @param {string|number} code126 * @returns {number}127 * @public128 */129 130function status (code) {131  if (typeof code === 'number') {132    return getStatusMessage(code)133  }134 135  if (typeof code !== 'string') {136    throw new TypeError('code must be a number or string')137  }138 139  // '403'140  var n = parseInt(code, 10)141  if (!isNaN(n)) {142    return getStatusMessage(n)143  }144 145  return getStatusCode(code)146}147