UNPKG

@universal-middleware/cloudflare

Version:

Cloudflare Pages adapter for universal middlewares

31 lines (27 loc) 2.15 kB
import { ExportedHandlerFetchHandler, PagesFunction, ExecutionContext, EventContext } from '@cloudflare/workers-types'; import { UniversalFn, UniversalHandler, contextSymbol, UniversalMiddleware, Get, RuntimeAdapter, EnhancedMiddleware } from '@universal-middleware/core'; type CloudflareHandler<In extends Universal.Context> = { fetch: UniversalFn<UniversalHandler<In>, ExportedHandlerFetchHandler<{ [contextSymbol]: In; }>>; }; type CloudflarePagesFunction<In extends Universal.Context, Out extends Universal.Context> = UniversalFn<UniversalMiddleware<In, Out>, PagesFunction<{ [contextSymbol]: In; }>>; /** * Creates a request handler for Cloudflare Worker. Should be used as dist/_worker.js */ declare function createHandler<T extends unknown[], InContext extends Universal.Context>(handlerFactory: Get<T, UniversalHandler<InContext>>): Get<T, CloudflareHandler<InContext>>; /** * Creates a function handler for Cloudflare Pages */ declare function createPagesFunction<T extends unknown[], InContext extends Universal.Context, OutContext extends Universal.Context>(middlewareFactory: Get<T, UniversalHandler<InContext>>): Get<T, CloudflarePagesFunction<InContext, OutContext>>; declare function createPagesFunction<T extends unknown[], InContext extends Universal.Context, OutContext extends Universal.Context>(middlewareFactory: Get<T, UniversalMiddleware<InContext, OutContext>>): Get<T, CloudflarePagesFunction<InContext, OutContext>>; declare function getContext<Context extends Universal.Context = Universal.Context>(env: { [contextSymbol]: Context; }): Context; declare function getRuntime(env: unknown, ctx: ExecutionContext): RuntimeAdapter; declare function getRuntime(context: EventContext<unknown, string, unknown>): RuntimeAdapter; type EnhancedMiddlewareCloudflare = EnhancedMiddleware | EnhancedMiddleware<Universal.Context, Universal.Context, "cloudflare-worker">; declare function apply(middlewares: EnhancedMiddlewareCloudflare[]): CloudflareHandler<Universal.Context>; export { type CloudflareHandler, type CloudflarePagesFunction, apply, createHandler, createPagesFunction, getContext, getRuntime };