/** * Qs module config */ type QueryStringConfig = { depth?: number allowPrototypes?: boolean plainObjects?: boolean parameterLimit?: number arrayLimit?: number ignoreQueryPrefix?: boolean delimiter?: RegExp | string allowDots?: boolean charset?: 'utf-8' | 'iso-8859-1' | undefined charsetSentinel?: boolean interpretNumericEntities?: boolean parseArrays?: boolean comma?: boolean } /** * Base config used by all types */ type BodyParserBaseConfig = { encoding: string limit: string | number types: string[] } /** * Body parser config for parsing JSON requests */ export type BodyParserJSONConfig = BodyParserBaseConfig & { strict: boolean convertEmptyStringsToNull: boolean } /** * Parser config for parsing form data */ export type BodyParserFormConfig = BodyParserBaseConfig & { queryString: QueryStringConfig convertEmptyStringsToNull: boolean } /** * Parser config for parsing raw body (untouched) */ export type BodyParserRawConfig = BodyParserBaseConfig /** * Body parser config for all supported form types */ export type BodyParserConfig = { allowedMethods: string[] json: BodyParserJSONConfig form: BodyParserFormConfig raw: BodyParserRawConfig multipart: BodyParserMultipartConfig }