UNPKG

koa-body

Version:

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

118 lines (117 loc) 4.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.KoaBodyMiddlewareOptionsSchema = exports.HttpMethodEnum = void 0; const zod_1 = require("zod"); var HttpMethodEnum; (function (HttpMethodEnum) { HttpMethodEnum["POST"] = "POST"; HttpMethodEnum["GET"] = "GET"; HttpMethodEnum["PUT"] = "PUT"; HttpMethodEnum["PATCH"] = "PATCH"; HttpMethodEnum["DELETE"] = "DELETE"; HttpMethodEnum["HEAD"] = "HEAD"; })(HttpMethodEnum || (exports.HttpMethodEnum = HttpMethodEnum = {})); const HttpMethod = zod_1.z.enum(HttpMethodEnum); exports.KoaBodyMiddlewareOptionsSchema = zod_1.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: zod_1.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: zod_1.z.boolean().optional().default(true), /** * {String|Integer} The byte (if integer) limit of the JSON body, default 1mb */ jsonLimit: zod_1.z.union([zod_1.z.string(), zod_1.z.number()]).optional().default('1mb'), /** * {String|Integer} The byte (if integer) limit of the form body, default 56kb */ formLimit: zod_1.z.union([zod_1.z.string(), zod_1.z.number()]).optional().default('56kb'), /** * {String|Integer} The byte (if integer) limit of the text body, default 56kb */ textLimit: zod_1.z.union([zod_1.z.string(), zod_1.z.number()]).optional().default('56kb'), /** * {String} Sets encoding for incoming form fields, default utf-8 */ encoding: zod_1.z.string().optional().default('utf-8'), /** * {Boolean} Parse multipart bodies, default false */ multipart: zod_1.z.boolean().optional().default(false), /** * {Boolean} Parse urlencoded bodies, default true */ urlencoded: zod_1.z.boolean().optional().default(true), /** * {Boolean} Parse text bodies, default true */ text: zod_1.z.boolean().optional().default(true), /** * {Boolean} Parse json bodies, default true */ json: zod_1.z.boolean().optional().default(true), /** * {Boolean} Toggles co-body strict mode; if true, only parses arrays or objects, default true */ jsonStrict: zod_1.z.boolean().optional().default(true), /** * {String[]} Content-types matched as JSON bodies; passed to ctx.is(...). */ jsonTypes: zod_1.z .array(zod_1.z.string()) .optional() .default([ 'application/json', 'application/json-patch+json', 'application/vnd.api+json', 'application/csp-report', 'application/reports+json', ]), /** * {String[]} Content-types matched as urlencoded bodies; passed to ctx.is(...). */ urlencodedTypes: zod_1.z.array(zod_1.z.string()).optional().default(['urlencoded']), /** * {String[]} Content-types matched as text bodies; passed to ctx.is(...). */ textTypes: zod_1.z.array(zod_1.z.string()).optional().default(['text/*']), /** * {String[]} Content-types matched as multipart bodies; passed to ctx.is(...). */ multipartTypes: zod_1.z.array(zod_1.z.string()).optional().default(['multipart']), /** * 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: zod_1.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: zod_1.z .array(HttpMethod) .optional() .default([HttpMethodEnum.POST, HttpMethodEnum.PUT, HttpMethodEnum.PATCH]), }); //# sourceMappingURL=types.js.map