UNPKG

midwinter

Version:

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

26 lines (23 loc) 1.46 kB
import { A as AnyMiddleware, M as Middleware, b as MergeCtx, e as MergeMeta, c as RequestHandler, d as EndMiddleware } from './types-DRjmZIz8.mjs'; import { A as AnyCtx, a as AnyMeta } from './util-CHs1TI3T.mjs'; /** * A simple way to construct complex middleware pipelines with type-safety * and introspectability. */ declare class Midwinter<TCtx extends AnyCtx = {}, TMeta extends AnyMeta = {}, TCtxInitial extends AnyCtx = TCtx> { private meta; private middlewares; constructor(meta?: TMeta, middlewares?: AnyMiddleware[]); /** * Registers a middleware with the current middleware stack. * * @param middleware * @returns A new midwinter instance with any context or meta changes applied, and the new * middleware registered. */ use<TCtxUpdate extends AnyCtx | void = void, TMetaUpdate extends AnyMeta | void = void>(middleware: Middleware<TCtxUpdate, TCtx, TMetaUpdate, TMeta>): Midwinter<MergeCtx<TCtxUpdate, TCtx>, MergeMeta<TMetaUpdate, TMeta>, TCtxInitial>; use<TNewCtx extends AnyCtx = AnyCtx, TNewMeta extends AnyMeta = AnyMeta>(midwinter: Midwinter<TNewCtx, TNewMeta, TCtx>): Midwinter<MergeCtx<TNewCtx, TCtx>, MergeMeta<TNewMeta, TMeta>, TCtxInitial>; end(): RequestHandler<TMeta, Response | undefined>; end<TMetaUpdate extends AnyMeta | void = void>(middleware: EndMiddleware<TCtx, TMetaUpdate, TMeta>): RequestHandler<MergeMeta<TMetaUpdate, TMeta>>; } export { Midwinter as M };