@universal-middleware/cloudflare
Version:
Cloudflare Pages adapter for universal middlewares
31 lines (27 loc) • 2.04 kB
TypeScript
import { ExportedHandlerFetchHandler, PagesFunction, ExecutionContext, EventContext } from '@cloudflare/workers-types';
import { Get, UniversalHandler, UniversalFn, UniversalMiddleware, RuntimeAdapter, EnhancedMiddleware } from '@universal-middleware/core';
declare const contextSymbol: unique symbol;
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;
declare function apply(middlewares: EnhancedMiddleware[]): CloudflareHandler<Universal.Context>;
export { type CloudflareHandler, type CloudflarePagesFunction, apply, createHandler, createPagesFunction, getContext, getRuntime };