UNPKG

midwinter

Version:

A next-gen middleware engine built for the WinterCG environments.

62 lines (58 loc) 1.6 kB
import { Middleware } from 'midwinter'; import { A as AnyCtx, a as AnyMeta, U as UnknownValues, b as Awaitable } from './util-CHs1TI3T.js'; import { H as HttpMethodInput } from './common-nMHVn6HU.js'; /** * Defines the CORS-related headers. * * Each option corresponds to it's own `Access-Control-X` header. */ type CorsHeaderOptions = { /** * An origin or list of origins to allow * * @default * "*" */ allowOrigin?: string | string[]; /** * A list of allowed methods. * * @default * ["GET", "HEAD", "PUT", "POST", "DELETE", "PATCH"] */ allowMethods?: HttpMethodInput[]; /** * A list of allowed header keys. * * @default * [] */ allowHeaders?: string[]; /** * Whether to allow credentials. * * @default * false */ allowCredentials?: boolean; /** * Max age. * * @default * undefined */ maxAge?: number; /** * Expose headers. * * @default * [] */ exposeHeaders?: string[]; }; type CorsHeaderFn<TCtx extends AnyCtx = AnyCtx, TMeta extends AnyMeta = AnyMeta> = (req: Request, ctx: TCtx, meta: Readonly<UnknownValues<TMeta>>) => Awaitable<CorsHeaderOptions | undefined>; type CorsOptions<TCtx extends AnyCtx = AnyCtx, TMeta extends AnyMeta = AnyMeta> = CorsHeaderFn<TCtx, TMeta> | CorsHeaderOptions; declare const init: () => { cors: <TCtx extends AnyCtx = AnyCtx, TMeta extends AnyMeta = AnyMeta>(options?: CorsOptions<TCtx, TMeta>) => Middleware<void, TCtx, void, TMeta>; }; export { init };