@whatwg-node/server 0.10.0-alpha-20240726141316-c6ce93b3598457ebe73b3b725986723af8f5e609 → 0.10.0-alpha-20241123133536-975c9068dde45574fcfa26567e4bab96f45d1f85

Sign up to get free protection for your applications and to get access to all the features.
@@ -13,7 +13,7 @@ export interface ServerAdapterBaseObject<TServerContext, THandleRequest extends
13
13
  */
14
14
  handle: THandleRequest;
15
15
  }
16
- export interface ServerAdapterObject<TServerContext> extends EventListenerObject {
16
+ export interface ServerAdapterObject<TServerContext> extends EventListenerObject, AsyncDisposable {
17
17
  /**
18
18
  * A basic request listener that takes a `Request` with the server context and returns a `Response`.
19
19
  */
@@ -31,6 +31,12 @@ export interface ServerAdapterObject<TServerContext> extends EventListenerObject
31
31
  fetch(url: URL, ...ctx: Partial<TServerContext>[]): Promise<Response> | Response;
32
32
  fetch(url: URL, init: RequestInit, ctx: TServerContext): Promise<Response> | Response;
33
33
  fetch(url: URL, init: RequestInit, ...ctx: Partial<TServerContext>[]): Promise<Response> | Response;
34
+ /**
35
+ * This function takes Node's request object and returns a WHATWG Fetch spec compliant `Response` object.
36
+ *
37
+ * @deprecated Use `handleNodeRequestAndResponse` instead.
38
+ **/
39
+ handleNodeRequest(nodeRequest: NodeRequest, ...ctx: Partial<TServerContext & ServerAdapterInitialContext>[]): Promise<Response> | Response;
34
40
  /**
35
41
  * This function takes Node's request and response objects and returns a WHATWG Fetch spec compliant `Response` object.
36
42
  */
@@ -50,6 +56,8 @@ export interface ServerAdapterObject<TServerContext> extends EventListenerObject
50
56
  handle(container: {
51
57
  request: Request;
52
58
  } & Partial<TServerContext & ServerAdapterInitialContext>, ...ctx: Partial<TServerContext & ServerAdapterInitialContext>[]): Promise<Response> | Response;
59
+ disposableStack: AsyncDisposableStack;
60
+ dispose(): Promise<void>;
53
61
  }
54
62
  export interface RequestLike {
55
63
  url: string;
@@ -68,7 +76,7 @@ export type ServerAdapterNodeContext = {
68
76
  req: NodeRequest;
69
77
  res: NodeResponse;
70
78
  };
71
- export type WaitUntilFn = (promise: Promise<unknown>) => void;
79
+ export type WaitUntilFn = (promise: Promise<void> | void) => void;
72
80
  export type FetchAPI = ReturnType<typeof import('@whatwg-node/fetch').createFetch>;
73
81
  export type ServerAdapterInitialContext = {
74
82
  /**
@@ -13,7 +13,7 @@ export interface ServerAdapterBaseObject<TServerContext, THandleRequest extends
13
13
  */
14
14
  handle: THandleRequest;
15
15
  }
16
- export interface ServerAdapterObject<TServerContext> extends EventListenerObject {
16
+ export interface ServerAdapterObject<TServerContext> extends EventListenerObject, AsyncDisposable {
17
17
  /**
18
18
  * A basic request listener that takes a `Request` with the server context and returns a `Response`.
19
19
  */
@@ -31,6 +31,12 @@ export interface ServerAdapterObject<TServerContext> extends EventListenerObject
31
31
  fetch(url: URL, ...ctx: Partial<TServerContext>[]): Promise<Response> | Response;
32
32
  fetch(url: URL, init: RequestInit, ctx: TServerContext): Promise<Response> | Response;
33
33
  fetch(url: URL, init: RequestInit, ...ctx: Partial<TServerContext>[]): Promise<Response> | Response;
34
+ /**
35
+ * This function takes Node's request object and returns a WHATWG Fetch spec compliant `Response` object.
36
+ *
37
+ * @deprecated Use `handleNodeRequestAndResponse` instead.
38
+ **/
39
+ handleNodeRequest(nodeRequest: NodeRequest, ...ctx: Partial<TServerContext & ServerAdapterInitialContext>[]): Promise<Response> | Response;
34
40
  /**
35
41
  * This function takes Node's request and response objects and returns a WHATWG Fetch spec compliant `Response` object.
36
42
  */
@@ -50,6 +56,8 @@ export interface ServerAdapterObject<TServerContext> extends EventListenerObject
50
56
  handle(container: {
51
57
  request: Request;
52
58
  } & Partial<TServerContext & ServerAdapterInitialContext>, ...ctx: Partial<TServerContext & ServerAdapterInitialContext>[]): Promise<Response> | Response;
59
+ disposableStack: AsyncDisposableStack;
60
+ dispose(): Promise<void>;
53
61
  }
54
62
  export interface RequestLike {
55
63
  url: string;
@@ -68,7 +76,7 @@ export type ServerAdapterNodeContext = {
68
76
  req: NodeRequest;
69
77
  res: NodeResponse;
70
78
  };
71
- export type WaitUntilFn = (promise: Promise<unknown>) => void;
79
+ export type WaitUntilFn = (promise: Promise<void> | void) => void;
72
80
  export type FetchAPI = ReturnType<typeof import('@whatwg-node/fetch').createFetch>;
73
81
  export type ServerAdapterInitialContext = {
74
82
  /**
@@ -30,7 +30,8 @@ export declare class ServerAdapterRequestAbortSignal extends EventTarget impleme
30
30
  set onabort(value: ((this: AbortSignal, ev: Event) => any) | null);
31
31
  any(signals: Iterable<AbortSignal>): AbortSignal;
32
32
  }
33
- export declare function normalizeNodeRequest(nodeRequest: NodeRequest, nodeResponse: NodeResponse, RequestCtor: typeof Request): Request;
33
+ export declare const nodeRequestResponseMap: WeakMap<NodeRequest, NodeResponse>;
34
+ export declare function normalizeNodeRequest(nodeRequest: NodeRequest, fetchAPI: FetchAPI, registerSignal?: (signal: ServerAdapterRequestAbortSignal) => void): Request;
34
35
  export declare function isReadable(stream: any): stream is Readable;
35
36
  export declare function isNodeRequest(request: any): request is NodeRequest;
36
37
  export declare function isServerResponse(stream: any): stream is NodeResponse;
@@ -42,7 +43,7 @@ export declare function completeAssign(...args: any[]): any;
42
43
  export declare function isPromise<T>(val: T | Promise<T>): val is Promise<T>;
43
44
  export declare function iterateAsyncVoid<TInput>(iterable: Iterable<TInput>, callback: (input: TInput, stopEarly: () => void) => Promise<void> | void): Promise<void> | void;
44
45
  export declare function handleErrorFromRequestHandler(error: any, ResponseCtor: typeof Response): Response;
45
- export declare function isolateObject<TIsolatedObject extends object>(originalCtx: TIsolatedObject, waitUntilPromises?: Promise<unknown>[]): TIsolatedObject;
46
+ export declare function isolateObject<TIsolatedObject extends object>(originalCtx: TIsolatedObject, waitUntilFn?: (promiseLike: PromiseLike<unknown>) => void): TIsolatedObject;
46
47
  export interface DeferredPromise<T = void> {
47
48
  promise: Promise<T>;
48
49
  resolve: (value: T) => void;
@@ -53,3 +54,4 @@ export declare function handleAbortSignalAndPromiseResponse(response$: Promise<R
53
54
  export declare const decompressedResponseMap: WeakMap<Response, Response>;
54
55
  export declare function getSupportedEncodings(fetchAPI: FetchAPI): CompressionFormat[];
55
56
  export declare function handleResponseDecompression(response: Response, fetchAPI: FetchAPI): Response;
57
+ export declare function ensureDisposableStackRegisteredForTerminateEvents(disposableStack: AsyncDisposableStack): void;
@@ -30,7 +30,8 @@ export declare class ServerAdapterRequestAbortSignal extends EventTarget impleme
30
30
  set onabort(value: ((this: AbortSignal, ev: Event) => any) | null);
31
31
  any(signals: Iterable<AbortSignal>): AbortSignal;
32
32
  }
33
- export declare function normalizeNodeRequest(nodeRequest: NodeRequest, nodeResponse: NodeResponse, RequestCtor: typeof Request): Request;
33
+ export declare const nodeRequestResponseMap: WeakMap<NodeRequest, NodeResponse>;
34
+ export declare function normalizeNodeRequest(nodeRequest: NodeRequest, fetchAPI: FetchAPI, registerSignal?: (signal: ServerAdapterRequestAbortSignal) => void): Request;
34
35
  export declare function isReadable(stream: any): stream is Readable;
35
36
  export declare function isNodeRequest(request: any): request is NodeRequest;
36
37
  export declare function isServerResponse(stream: any): stream is NodeResponse;
@@ -42,7 +43,7 @@ export declare function completeAssign(...args: any[]): any;
42
43
  export declare function isPromise<T>(val: T | Promise<T>): val is Promise<T>;
43
44
  export declare function iterateAsyncVoid<TInput>(iterable: Iterable<TInput>, callback: (input: TInput, stopEarly: () => void) => Promise<void> | void): Promise<void> | void;
44
45
  export declare function handleErrorFromRequestHandler(error: any, ResponseCtor: typeof Response): Response;
45
- export declare function isolateObject<TIsolatedObject extends object>(originalCtx: TIsolatedObject, waitUntilPromises?: Promise<unknown>[]): TIsolatedObject;
46
+ export declare function isolateObject<TIsolatedObject extends object>(originalCtx: TIsolatedObject, waitUntilFn?: (promiseLike: PromiseLike<unknown>) => void): TIsolatedObject;
46
47
  export interface DeferredPromise<T = void> {
47
48
  promise: Promise<T>;
48
49
  resolve: (value: T) => void;
@@ -53,3 +54,4 @@ export declare function handleAbortSignalAndPromiseResponse(response$: Promise<R
53
54
  export declare const decompressedResponseMap: WeakMap<Response, Response>;
54
55
  export declare function getSupportedEncodings(fetchAPI: FetchAPI): CompressionFormat[];
55
56
  export declare function handleResponseDecompression(response: Response, fetchAPI: FetchAPI): Response;
57
+ export declare function ensureDisposableStackRegisteredForTerminateEvents(disposableStack: AsyncDisposableStack): void;
@@ -27,5 +27,7 @@ interface GetRequestFromUWSOpts {
27
27
  signal: AbortSignal;
28
28
  }
29
29
  export declare function getRequestFromUWSRequest({ req, res, fetchAPI, signal }: GetRequestFromUWSOpts): Request;
30
- export declare function sendResponseToUwsOpts(uwsResponse: UWSResponse, fetchResponse: Response, signal: ServerAdapterRequestAbortSignal): Promise<void> | undefined;
30
+ export declare function createWritableFromUWS(uwsResponse: UWSResponse, fetchAPI: FetchAPI): WritableStream<any>;
31
+ export declare function sendResponseToUwsOpts(uwsResponse: UWSResponse, fetchResponse: Response, signal: ServerAdapterRequestAbortSignal, fetchAPI: FetchAPI): Promise<void> | undefined;
32
+ export declare function fakePromise<T>(value: T): Promise<T>;
31
33
  export {};
@@ -27,5 +27,7 @@ interface GetRequestFromUWSOpts {
27
27
  signal: AbortSignal;
28
28
  }
29
29
  export declare function getRequestFromUWSRequest({ req, res, fetchAPI, signal }: GetRequestFromUWSOpts): Request;
30
- export declare function sendResponseToUwsOpts(uwsResponse: UWSResponse, fetchResponse: Response, signal: ServerAdapterRequestAbortSignal): Promise<void> | undefined;
30
+ export declare function createWritableFromUWS(uwsResponse: UWSResponse, fetchAPI: FetchAPI): WritableStream<any>;
31
+ export declare function sendResponseToUwsOpts(uwsResponse: UWSResponse, fetchResponse: Response, signal: ServerAdapterRequestAbortSignal, fetchAPI: FetchAPI): Promise<void> | undefined;
32
+ export declare function fakePromise<T>(value: T): Promise<T>;
31
33
  export {};