fix: add | undefined to transport option callbacks for exactOptionalPropertyTypes (#1855)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
4fbcfcd176
commit
2c0c481cb9
3 changed files with 14 additions and 7 deletions
7
.changeset/gentle-planets-rest.md
Normal file
7
.changeset/gentle-planets-rest.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
'@modelcontextprotocol/server': patch
|
||||
---
|
||||
|
||||
Add `| undefined` to optional callback and function properties on `WebStandardStreamableHTTPServerTransportOptions` (`sessionIdGenerator`, `onsessioninitialized`, `onsessionclosed`) and corresponding private fields.
|
||||
|
||||
This fixes TS2430 errors for consumers using `exactOptionalPropertyTypes: true` without `skipLibCheck`, where optional properties with function types need explicit `| undefined` to match their emitted declarations.
|
||||
|
|
@ -42,8 +42,8 @@ interface TestServerConfig {
|
|||
enableJsonResponse?: boolean;
|
||||
customRequestHandler?: (req: IncomingMessage, res: ServerResponse, parsedBody?: unknown) => Promise<void>;
|
||||
eventStore?: EventStore;
|
||||
onsessioninitialized?: (sessionId: string) => void | Promise<void>;
|
||||
onsessionclosed?: (sessionId: string) => void | Promise<void>;
|
||||
onsessioninitialized?: ((sessionId: string) => void | Promise<void>) | undefined;
|
||||
onsessionclosed?: ((sessionId: string) => void | Promise<void>) | undefined;
|
||||
retryInterval?: number;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ export interface WebStandardStreamableHTTPServerTransportOptions {
|
|||
*
|
||||
* If not provided, session management is disabled (stateless mode).
|
||||
*/
|
||||
sessionIdGenerator?: () => string;
|
||||
sessionIdGenerator?: (() => string) | undefined;
|
||||
|
||||
/**
|
||||
* A callback for session initialization events
|
||||
|
|
@ -86,7 +86,7 @@ export interface WebStandardStreamableHTTPServerTransportOptions {
|
|||
* and need to keep track of them.
|
||||
* @param sessionId The generated session ID
|
||||
*/
|
||||
onsessioninitialized?: (sessionId: string) => void | Promise<void>;
|
||||
onsessioninitialized?: ((sessionId: string) => void | Promise<void>) | undefined;
|
||||
|
||||
/**
|
||||
* A callback for session close events
|
||||
|
|
@ -98,7 +98,7 @@ export interface WebStandardStreamableHTTPServerTransportOptions {
|
|||
* session open/running.
|
||||
* @param sessionId The session ID that was closed
|
||||
*/
|
||||
onsessionclosed?: (sessionId: string) => void | Promise<void>;
|
||||
onsessionclosed?: ((sessionId: string) => void | Promise<void>) | undefined;
|
||||
|
||||
/**
|
||||
* If `true`, the server will return JSON responses instead of starting an SSE stream.
|
||||
|
|
@ -233,8 +233,8 @@ export class WebStandardStreamableHTTPServerTransport implements Transport {
|
|||
private _enableJsonResponse: boolean = false;
|
||||
private _standaloneSseStreamId: string = '_GET_stream';
|
||||
private _eventStore?: EventStore;
|
||||
private _onsessioninitialized?: (sessionId: string) => void | Promise<void>;
|
||||
private _onsessionclosed?: (sessionId: string) => void | Promise<void>;
|
||||
private _onsessioninitialized?: ((sessionId: string) => void | Promise<void>) | undefined;
|
||||
private _onsessionclosed?: ((sessionId: string) => void | Promise<void>) | undefined;
|
||||
private _allowedHosts?: string[];
|
||||
private _allowedOrigins?: string[];
|
||||
private _enableDnsRebindingProtection: boolean;
|
||||
|
|
|
|||
Loading…
Reference in a new issue