Skip to content

Interface: RenderSession<T>

Defined in: src/renderer/render.ts:110

A render session returned by render.

The session is thenable — it can be awaited directly to get the resolved { data, button } result. It also exposes methods for ongoing communication (streaming, events) before resolution.

After resolution, all methods log a warning and become no-ops. The UI is unmounted and the bridge is cleaned up.

Type Parameters

Type ParameterDefault type
Tany

Properties

PropertyTypeDescriptionDefined in
sessionIdstringThe unique session identifier. Pass to another render()'s options to share state.src/renderer/render.ts:112
state{ get: unknown; set: void; onChange: () => void; }Read/write shared state from Node.js. State is synced bidirectionally with the browser via the bridge.src/renderer/render.ts:162
state.getunknown-src/renderer/render.ts:164
state.setvoid-src/renderer/render.ts:169
state.onChange() => void-src/renderer/render.ts:171

Methods

then()

ts
then<TResult1, TResult2>(onfulfilled?: 
  | (value: {
  data: T;
  button: string;
}) => TResult1 | PromiseLike<TResult1>
| null, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2> | null): Promise<TResult1 | TResult2>;

Defined in: src/renderer/render.ts:118

Makes the session awaitable. Resolves when the browser component calls bridge.resolve() or when an SDK NavigationBar triggers resolution.

Type Parameters

Type ParameterDefault type
TResult1{ data: T; button: string; }
TResult2never

Parameters

ParameterType
onfulfilled?| (value: { data: T; button: string; }) => TResult1 | PromiseLike<TResult1> | null
onrejected?(reason: any) => TResult2 | PromiseLike<TResult2> | null

Returns

Promise<TResult1 | TResult2>


emit()

ts
emit(event: string, payload?: unknown): void;

Defined in: src/renderer/render.ts:135

Push an event to the browser component.

The browser component can listen via useBridge().on(event, handler). Events are delivered via port.evaluate() — they execute in the browser context immediately.

Parameters

ParameterTypeDescription
eventstringEvent name.
payload?unknownSerializable data to send.

Returns

void


on()

ts
on(event: string, handler: (...args: unknown[]) => void): () => void;

Defined in: src/renderer/render.ts:147

Listen to events from the browser component.

The browser component can fire events via useBridge().emit(event, data). Events arrive via the bridge RPC mechanism.

Parameters

ParameterTypeDescription
eventstringEvent name.
handler(...args: unknown[]) => voidCalled when the event fires.

Returns

An unsubscribe function.

ts
(): void;
Returns

void


handle()

ts
handle(name: string, fn: (...args: unknown[]) => unknown): () => void;

Defined in: src/renderer/render.ts:156

Register a named handler that the browser can call via useBridge().call().

Parameters

ParameterTypeDescription
namestringHandler name (browser calls bridge.call(name, ...args)).
fn(...args: unknown[]) => unknownThe function to execute. Return value is sent back to the browser.

Returns

An unregister function.

ts
(): void;
Returns

void


cleanup()

ts
cleanup(): Promise<void>;

Defined in: src/renderer/render.ts:178

Clean up: unmount UI, deregister callbacks, remove Shadow DOM. Use for fire-and-forget renders that don't resolve naturally.

Returns

Promise<void>

Matterway Assistant SDK Documentation