Skip to content

Commit 8061362

Browse files
committed
refactor: rename message→sendMessage, resourceTeardown→teardownResource
- App.message() → App.sendMessage() (with deprecated message alias) - AppBridge.resourceTeardown() → AppBridge.teardownResource() (with deprecated aliases) This better follows the pattern where methods that send data have 'send' or action verb prefix.
1 parent 800f0e0 commit 8061362

File tree

5 files changed

+31
-25
lines changed

5 files changed

+31
-25
lines changed

src/app-bridge.test.ts

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -369,20 +369,20 @@ describe("App <-> AppBridge integration", () => {
369369
await newBridgeTransport.close();
370370
});
371371

372-
it("sendResourceTeardown triggers app.onteardown", async () => {
372+
it("teardownResource triggers app.onteardown", async () => {
373373
let teardownCalled = false;
374374
app.onteardown = async () => {
375375
teardownCalled = true;
376376
return {};
377377
};
378378

379379
await app.connect(appTransport);
380-
await bridge.sendResourceTeardown({});
380+
await bridge.teardownResource({});
381381

382382
expect(teardownCalled).toBe(true);
383383
});
384384

385-
it("sendResourceTeardown waits for async cleanup", async () => {
385+
it("teardownResource waits for async cleanup", async () => {
386386
const cleanupSteps: string[] = [];
387387
app.onteardown = async () => {
388388
cleanupSteps.push("start");
@@ -392,7 +392,7 @@ describe("App <-> AppBridge integration", () => {
392392
};
393393

394394
await app.connect(appTransport);
395-
await bridge.sendResourceTeardown({});
395+
await bridge.teardownResource({});
396396

397397
expect(cleanupSteps).toEqual(["start", "done"]);
398398
});
@@ -442,15 +442,15 @@ describe("App <-> AppBridge integration", () => {
442442
await bridge.connect(bridgeTransport);
443443
});
444444

445-
it("app.message triggers bridge.onmessage and returns result", async () => {
445+
it("app.sendMessage triggers bridge.onmessage and returns result", async () => {
446446
const receivedMessages: unknown[] = [];
447447
bridge.onmessage = async (params) => {
448448
receivedMessages.push(params);
449449
return {};
450450
};
451451

452452
await app.connect(appTransport);
453-
const result = await app.message({
453+
const result = await app.sendMessage({
454454
role: "user",
455455
content: [{ type: "text", text: "Hello from app" }],
456456
});
@@ -463,13 +463,13 @@ describe("App <-> AppBridge integration", () => {
463463
expect(result).toEqual({});
464464
});
465465

466-
it("app.message returns error result when handler indicates error", async () => {
466+
it("app.sendMessage returns error result when handler indicates error", async () => {
467467
bridge.onmessage = async () => {
468468
return { isError: true };
469469
};
470470

471471
await app.connect(appTransport);
472-
const result = await app.message({
472+
const result = await app.sendMessage({
473473
role: "user",
474474
content: [{ type: "text", text: "Test" }],
475475
});
@@ -509,26 +509,30 @@ describe("App <-> AppBridge integration", () => {
509509
await app.connect(appTransport);
510510
});
511511

512-
it("app.sendMessage is an alias for app.message", async () => {
513-
expect(app.sendMessage).toBe(app.message);
512+
it("app.message is a deprecated alias for app.sendMessage", async () => {
513+
expect(app.message).toBe(app.sendMessage);
514514
});
515515

516516
it("app.sendOpenLink is an alias for app.openLink", async () => {
517517
expect(app.sendOpenLink).toBe(app.openLink);
518518
});
519519

520-
it("bridge.sendResourceTeardown is an alias for bridge.resourceTeardown", () => {
521-
expect(bridge.sendResourceTeardown).toBe(bridge.resourceTeardown);
520+
it("bridge.resourceTeardown is a deprecated alias for bridge.teardownResource", () => {
521+
expect(bridge.resourceTeardown).toBe(bridge.teardownResource);
522522
});
523523

524-
it("app.sendMessage works as deprecated alias", async () => {
524+
it("bridge.sendResourceTeardown is a deprecated alias for bridge.teardownResource", () => {
525+
expect(bridge.sendResourceTeardown).toBe(bridge.teardownResource);
526+
});
527+
528+
it("app.message works as deprecated alias", async () => {
525529
const receivedMessages: unknown[] = [];
526530
bridge.onmessage = async (params) => {
527531
receivedMessages.push(params);
528532
return {};
529533
};
530534

531-
await app.sendMessage({
535+
await app.message({
532536
role: "user",
533537
content: [{ type: "text", text: "Via deprecated alias" }],
534538
});

src/app-bridge.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ type RequestHandlerExtra = Parameters<
131131
* 2. **Connect**: Call `connect()` with transport to establish communication
132132
* 3. **Wait for init**: Guest UI sends initialize request, bridge responds
133133
* 4. **Send data**: Call `sendToolInput()`, `sendToolResult()`, etc.
134-
* 5. **Teardown**: Call `sendResourceTeardown()` before unmounting iframe
134+
* 5. **Teardown**: Call `teardownResource()` before unmounting iframe
135135
*
136136
* @example Basic usage
137137
* ```typescript
@@ -1174,15 +1174,15 @@ export class AppBridge extends Protocol<
11741174
* @example
11751175
* ```typescript
11761176
* try {
1177-
* await bridge.resourceTeardown({});
1177+
* await bridge.teardownResource({});
11781178
* // Guest UI is ready, safe to unmount iframe
11791179
* iframe.remove();
11801180
* } catch (error) {
11811181
* console.error("Teardown failed:", error);
11821182
* }
11831183
* ```
11841184
*/
1185-
resourceTeardown(
1185+
teardownResource(
11861186
params: McpUiResourceTeardownRequest["params"],
11871187
options?: RequestOptions,
11881188
) {
@@ -1196,8 +1196,10 @@ export class AppBridge extends Protocol<
11961196
);
11971197
}
11981198

1199-
/** @deprecated Use {@link resourceTeardown} instead */
1200-
sendResourceTeardown: AppBridge["resourceTeardown"] = this.resourceTeardown;
1199+
/** @deprecated Use {@link teardownResource} instead */
1200+
resourceTeardown: AppBridge["teardownResource"] = this.teardownResource;
1201+
/** @deprecated Use {@link teardownResource} instead */
1202+
sendResourceTeardown: AppBridge["teardownResource"] = this.teardownResource;
12011203

12021204
/**
12031205
* Connect to the Guest UI via transport and optionally set up message forwarding.

src/app.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -758,7 +758,7 @@ export class App extends Protocol<AppRequest, AppNotification, AppResult> {
758758
* @example Send a text message from user interaction
759759
* ```typescript
760760
* try {
761-
* await app.message({
761+
* await app.sendMessage({
762762
* role: "user",
763763
* content: [{ type: "text", text: "Show me details for item #42" }]
764764
* });
@@ -770,7 +770,7 @@ export class App extends Protocol<AppRequest, AppNotification, AppResult> {
770770
*
771771
* @see {@link McpUiMessageRequest} for request structure
772772
*/
773-
message(params: McpUiMessageRequest["params"], options?: RequestOptions) {
773+
sendMessage(params: McpUiMessageRequest["params"], options?: RequestOptions) {
774774
return this.request(
775775
<McpUiMessageRequest>{
776776
method: "ui/message",
@@ -781,8 +781,8 @@ export class App extends Protocol<AppRequest, AppNotification, AppResult> {
781781
);
782782
}
783783

784-
/** @deprecated Use {@link message} instead */
785-
sendMessage: App["message"] = this.message;
784+
/** @deprecated Use {@link sendMessage} instead */
785+
message: App["sendMessage"] = this.sendMessage;
786786

787787
/**
788788
* Send log messages to the host for debugging and telemetry.

src/generated/schema.ts

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/spec.types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,7 @@ export interface McpUiHostContextChangedNotification {
364364

365365
/**
366366
* @description Request for graceful shutdown of the Guest UI (Host -> Guest UI).
367-
* @see {@link app-bridge.AppBridge.sendResourceTeardown} for the host method that sends this
367+
* @see {@link app-bridge.AppBridge.teardownResource} for the host method that sends this
368368
*/
369369
export interface McpUiResourceTeardownRequest {
370370
method: "ui/resource-teardown";

0 commit comments

Comments
 (0)