Skip to content

Commit 4146cd5

Browse files
chazcbclaude
andcommitted
fix: Convert remaining #private fields in Connection class to private keyword
For consistency with the exported classes, also converts the internal Connection class from ES #private fields/methods to TypeScript private. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent bd848dc commit 4146cd5

1 file changed

Lines changed: 56 additions & 54 deletions

File tree

src/acp.ts

Lines changed: 56 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1221,28 +1221,30 @@ export class ClientSideConnection implements Agent {
12211221
export type { AnyMessage } from "./jsonrpc.js";
12221222

12231223
class 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

Comments
 (0)