Skip to content
3 min read · 504 words

Class: HostEndpoint

Defined in: src/batteries/isolation/protocol.ts:111

Host-side correlation engine over a PortLike. Queues calls/stream-starts made before ready and flushes them in order once it arrives; tracks in-flight calls (one-shot, resolved/rejected by a result envelope) and open streams (persistent, fed by stream:delta/stream:end/stream:error until closed). terminate() rejects every in-flight call and errors every open stream with a caller-supplied reason (the message text host.ts uses is E_ISOLATED_TERMINATED's message).

Constructors

Constructor

ts
new HostEndpoint(port: PortLike, hooks?: HostEndpointHooks): HostEndpoint;

Defined in: src/batteries/isolation/protocol.ts:121

Parameters

ParameterType
portPortLike
hooksHostEndpointHooks

Returns

HostEndpoint

Accessors

isReady

Get Signature

ts
get isReady(): boolean;

Defined in: src/batteries/isolation/protocol.ts:128

Whether the guest has signaled ready yet.

Returns

boolean


openStreamCount

Get Signature

ts
get openStreamCount(): number;

Defined in: src/batteries/isolation/protocol.ts:140

Number of streams currently open (started, not yet ended/errored). Used by host.ts alongside pendingCallCount to report an accurate inFlight count on a crash.

Returns

number


pendingCallCount

Get Signature

ts
get pendingCallCount(): number;

Defined in: src/batteries/isolation/protocol.ts:134

Number of calls currently awaiting a result envelope. Used by host.ts to report an accurate inFlight count on a crash before terminate() clears the pending map.

Returns

number

Methods

abort()

ts
abort(id: string): void;

Defined in: src/batteries/isolation/protocol.ts:223

Send an abort envelope for an in-flight call's id. Does not itself reject the call — the guest is expected to respond with a result (ok:false) once it observes the abort.

Parameters

ParameterType
idstring

Returns

void


call()

ts
call(method: string, args: WireValue[]): {
  id: string;
  promise: Promise<WireValue>;
};

Defined in: src/batteries/isolation/protocol.ts:208

Issue a request/response call. Resolves with the guest's returned WireValue, rejects with a reconstructed Error (see wireErrorToError) on failure or on terminate().

Parameters

ParameterType
methodstring
argsWireValue[]

Returns

ts
{
  id: string;
  promise: Promise<WireValue>;
}
NameTypeDefined in
idstringsrc/batteries/isolation/protocol.ts:208
promisePromise<WireValue>src/batteries/isolation/protocol.ts:208

cancelStream()

ts
cancelStream(id: string, reason?: WireValue): void;

Defined in: src/batteries/isolation/protocol.ts:240

Send a stream:cancel envelope and stop tracking the stream locally.

Parameters

ParameterType
idstring
reason?WireValue

Returns

void


shutdown()

ts
shutdown(): void;

Defined in: src/batteries/isolation/protocol.ts:246

Send a shutdown envelope (graceful-exit request; does not itself tear down the port).

Returns

void


startStream()

ts
startStream(
   stream: string,
   args: WireValue[],
   sink: StreamSink): string;

Defined in: src/batteries/isolation/protocol.ts:232

Start a fire-and-forward stream. Returns the correlation id immediately (before the guest necessarily even exists, if not yet ready) and a sink the caller wires to a ReadableStream controller.

Parameters

ParameterType
streamstring
argsWireValue[]
sinkStreamSink

Returns

string


terminate()

ts
terminate(reason: string): void;

Defined in: src/batteries/isolation/protocol.ts:254

Reject every in-flight call and error every open stream with reason, clear all queued-but-unsent envelopes, and unsubscribe from the port. Idempotent.

Parameters

ParameterType
reasonstring

Returns

void