@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.
- package/cjs/createServerAdapter.js +53 -23
- package/cjs/plugins/useContentEncoding.js +44 -18
- package/cjs/plugins/useErrorHandling.js +5 -1
- package/cjs/utils.js +116 -104
- package/cjs/uwebsockets.js +192 -54
- package/esm/createServerAdapter.js +54 -24
- package/esm/plugins/useContentEncoding.js +45 -19
- package/esm/plugins/useErrorHandling.js +5 -1
- package/esm/utils.js +114 -103
- package/esm/uwebsockets.js +190 -54
- package/package.json +4 -3
- package/typings/plugins/useCors.d.cts +1 -1
- package/typings/plugins/useCors.d.ts +1 -1
- package/typings/plugins/useErrorHandling.d.cts +2 -2
- package/typings/plugins/useErrorHandling.d.ts +2 -2
- package/typings/types.d.cts +10 -2
- package/typings/types.d.ts +10 -2
- package/typings/utils.d.cts +4 -2
- package/typings/utils.d.ts +4 -2
- package/typings/uwebsockets.d.cts +3 -1
- package/typings/uwebsockets.d.ts +3 -1
package/typings/types.d.cts
CHANGED
@@ -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<
|
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
|
/**
|
package/typings/types.d.ts
CHANGED
@@ -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<
|
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
|
/**
|
package/typings/utils.d.cts
CHANGED
@@ -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
|
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,
|
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;
|
package/typings/utils.d.ts
CHANGED
@@ -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
|
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,
|
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
|
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 {};
|
package/typings/uwebsockets.d.ts
CHANGED
@@ -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
|
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 {};
|