UNPKG

koa-body

Version:

A Koa body parser middleware. Supports multipart, urlencoded and JSON request bodies.

90 lines (89 loc) 3.33 kB
import { z } from 'zod'; export var HttpMethodEnum; (function (HttpMethodEnum) { HttpMethodEnum["POST"] = "POST"; HttpMethodEnum["GET"] = "GET"; HttpMethodEnum["PUT"] = "PUT"; HttpMethodEnum["PATCH"] = "PATCH"; HttpMethodEnum["DELETE"] = "DELETE"; HttpMethodEnum["HEAD"] = "HEAD"; })(HttpMethodEnum || (HttpMethodEnum = {})); const HttpMethod = z.enum(HttpMethodEnum); export const KoaBodyMiddlewareOptionsSchema = z.object({ /** * {Boolean} Patch request body to Node's ctx.req, default false * * Note: You can patch request body to Node or Koa in same time if you want. */ patchNode: z.boolean().optional().default(false), /** * {Boolean} Patch request body to Koa's ctx.request, default true * * Note: You can patch request body to Node or Koa in same time if you want. */ patchKoa: z.boolean().optional().default(true), /** * {String|Integer} The byte (if integer) limit of the JSON body, default 1mb */ jsonLimit: z.union([z.string(), z.number()]).optional().default('1mb'), /** * {String|Integer} The byte (if integer) limit of the form body, default 56kb */ formLimit: z.union([z.string(), z.number()]).optional().default('56kb'), /** * {String|Integer} The byte (if integer) limit of the text body, default 56kb */ textLimit: z.union([z.string(), z.number()]).optional().default('56kb'), /** * {String} Sets encoding for incoming form fields, default utf-8 */ encoding: z.string().optional().default('utf-8'), /** * {Boolean} Parse multipart bodies, default false */ multipart: z.boolean().optional().default(false), /** * {Boolean} Parse urlencoded bodies, default true */ urlencoded: z.boolean().optional().default(true), /** * {Boolean} Parse text bodies, default true */ text: z.boolean().optional().default(true), /** * {Boolean} Parse json bodies, default true */ json: z.boolean().optional().default(true), /** * {Boolean} Toggles co-body strict mode; if true, only parses arrays or objects, default true */ jsonStrict: z.boolean().optional().default(true), /** * Toggles co-body returnRawBody mode; if true, * the raw body will be available using a Symbol for 'unparsedBody'. * * ``` // Either: const unparsed = require('koa-body/unparsed.js'); const unparsed = Symbol.for('unparsedBody'); // Then later, to access: ctx.request.body[unparsed] ``` * default false */ includeUnparsed: z.boolean().optional().default(false), /** * {String[]} What HTTP methods to enable body parsing for; should be used in preference to strict mode. * * GET, HEAD, and DELETE requests have no defined semantics for the request body, * but this doesn't mean they may not be valid in certain use cases. * koa-body will only parse HTTP request bodies for POST, PUT, and PATCH by default * * see http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-19#section-6.3 */ parsedMethods: z .array(HttpMethod) .optional() .default([HttpMethodEnum.POST, HttpMethodEnum.PUT, HttpMethodEnum.PATCH]), }); //# sourceMappingURL=types.js.map