@@ -1221,28 +1221,30 @@ export class ClientSideConnection implements Agent {
12211221export type { AnyMessage } from "./jsonrpc.js" ;
12221222
12231223class Connection {
1224- #pendingResponses: Map < string | number | null , ConnectionPendingResponse > =
1225- new Map ( ) ;
1226- #nextRequestId: number = 0 ;
1227- #requestHandler: RequestHandler ;
1228- #notificationHandler: NotificationHandler ;
1229- #stream: Stream ;
1230- #writeQueue: Promise < void > = Promise . resolve ( ) ;
1231- #abortController = new AbortController ( ) ;
1232- #closedPromise: Promise < void > ;
1224+ private pendingResponses : Map <
1225+ string | number | null ,
1226+ ConnectionPendingResponse
1227+ > = new Map ( ) ;
1228+ private nextRequestId : number = 0 ;
1229+ private requestHandler : RequestHandler ;
1230+ private notificationHandler : NotificationHandler ;
1231+ private stream : Stream ;
1232+ private writeQueue : Promise < void > = Promise . resolve ( ) ;
1233+ private abortController = new AbortController ( ) ;
1234+ private closedPromise : Promise < void > ;
12331235
12341236 constructor (
12351237 requestHandler : RequestHandler ,
12361238 notificationHandler : NotificationHandler ,
12371239 stream : Stream ,
12381240 ) {
1239- this . # requestHandler = requestHandler ;
1240- this . # notificationHandler = notificationHandler ;
1241- this . # stream = stream ;
1242- this . # closedPromise = new Promise ( ( resolve ) => {
1243- this . # abortController. signal . addEventListener ( "abort" , ( ) => resolve ( ) ) ;
1241+ this . requestHandler = requestHandler ;
1242+ this . notificationHandler = notificationHandler ;
1243+ this . stream = stream ;
1244+ this . closedPromise = new Promise ( ( resolve ) => {
1245+ this . abortController . signal . addEventListener ( "abort" , ( ) => resolve ( ) ) ;
12441246 } ) ;
1245- void this . # receive( ) ;
1247+ void this . receive ( ) ;
12461248 }
12471249
12481250 /**
@@ -1254,7 +1256,7 @@ class Connection {
12541256 * - Pass to other APIs (fetch, setTimeout) for automatic cancellation
12551257 */
12561258 get signal ( ) : AbortSignal {
1257- return this . # abortController. signal ;
1259+ return this . abortController . signal ;
12581260 }
12591261
12601262 /**
@@ -1272,16 +1274,16 @@ class Connection {
12721274 * ```
12731275 */
12741276 get closed ( ) : Promise < void > {
1275- return this . # closedPromise;
1277+ return this . closedPromise ;
12761278 }
12771279
1278- async # receive( ) {
1280+ private async receive ( ) {
12791281 let closeError : unknown = undefined ;
12801282
12811283 try {
1282- const reader = this . # stream. readable . getReader ( ) ;
1284+ const reader = this . stream . readable . getReader ( ) ;
12831285 try {
1284- while ( ! this . # abortController. signal . aborted ) {
1286+ while ( ! this . abortController . signal . aborted ) {
12851287 const { value : message , done } = await reader . read ( ) ;
12861288 if ( done ) {
12871289 break ;
@@ -1291,7 +1293,7 @@ class Connection {
12911293 }
12921294
12931295 try {
1294- this . # processMessage( message ) ;
1296+ this . processMessage ( message ) ;
12951297 } catch ( err ) {
12961298 console . error (
12971299 "Unexpected error during message processing:" ,
@@ -1300,7 +1302,7 @@ class Connection {
13001302 ) ;
13011303 // Only send error response if the message had an id (was a request)
13021304 if ( "id" in message && message . id !== undefined ) {
1303- this . # sendMessage( {
1305+ this . sendMessage ( {
13041306 jsonrpc : "2.0" ,
13051307 id : message . id ,
13061308 error : {
@@ -1317,42 +1319,42 @@ class Connection {
13171319 } catch ( error ) {
13181320 closeError = error ;
13191321 } finally {
1320- this . # close( closeError ) ;
1322+ this . close ( closeError ) ;
13211323 }
13221324 }
13231325
1324- # close( error ?: unknown ) {
1325- if ( this . # abortController. signal . aborted ) {
1326+ private close ( error ?: unknown ) {
1327+ if ( this . abortController . signal . aborted ) {
13261328 return ;
13271329 }
13281330
13291331 const closeError : unknown = error ?? new Error ( "ACP connection closed" ) ;
1330- for ( const pendingResponse of this . # pendingResponses. values ( ) ) {
1332+ for ( const pendingResponse of this . pendingResponses . values ( ) ) {
13311333 pendingResponse . reject ( closeError ) ;
13321334 }
1333- this . # pendingResponses. clear ( ) ;
1334- this . # abortController. abort ( closeError ) ;
1335+ this . pendingResponses . clear ( ) ;
1336+ this . abortController . abort ( closeError ) ;
13351337 }
13361338
1337- async # processMessage( message : AnyMessage ) {
1339+ private async processMessage ( message : AnyMessage ) {
13381340 if ( "method" in message && "id" in message ) {
13391341 // It's a request
1340- const response = await this . # tryCallRequestHandler(
1342+ const response = await this . tryCallRequestHandler (
13411343 message . method ,
13421344 message . params ,
13431345 ) ;
13441346 if ( "error" in response ) {
13451347 console . error ( "Error handling request" , message , response . error ) ;
13461348 }
13471349
1348- await this . # sendMessage( {
1350+ await this . sendMessage ( {
13491351 jsonrpc : "2.0" ,
13501352 id : message . id ,
13511353 ...response ,
13521354 } ) ;
13531355 } else if ( "method" in message ) {
13541356 // It's a notification
1355- const response = await this . # tryCallNotificationHandler(
1357+ const response = await this . tryCallNotificationHandler (
13561358 message . method ,
13571359 message . params ,
13581360 ) ;
@@ -1361,18 +1363,18 @@ class Connection {
13611363 }
13621364 } else if ( "id" in message ) {
13631365 // It's a response
1364- this . # handleResponse( message ) ;
1366+ this . handleResponse ( message ) ;
13651367 } else {
13661368 console . error ( "Invalid message" , { message } ) ;
13671369 }
13681370 }
13691371
1370- async # tryCallRequestHandler(
1372+ private async tryCallRequestHandler (
13711373 method : string ,
13721374 params : unknown ,
13731375 ) : Promise < Result < unknown > > {
13741376 try {
1375- const result = await this . # requestHandler( method , params ) ;
1377+ const result = await this . requestHandler ( method , params ) ;
13761378 return { result : result ?? null } ;
13771379 } catch ( error : unknown ) {
13781380 if ( error instanceof RequestError ) {
@@ -1406,12 +1408,12 @@ class Connection {
14061408 }
14071409 }
14081410
1409- async # tryCallNotificationHandler(
1411+ private async tryCallNotificationHandler (
14101412 method : string ,
14111413 params : unknown ,
14121414 ) : Promise < Result < unknown > > {
14131415 try {
1414- await this . # notificationHandler( method , params ) ;
1416+ await this . notificationHandler ( method , params ) ;
14151417 return { result : null } ;
14161418 } catch ( error : unknown ) {
14171419 if ( error instanceof RequestError ) {
@@ -1445,59 +1447,59 @@ class Connection {
14451447 }
14461448 }
14471449
1448- # handleResponse( response : AnyResponse ) {
1449- const pendingResponse = this . # pendingResponses. get ( response . id ) ;
1450+ private handleResponse ( response : AnyResponse ) {
1451+ const pendingResponse = this . pendingResponses . get ( response . id ) ;
14501452 if ( pendingResponse ) {
14511453 if ( "result" in response ) {
14521454 pendingResponse . resolve ( response . result ) ;
14531455 } else if ( "error" in response ) {
14541456 const { code, message, data } = response . error ;
14551457 pendingResponse . reject ( new RequestError ( code , message , data ) ) ;
14561458 }
1457- this . # pendingResponses. delete ( response . id ) ;
1459+ this . pendingResponses . delete ( response . id ) ;
14581460 } else {
14591461 console . error ( "Got response to unknown request" , response . id ) ;
14601462 }
14611463 }
14621464
14631465 async sendRequest < Req , Resp > ( method : string , params ?: Req ) : Promise < Resp > {
1464- this . # throwIfClosed( ) ;
1465- const id = this . # nextRequestId++ ;
1466+ this . throwIfClosed ( ) ;
1467+ const id = this . nextRequestId ++ ;
14661468 const responsePromise = new Promise ( ( resolve , reject ) => {
1467- this . # pendingResponses. set ( id , { resolve, reject } ) ;
1469+ this . pendingResponses . set ( id , { resolve, reject } ) ;
14681470 } ) ;
1469- await this . # sendMessage( { jsonrpc : "2.0" , id, method, params } ) ;
1471+ await this . sendMessage ( { jsonrpc : "2.0" , id, method, params } ) ;
14701472 return responsePromise as Promise < Resp > ;
14711473 }
14721474
14731475 async sendNotification < N > ( method : string , params ?: N ) : Promise < void > {
1474- this . # throwIfClosed( ) ;
1475- await this . # sendMessage( { jsonrpc : "2.0" , method, params } ) ;
1476+ this . throwIfClosed ( ) ;
1477+ await this . sendMessage ( { jsonrpc : "2.0" , method, params } ) ;
14761478 }
14771479
1478- # throwIfClosed( ) {
1479- if ( this . # abortController. signal . aborted ) {
1480+ private throwIfClosed ( ) {
1481+ if ( this . abortController . signal . aborted ) {
14801482 throw (
1481- this . # abortController. signal . reason ??
1483+ this . abortController . signal . reason ??
14821484 new Error ( "ACP connection closed" )
14831485 ) ;
14841486 }
14851487 }
14861488
1487- async # sendMessage( message : AnyMessage ) {
1488- this . # writeQueue = this . # writeQueue
1489+ private async sendMessage ( message : AnyMessage ) {
1490+ this . writeQueue = this . writeQueue
14891491 . then ( async ( ) => {
1490- const writer = this . # stream. writable . getWriter ( ) ;
1492+ const writer = this . stream . writable . getWriter ( ) ;
14911493 try {
14921494 await writer . write ( message ) ;
14931495 } finally {
14941496 writer . releaseLock ( ) ;
14951497 }
14961498 } )
14971499 . catch ( ( error ) => {
1498- this . # close( error ) ;
1500+ this . close ( error ) ;
14991501 } ) ;
1500- return this . # writeQueue;
1502+ return this . writeQueue ;
15011503 }
15021504}
15031505
0 commit comments