Spaces:
Configuration error
Configuration error
| /** | |
| * Module dependencies. | |
| */ | |
| var bytes = require('bytes') | |
| var contentType = require('content-type') | |
| var typeis = require('type-is') | |
| /** | |
| * Module exports. | |
| */ | |
| module.exports = { | |
| getCharset, | |
| normalizeOptions | |
| } | |
| /** | |
| * Get the charset of a request. | |
| * | |
| * @param {object} req | |
| * @api private | |
| */ | |
| function getCharset (req) { | |
| try { | |
| return (contentType.parse(req).parameters.charset || '').toLowerCase() | |
| } catch { | |
| return undefined | |
| } | |
| } | |
| /** | |
| * Get the simple type checker. | |
| * | |
| * @param {string | string[]} type | |
| * @return {function} | |
| */ | |
| function typeChecker (type) { | |
| return function checkType (req) { | |
| return Boolean(typeis(req, type)) | |
| } | |
| } | |
| /** | |
| * Normalizes the common options for all parsers. | |
| * | |
| * @param {object} options options to normalize | |
| * @param {string | string[] | function} defaultType default content type(s) or a function to determine it | |
| * @returns {object} | |
| */ | |
| function normalizeOptions (options, defaultType) { | |
| if (!defaultType) { | |
| // Parsers must define a default content type | |
| throw new TypeError('defaultType must be provided') | |
| } | |
| var inflate = options?.inflate !== false | |
| var limit = typeof options?.limit !== 'number' | |
| ? bytes.parse(options?.limit || '100kb') | |
| : options?.limit | |
| var type = options?.type || defaultType | |
| var verify = options?.verify || false | |
| if (verify !== false && typeof verify !== 'function') { | |
| throw new TypeError('option verify must be function') | |
| } | |
| // create the appropriate type checking function | |
| var shouldParse = typeof type !== 'function' | |
| ? typeChecker(type) | |
| : type | |
| return { | |
| inflate, | |
| limit, | |
| verify, | |
| shouldParse | |
| } | |
| } | |