跳到內容

Service

本頁內容尚未翻譯。

Defined in: Contract.ts:20

RPC types stay inside the descriptor; Graft supplies its dynamic activation context.

Type Parameter Default type
R never
ClientR never
readonly group: Pick<RpcGroup.RpcGroup<Rpc.Any>, "requests">;

Defined in: Contract.ts:22


readonly key: Key<unknown, unknown>;

Defined in: Contract.ts:21


readonly publish: (port: {
clientProtocol: (endpoint: string) => {
codecFor: CodecFor;
run: (clientId: number, f: (data: FromServerEncoded) => Effect<void>) => Effect<never>;
send: (clientId: number, request: FromClientEncoded, transferables?: readonly Transferable[]) => Effect<void, RpcClientError>;
supportsAck: boolean;
supportsTransferables: boolean;
};
}) => Effect<void, ServiceConflict, Scope | Graft | ClientR>;

Defined in: Contract.ts:26

Parameter Type
port { clientProtocol: (endpoint: string) => { codecFor: CodecFor; run: (clientId: number, f: (data: FromServerEncoded) => Effect<void>) => Effect<never>; send: (clientId: number, request: FromClientEncoded, transferables?: readonly Transferable[]) => Effect<void, RpcClientError>; supportsAck: boolean; supportsTransferables: boolean; }; }
port.clientProtocol (endpoint: string) => { codecFor: CodecFor; run: (clientId: number, f: (data: FromServerEncoded) => Effect<void>) => Effect<never>; send: (clientId: number, request: FromClientEncoded, transferables?: readonly Transferable[]) => Effect<void, RpcClientError>; supportsAck: boolean; supportsTransferables: boolean; }

Effect<void, ServiceConflict, Scope | Graft | ClientR>


readonly serve: (port: {
serverProtocol: (endpoint: string) => {
clientIds: Effect<ReadonlySet<number>>;
codecFor: CodecFor;
disconnects: Dequeue<number>;
end: (clientId: number) => Effect<void>;
initialMessage: Effect<Option<unknown>>;
run: (f: (clientId: number, data: FromClientEncoded) => Effect<void>) => Effect<never>;
send: (clientId: number, response: FromServerEncoded, transferables?: readonly Transferable[]) => Effect<void>;
supportsAck: boolean;
supportsNotifications: boolean;
supportsSpanPropagation: boolean;
supportsTransferables: boolean;
};
}) => Effect<never, never, R>;

Defined in: Contract.ts:23

Parameter Type
port { serverProtocol: (endpoint: string) => { clientIds: Effect<ReadonlySet<number>>; codecFor: CodecFor; disconnects: Dequeue<number>; end: (clientId: number) => Effect<void>; initialMessage: Effect<Option<unknown>>; run: (f: (clientId: number, data: FromClientEncoded) => Effect<void>) => Effect<never>; send: (clientId: number, response: FromServerEncoded, transferables?: readonly Transferable[]) => Effect<void>; supportsAck: boolean; supportsNotifications: boolean; supportsSpanPropagation: boolean; supportsTransferables: boolean; }; }
port.serverProtocol (endpoint: string) => { clientIds: Effect<ReadonlySet<number>>; codecFor: CodecFor; disconnects: Dequeue<number>; end: (clientId: number) => Effect<void>; initialMessage: Effect<Option<unknown>>; run: (f: (clientId: number, data: FromClientEncoded) => Effect<void>) => Effect<never>; send: (clientId: number, response: FromServerEncoded, transferables?: readonly Transferable[]) => Effect<void>; supportsAck: boolean; supportsNotifications: boolean; supportsSpanPropagation: boolean; supportsTransferables: boolean; }

Effect<never, never, R>