Appearance
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 Parameter | Default type |
|---|---|
T | any |
Properties
| Property | Type | Description | Defined in |
|---|---|---|---|
sessionId | string | The 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.get | unknown | - | src/renderer/render.ts:164 |
state.set | void | - | 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 Parameter | Default type |
|---|---|
TResult1 | { data: T; button: string; } |
TResult2 | never |
Parameters
| Parameter | Type |
|---|---|
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
| Parameter | Type | Description |
|---|---|---|
event | string | Event name. |
payload? | unknown | Serializable 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
| Parameter | Type | Description |
|---|---|---|
event | string | Event name. |
handler | (...args: unknown[]) => void | Called 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
| Parameter | Type | Description |
|---|---|---|
name | string | Handler name (browser calls bridge.call(name, ...args)). |
fn | (...args: unknown[]) => unknown | The 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>