@@ -2,25 +2,25 @@ import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/
22import logger , { LogId } from "./logger.js" ;
33
44export class SessionStore {
5- private sessions : Map < string , StreamableHTTPServerTransport > = new Map ( ) ;
5+ private sessions : { [ sessionId : string ] : StreamableHTTPServerTransport | undefined } = { } ;
66
77 getSession ( sessionId : string ) : StreamableHTTPServerTransport | undefined {
8- return this . sessions . get ( sessionId ) ;
8+ return this . sessions [ sessionId ] ;
99 }
1010
1111 setSession ( sessionId : string , transport : StreamableHTTPServerTransport ) : void {
12- if ( this . sessions . has ( sessionId ) ) {
12+ if ( this . sessions [ sessionId ] ) {
1313 throw new Error ( `Session ${ sessionId } already exists` ) ;
1414 }
15- this . sessions . set ( sessionId , transport ) ;
15+ this . sessions [ sessionId ] = transport ;
1616 }
1717
1818 async closeSession ( sessionId : string , closeTransport : boolean = true ) : Promise < void > {
19- if ( ! this . sessions . has ( sessionId ) ) {
19+ if ( ! this . sessions [ sessionId ] ) {
2020 throw new Error ( `Session ${ sessionId } not found` ) ;
2121 }
2222 if ( closeTransport ) {
23- const transport = this . sessions . get ( sessionId ) ;
23+ const transport = this . sessions [ sessionId ] ;
2424 if ( ! transport ) {
2525 throw new Error ( `Session ${ sessionId } not found` ) ;
2626 }
@@ -34,11 +34,15 @@ export class SessionStore {
3434 ) ;
3535 }
3636 }
37- this . sessions . delete ( sessionId ) ;
37+ delete this . sessions [ sessionId ] ;
3838 }
3939
4040 async closeAllSessions ( ) : Promise < void > {
41- await Promise . all ( Array . from ( this . sessions . values ( ) ) . map ( ( transport ) => transport . close ( ) ) ) ;
42- this . sessions . clear ( ) ;
41+ await Promise . all (
42+ Object . values ( this . sessions )
43+ . filter ( ( transport ) => transport !== undefined )
44+ . map ( ( transport ) => transport . close ( ) )
45+ ) ;
46+ this . sessions = { } ;
4347 }
4448}
0 commit comments