@edge-runtime/node-utils
Version:
A set of helpers for running edge-compliant code in Node.js environment
43 lines (33 loc) • 2.15 kB
text/typescript
import { IncomingMessage, ServerResponse, IncomingHttpHeaders } from 'http';
import * as _edge_runtime_primitives from '@edge-runtime/primitives';
import { Headers as Headers$1, ReadableStream as ReadableStream$1, Request, FetchEvent, Response } from '@edge-runtime/primitives';
import { OutgoingHttpHeaders, ServerResponse as ServerResponse$1, IncomingMessage as IncomingMessage$1 } from 'node:http';
import { Readable } from 'node:stream';
interface BuildDependencies {
Headers: typeof Headers$1;
ReadableStream: typeof ReadableStream$1;
Request: typeof Request;
Uint8Array: typeof Uint8Array;
FetchEvent: typeof FetchEvent;
}
interface RequestOptions {
defaultOrigin: string;
}
type NodeHandler = (req: IncomingMessage, res: ServerResponse) => Promise<void> | void;
type WebHandler = (req: Request, event: FetchEvent) => Promise<Response> | Response | null | undefined;
declare function buildToNodeHandler(dependencies: BuildDependencies, options: RequestOptions): (webHandler: WebHandler) => NodeHandler;
declare function toOutgoingHeaders(headers?: Headers): OutgoingHttpHeaders;
declare function mergeIntoServerResponse(headers: OutgoingHttpHeaders, serverResponse: ServerResponse$1): void;
declare const toToReadable: any;
declare function buildToFetchEvent(dependencies: BuildDependencies): (request: Request) => _edge_runtime_primitives.FetchEvent;
interface Dependencies$1 {
Headers: typeof Headers$1;
}
declare function buildToHeaders({ Headers }: Dependencies$1): (nodeHeaders: IncomingHttpHeaders) => Headers$1;
declare function buildToRequest(dependencies: BuildDependencies): (request: IncomingMessage$1, options: RequestOptions) => Request;
interface Dependencies {
ReadableStream: typeof ReadableStream;
Uint8Array: typeof Uint8Array;
}
declare function buildToReadableStream(dependencies: Dependencies): (stream: Readable) => ReadableStream;
export { type BuildDependencies, type NodeHandler, type RequestOptions, type WebHandler, buildToFetchEvent, buildToHeaders, buildToNodeHandler, buildToReadableStream, buildToRequest, mergeIntoServerResponse, toOutgoingHeaders, toToReadable };