midwinter
Version:
A next-gen middleware engine built for the WinterCG environments.
62 lines (58 loc) • 1.6 kB
TypeScript
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 };