Transports
Functions
Section titled “Functions”checkOsraMessageKey()
Section titled “checkOsraMessageKey()”function checkOsraMessageKey(message: any, key: string): message is MessageDefined in: utils/transport.ts:118
Parameters
Section titled “Parameters”message
Section titled “message”any
string
Returns
Section titled “Returns”message is Message
getWebExtensionGlobal()
Section titled “getWebExtensionGlobal()”function getWebExtensionGlobal(): WebExtGlobal | undefinedDefined in: utils/transport.ts:114
Returns
Section titled “Returns”WebExtGlobal | undefined
getWebExtensionRuntime()
Section titled “getWebExtensionRuntime()”function getWebExtensionRuntime(): WebExtRuntime | undefinedDefined in: utils/transport.ts:116
Returns
Section titled “Returns”WebExtRuntime | undefined
registerOsraMessageListener()
Section titled “registerOsraMessageListener()”Guide: Low-level API
function registerOsraMessageListener(__namedParameters: { key?: string listener: (message: Message, messageContext: MessageContext) => void origin?: string remoteName?: string transport: ReceiveTransport unregisterSignal?: AbortSignal}): voidDefined in: utils/transport.ts:131
Parameters
Section titled “Parameters”__namedParameters
Section titled “__namedParameters”string = OSRA_DEFAULT_KEY
listener
Section titled “listener”(message: Message, messageContext: MessageContext) => void
origin?
Section titled “origin?”string = '*'
remoteName?
Section titled “remoteName?”string
transport
Section titled “transport”unregisterSignal?
Section titled “unregisterSignal?”AbortSignal
Returns
Section titled “Returns”void
sendOsraMessage()
Section titled “sendOsraMessage()”Guide: Low-level API
function sendOsraMessage( transport: EmitTransport, message: Message, origin?: string, transferables?: Transferable[],): voidDefined in: utils/transport.ts:221
Parameters
Section titled “Parameters”transport
Section titled “transport”message
Section titled “message”origin?
Section titled “origin?”string = '*'
transferables?
Section titled “transferables?”Transferable[] = []
Returns
Section titled “Returns”void
Type Aliases
Section titled “Type Aliases”Context
Section titled “Context”type Context = { abort?: () => void origin?: string port?: MessagePort | WebExtPort sender?: WebExtSender source?: MessageEventSource | null}Defined in: utils/transport.ts:21
What the local side knows about the realm on the other end of a connection.
origin and source are only OBSERVABLE on window transports. A MessagePort message carries
origin “” and source null, so for a port the identity has to be declared by whoever created the
transport, which is the side that received the port over a trustworthy window message. That is why
expose takes a context option rather than only reporting what it can see: without it, every
port-based consumer would rebuild the same out-of-band handshake to learn who it is talking to.
Properties
Section titled “Properties”abort?
Section titled “abort?”optional abort?: () => void;Defined in: utils/transport.ts:25
Tears down THIS connection and nothing else: the peer is sent a close, its revivables are torn
down, and it stops being tracked. unregisterSignal is the whole-expose equivalent; this is the
one a server reaches for when a single realm misbehaves or is finished with.
Returns
Section titled “Returns”void
origin?
Section titled “origin?”optional origin?: string;Defined in: utils/transport.ts:26
optional port?: MessagePort | WebExtPort;Defined in: utils/transport.ts:28
sender?
Section titled “sender?”optional sender?: WebExtSender;Defined in: utils/transport.ts:29
source?
Section titled “source?”optional source?: MessageEventSource | null;Defined in: utils/transport.ts:27
CustomEmitTransport
Section titled “CustomEmitTransport”Guide: Custom transports
type CustomEmitTransport = Extract< CustomTransport, { emit: any }>Defined in: utils/transport.ts:54
CustomReceiveTransport
Section titled “CustomReceiveTransport”Guide: Custom transports
type CustomReceiveTransport = Extract< CustomTransport, { receive: any }>Defined in: utils/transport.ts:55
CustomTransport
Section titled “CustomTransport”Guide: Custom transports
type CustomTransport = { isJson?: boolean;} & | { emit: CustomEmit; receive: CustomReceive;} | { receive: CustomReceive;} | { emit: CustomEmit;};Defined in: utils/transport.ts:46
Type Declaration
Section titled “Type Declaration”isJson?
Section titled “isJson?”optional isJson?: boolean;EmitHandler
Section titled “EmitHandler”Guide: Custom transports
type EmitHandler = (message: Message, transferables?: Transferable[]) => voidDefined in: utils/transport.ts:41
Parameters
Section titled “Parameters”message
Section titled “message”transferables?
Section titled “transferables?”Transferable[]
Returns
Section titled “Returns”void
EmitJsonPlatformTransport
Section titled “EmitJsonPlatformTransport”type EmitJsonPlatformTransport = WebSocket | WebExtPort | WebExtRuntimeDefined in: utils/transport.ts:57
EmitPlatformTransport
Section titled “EmitPlatformTransport”type EmitPlatformTransport = | EmitJsonPlatformTransport | Window | ServiceWorker | Worker | SharedWorker | MessagePort | WorkerSelfDefined in: utils/transport.ts:81
EmitTransport
Section titled “EmitTransport”type EmitTransport = EmitPlatformTransport | CustomEmitTransportDefined in: utils/transport.ts:103
JsonPlatformTransport
Section titled “JsonPlatformTransport”type JsonPlatformTransport = | { isJson: true } | EmitJsonPlatformTransport | ReceiveJsonPlatformTransportDefined in: utils/transport.ts:69
MessageContext
Section titled “MessageContext”Guide: Low-level API
type MessageContext = { origin?: string port?: MessagePort | WebExtPort receiveTransport?: ReceivePlatformTransport sender?: WebExtSender source?: MessageEventSource | null}Defined in: utils/transport.ts:32
Properties
Section titled “Properties”origin?
Section titled “origin?”optional origin?: string;Defined in: utils/transport.ts:37
optional port?: MessagePort | WebExtPort;Defined in: utils/transport.ts:33
receiveTransport?
Section titled “receiveTransport?”optional receiveTransport?: ReceivePlatformTransport;Defined in: utils/transport.ts:35
sender?
Section titled “sender?”optional sender?: WebExtSender;Defined in: utils/transport.ts:34
source?
Section titled “source?”optional source?: MessageEventSource | null;Defined in: utils/transport.ts:36
PlatformTransport
Section titled “PlatformTransport”Guide: Transports
type PlatformTransport = EmitPlatformTransport | ReceivePlatformTransportDefined in: utils/transport.ts:99
ReceiveHandler
Section titled “ReceiveHandler”Guide: Custom transports
type ReceiveHandler = ( listener: (event: Message, messageContext: MessageContext) => void,) => void | (() => void)Defined in: utils/transport.ts:40
Parameters
Section titled “Parameters”listener
Section titled “listener”(event: Message, messageContext: MessageContext) => void
Returns
Section titled “Returns”void | (() => void)
ReceiveJsonPlatformTransport
Section titled “ReceiveJsonPlatformTransport”type ReceiveJsonPlatformTransport = WebSocket | WebExtPort | WebExtOnConnect | WebExtOnMessage | WebExtRuntimeDefined in: utils/transport.ts:62
ReceivePlatformTransport
Section titled “ReceivePlatformTransport”type ReceivePlatformTransport = | ReceiveJsonPlatformTransport | Window | ServiceWorkerContainer | Worker | SharedWorker | MessagePort | WorkerSelfDefined in: utils/transport.ts:90
ReceiveTransport
Section titled “ReceiveTransport”type ReceiveTransport = ReceivePlatformTransport | CustomReceiveTransportDefined in: utils/transport.ts:104
Transport
Section titled “Transport”Guide: Transports
type Transport = PlatformTransport | CustomTransportDefined in: utils/transport.ts:106
WorkerSelf
Section titled “WorkerSelf”type WorkerSelf = { addEventListener: void postMessage: void removeEventListener: void}Defined in: utils/transport.ts:75
Methods
Section titled “Methods”addEventListener()
Section titled “addEventListener()”addEventListener(type: string, listener: (event: any) => void): void;Defined in: utils/transport.ts:77
Parameters
Section titled “Parameters”string
listener
Section titled “listener”(event: any) => void
Returns
Section titled “Returns”void
postMessage()
Section titled “postMessage()”postMessage(...args: any[]): void;Defined in: utils/transport.ts:76
Parameters
Section titled “Parameters”…any[]
Returns
Section titled “Returns”void
removeEventListener()
Section titled “removeEventListener()”removeEventListener(type: string, listener: (event: any) => void): void;Defined in: utils/transport.ts:78
Parameters
Section titled “Parameters”string
listener
Section titled “listener”(event: any) => void
Returns
Section titled “Returns”void