Skip to content

Commit 4cbeade

Browse files
fix: add | undefined to optional callback types for exactOptionalPropertyTypes support
Optional properties sessionIdGenerator, onsessioninitialized, and onsessionclosed in WebStandardStreamableHTTPServerTransportOptions need the | undefined union to support TypeScript projects with exactOptionalPropertyTypes: true. Fixes #1397
1 parent 7ba58da commit 4cbeade

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

packages/middleware/node/test/streamableHttp.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ interface TestServerConfig {
4242
enableJsonResponse?: boolean;
4343
customRequestHandler?: (req: IncomingMessage, res: ServerResponse, parsedBody?: unknown) => Promise<void>;
4444
eventStore?: EventStore;
45-
onsessioninitialized?: (sessionId: string) => void | Promise<void>;
46-
onsessionclosed?: (sessionId: string) => void | Promise<void>;
45+
onsessioninitialized?: ((sessionId: string) => void | Promise<void>) | undefined;
46+
onsessionclosed?: ((sessionId: string) => void | Promise<void>) | undefined;
4747
retryInterval?: number;
4848
}
4949

packages/server/src/server/streamableHttp.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ export interface WebStandardStreamableHTTPServerTransportOptions {
7777
*
7878
* If not provided, session management is disabled (stateless mode).
7979
*/
80-
sessionIdGenerator?: () => string;
80+
sessionIdGenerator?: (() => string) | undefined;
8181

8282
/**
8383
* A callback for session initialization events
@@ -86,7 +86,7 @@ export interface WebStandardStreamableHTTPServerTransportOptions {
8686
* and need to keep track of them.
8787
* @param sessionId The generated session ID
8888
*/
89-
onsessioninitialized?: (sessionId: string) => void | Promise<void>;
89+
onsessioninitialized?: ((sessionId: string) => void | Promise<void>) | undefined;
9090

9191
/**
9292
* A callback for session close events
@@ -98,7 +98,7 @@ export interface WebStandardStreamableHTTPServerTransportOptions {
9898
* session open/running.
9999
* @param sessionId The session ID that was closed
100100
*/
101-
onsessionclosed?: (sessionId: string) => void | Promise<void>;
101+
onsessionclosed?: ((sessionId: string) => void | Promise<void>) | undefined;
102102

103103
/**
104104
* If `true`, the server will return JSON responses instead of starting an SSE stream.
@@ -233,8 +233,8 @@ export class WebStandardStreamableHTTPServerTransport implements Transport {
233233
private _enableJsonResponse: boolean = false;
234234
private _standaloneSseStreamId: string = '_GET_stream';
235235
private _eventStore?: EventStore;
236-
private _onsessioninitialized?: (sessionId: string) => void | Promise<void>;
237-
private _onsessionclosed?: (sessionId: string) => void | Promise<void>;
236+
private _onsessioninitialized?: ((sessionId: string) => void | Promise<void>) | undefined;
237+
private _onsessionclosed?: ((sessionId: string) => void | Promise<void>) | undefined;
238238
private _allowedHosts?: string[];
239239
private _allowedOrigins?: string[];
240240
private _enableDnsRebindingProtection: boolean;

0 commit comments

Comments
 (0)