koa-body
Version:
A Koa body parser middleware. Supports multipart, urlencoded and JSON request bodies.
47 lines (46 loc) • 2.08 kB
TypeScript
import type { Options as CoBodyOptions } from 'co-body';
import type { File, Options as FormidableOptions, Part } from 'formidable';
import type { Context } from 'koa';
import { z } from 'zod';
export declare enum HttpMethodEnum {
POST = "POST",
GET = "GET",
PUT = "PUT",
PATCH = "PATCH",
DELETE = "DELETE",
HEAD = "HEAD"
}
declare const HttpMethod: z.ZodEnum<typeof HttpMethodEnum>;
export type HttpMethod = z.infer<typeof HttpMethod>;
export type ExtendedFormidableOptions = FormidableOptions & {
onFileBegin?: (name: string, file: File) => void;
onPart?: (part: Part, handlePart: (part: Part) => void) => void;
};
export type ScalarOrArrayFields = {
[field: string]: string | string[];
};
export type ScalarOrArrayFiles = {
[file: string]: File | File[];
};
export declare const KoaBodyMiddlewareOptionsSchema: z.ZodObject<{
patchNode: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
patchKoa: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
jsonLimit: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
formLimit: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
textLimit: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
encoding: z.ZodDefault<z.ZodOptional<z.ZodString>>;
multipart: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
urlencoded: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
text: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
json: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
jsonStrict: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
includeUnparsed: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
parsedMethods: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEnum<typeof HttpMethodEnum>>>>;
}, z.core.$strip>;
export type KoaBodyDirectOptions = z.infer<typeof KoaBodyMiddlewareOptionsSchema>;
export type KoaBodyMiddlewareOptions = KoaBodyDirectOptions & {
onError?: (err: Error, ctx: Context) => void;
formidable?: ExtendedFormidableOptions;
queryString?: CoBodyOptions['queryString'];
};
export {};