MCPcopy Create free account
hub / github.com/expressjs/body-parser / extendedparser

Function extendedparser

lib/types/urlencoded.js:132–166  ·  view source on GitHub ↗

* Get the extended query parser. * * @param {object} options

(options)

Source from the content-addressed store, hash-verified

130 */
131
132function extendedparser (options) {
133 var parameterLimit = options.parameterLimit !== undefined
134 ? options.parameterLimit
135 : 1000
136 var parse = parser('qs')
137
138 if (isNaN(parameterLimit) || parameterLimit < 1) {
139 throw new TypeError('option parameterLimit must be a positive number')
140 }
141
142 if (isFinite(parameterLimit)) {
143 parameterLimit = parameterLimit | 0
144 }
145
146 return function queryparse (body) {
147 var paramCount = parameterCount(body, parameterLimit)
148
149 if (paramCount === undefined) {
150 debug('too many parameters')
151 throw createError(413, 'too many parameters', {
152 type: 'parameters.too.many'
153 })
154 }
155
156 var arrayLimit = Math.max(100, paramCount)
157
158 debug('parse extended urlencoding')
159 return parse(body, {
160 allowPrototypes: true,
161 arrayLimit: arrayLimit,
162 depth: Infinity,
163 parameterLimit: parameterLimit
164 })
165 }
166}
167
168/**
169 * Get the charset of a request.

Callers 1

urlencodedFunction · 0.85

Calls 3

parserFunction · 0.85
parameterCountFunction · 0.85
parseFunction · 0.70

Tested by

no test coverage detected