CoolFace
Apppublic

opusdev/vector-similarity-api

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes
index.js157 linesDownload Raw Back to body-parser
1/*!2 * body-parser3 * Copyright(c) 2014-2015 Douglas Christopher Wilson4 * MIT Licensed5 */6 7'use strict'8 9/**10 * Module dependencies.11 * @private12 */13 14var deprecate = require('depd')('body-parser')15 16/**17 * Cache of loaded parsers.18 * @private19 */20 21var parsers = Object.create(null)22 23/**24 * @typedef Parsers25 * @type {function}26 * @property {function} json27 * @property {function} raw28 * @property {function} text29 * @property {function} urlencoded30 */31 32/**33 * Module exports.34 * @type {Parsers}35 */36 37exports = module.exports = deprecate.function(bodyParser,38  'bodyParser: use individual json/urlencoded middlewares')39 40/**41 * JSON parser.42 * @public43 */44 45Object.defineProperty(exports, 'json', {46  configurable: true,47  enumerable: true,48  get: createParserGetter('json')49})50 51/**52 * Raw parser.53 * @public54 */55 56Object.defineProperty(exports, 'raw', {57  configurable: true,58  enumerable: true,59  get: createParserGetter('raw')60})61 62/**63 * Text parser.64 * @public65 */66 67Object.defineProperty(exports, 'text', {68  configurable: true,69  enumerable: true,70  get: createParserGetter('text')71})72 73/**74 * URL-encoded parser.75 * @public76 */77 78Object.defineProperty(exports, 'urlencoded', {79  configurable: true,80  enumerable: true,81  get: createParserGetter('urlencoded')82})83 84/**85 * Create a middleware to parse json and urlencoded bodies.86 *87 * @param {object} [options]88 * @return {function}89 * @deprecated90 * @public91 */92 93function bodyParser (options) {94  // use default type for parsers95  var opts = Object.create(options || null, {96    type: {97      configurable: true,98      enumerable: true,99      value: undefined,100      writable: true101    }102  })103 104  var _urlencoded = exports.urlencoded(opts)105  var _json = exports.json(opts)106 107  return function bodyParser (req, res, next) {108    _json(req, res, function (err) {109      if (err) return next(err)110      _urlencoded(req, res, next)111    })112  }113}114 115/**116 * Create a getter for loading a parser.117 * @private118 */119 120function createParserGetter (name) {121  return function get () {122    return loadParser(name)123  }124}125 126/**127 * Load a parser module.128 * @private129 */130 131function loadParser (parserName) {132  var parser = parsers[parserName]133 134  if (parser !== undefined) {135    return parser136  }137 138  // this uses a switch for static require analysis139  switch (parserName) {140    case 'json':141      parser = require('./lib/types/json')142      break143    case 'raw':144      parser = require('./lib/types/raw')145      break146    case 'text':147      parser = require('./lib/types/text')148      break149    case 'urlencoded':150      parser = require('./lib/types/urlencoded')151      break152  }153 154  // store to prevent invoking require()155  return (parsers[parserName] = parser)156}157