Skip to content

shared/ipc/contract

Defined in: app/src/shared/ipc/contract.ts:24

A one-way event channel from the browser process to renderers.

T

readonly capability: Capability

Defined in: app/src/shared/ipc/contract.ts:28

readonly channel: string

Defined in: app/src/shared/ipc/contract.ts:26

readonly kind: "event"

Defined in: app/src/shared/ipc/contract.ts:25

readonly payload: GenericSchema<unknown, T>

Defined in: app/src/shared/ipc/contract.ts:27


Defined in: app/src/shared/ipc/contract.ts:12

A request-response channel between a renderer and the browser process.

Req

Res

readonly capability: Capability

Defined in: app/src/shared/ipc/contract.ts:18

readonly channel: string

Defined in: app/src/shared/ipc/contract.ts:15

Dotted channel name, such as tabs.activate.

readonly kind: "request"

Defined in: app/src/shared/ipc/contract.ts:13

readonly optional ratePerSecond?: number

Defined in: app/src/shared/ipc/contract.ts:20

Maximum calls per second and sender. Defaults to 50.

readonly request: GenericSchema<unknown, Req>

Defined in: app/src/shared/ipc/contract.ts:16

readonly response: GenericSchema<unknown, Res>

Defined in: app/src/shared/ipc/contract.ts:17

Capability = "shell" | "overlay" | "appearance" | `page:${string}`

Defined in: app/src/shared/ipc/contract.ts:9

What a view is allowed to call or receive. Each view type gets only the capabilities it needs: the shell gets shell, the overlay overlay, and internal pages page:<name>, such as page:settings. Every view of the browser’s own UI gets appearance, the events that restyle it.


Contract = RequestContract<unknown, unknown> | EventContract<unknown>

Defined in: app/src/shared/ipc/contract.ts:32

Any contract.


PayloadOf<C> = C extends EventContract<infer T> ? T : never

Defined in: app/src/shared/ipc/contract.ts:39

Payload type of an event contract.

C


RequestOf<C> = C extends RequestContract<infer Req, unknown> ? Req : never

Defined in: app/src/shared/ipc/contract.ts:35

Request type of a request contract.

C


ResponseOf<C> = C extends RequestContract<unknown, infer Res> ? Res : never

Defined in: app/src/shared/ipc/contract.ts:37

Response type of a request contract.

C

defineEvent<T>(contract): EventContract<T>

Defined in: app/src/shared/ipc/contract.ts:64

Declares an event channel.

T

Omit<EventContract<T>, "kind">

Channel, payload schema and capability.

EventContract<T>


defineRequest<Req, Res>(contract): RequestContract<Req, Res>

Defined in: app/src/shared/ipc/contract.ts:53

Declares a request-response channel.

Req

Res

Omit<RequestContract<Req, Res>, "kind">

Channel, schemas and capability.

RequestContract<Req, Res>