Disable the confirmation dialog when deleting files in the VS Code explorer to streamline the development workflow and reduce friction during file management operations.
157 lines
2.6 KiB
JavaScript
157 lines
2.6 KiB
JavaScript
/*!
|
|
* body-parser
|
|
* Copyright(c) 2014-2015 Douglas Christopher Wilson
|
|
* MIT Licensed
|
|
*/
|
|
|
|
'use strict'
|
|
|
|
/**
|
|
* Module dependencies.
|
|
* @private
|
|
*/
|
|
|
|
var deprecate = require('depd')('body-parser')
|
|
|
|
/**
|
|
* Cache of loaded parsers.
|
|
* @private
|
|
*/
|
|
|
|
var parsers = Object.create(null)
|
|
|
|
/**
|
|
* @typedef Parsers
|
|
* @type {function}
|
|
* @property {function} json
|
|
* @property {function} raw
|
|
* @property {function} text
|
|
* @property {function} urlencoded
|
|
*/
|
|
|
|
/**
|
|
* Module exports.
|
|
* @type {Parsers}
|
|
*/
|
|
|
|
exports = module.exports = deprecate.function(bodyParser,
|
|
'bodyParser: use individual json/urlencoded middlewares')
|
|
|
|
/**
|
|
* JSON parser.
|
|
* @public
|
|
*/
|
|
|
|
Object.defineProperty(exports, 'json', {
|
|
configurable: true,
|
|
enumerable: true,
|
|
get: createParserGetter('json')
|
|
})
|
|
|
|
/**
|
|
* Raw parser.
|
|
* @public
|
|
*/
|
|
|
|
Object.defineProperty(exports, 'raw', {
|
|
configurable: true,
|
|
enumerable: true,
|
|
get: createParserGetter('raw')
|
|
})
|
|
|
|
/**
|
|
* Text parser.
|
|
* @public
|
|
*/
|
|
|
|
Object.defineProperty(exports, 'text', {
|
|
configurable: true,
|
|
enumerable: true,
|
|
get: createParserGetter('text')
|
|
})
|
|
|
|
/**
|
|
* URL-encoded parser.
|
|
* @public
|
|
*/
|
|
|
|
Object.defineProperty(exports, 'urlencoded', {
|
|
configurable: true,
|
|
enumerable: true,
|
|
get: createParserGetter('urlencoded')
|
|
})
|
|
|
|
/**
|
|
* Create a middleware to parse json and urlencoded bodies.
|
|
*
|
|
* @param {object} [options]
|
|
* @return {function}
|
|
* @deprecated
|
|
* @public
|
|
*/
|
|
|
|
function bodyParser (options) {
|
|
// use default type for parsers
|
|
var opts = Object.create(options || null, {
|
|
type: {
|
|
configurable: true,
|
|
enumerable: true,
|
|
value: undefined,
|
|
writable: true
|
|
}
|
|
})
|
|
|
|
var _urlencoded = exports.urlencoded(opts)
|
|
var _json = exports.json(opts)
|
|
|
|
return function bodyParser (req, res, next) {
|
|
_json(req, res, function (err) {
|
|
if (err) return next(err)
|
|
_urlencoded(req, res, next)
|
|
})
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Create a getter for loading a parser.
|
|
* @private
|
|
*/
|
|
|
|
function createParserGetter (name) {
|
|
return function get () {
|
|
return loadParser(name)
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Load a parser module.
|
|
* @private
|
|
*/
|
|
|
|
function loadParser (parserName) {
|
|
var parser = parsers[parserName]
|
|
|
|
if (parser !== undefined) {
|
|
return parser
|
|
}
|
|
|
|
// this uses a switch for static require analysis
|
|
switch (parserName) {
|
|
case 'json':
|
|
parser = require('./lib/types/json')
|
|
break
|
|
case 'raw':
|
|
parser = require('./lib/types/raw')
|
|
break
|
|
case 'text':
|
|
parser = require('./lib/types/text')
|
|
break
|
|
case 'urlencoded':
|
|
parser = require('./lib/types/urlencoded')
|
|
break
|
|
}
|
|
|
|
// store to prevent invoking require()
|
|
return (parsers[parserName] = parser)
|
|
}
|