request_tracker.svelte.ts

Declarations
#

2 declarations

view source

RequestTracker
#

request_tracker.svelte.ts view source

Tracks RPC requests and their responses to manage promises and timeouts. Used by transports to handle the request-response lifecycle.

pending_requests

type SvelteMap<JsonrpcRequestId, RequestTrackerItem>

readonly

request_timeout_ms

type number

readonly

constructor

type new (request_timeout_ms?: number): RequestTracker

request_timeout_ms
type number
default 120_000

track_request

Track a new request with the given id.

type (id: string | number): Deferred<{ [x: string]: unknown; jsonrpc: "2.0"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: "2.0"; id: string | number | null; error: { ...; }; }>

id

The request id

type string | number
returns Deferred<{ [x: string]: unknown; jsonrpc: "2.0"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: "2.0"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | ... 4 more ... | (number & $brand<...>); messag...

A deferred promise that will be resolved when the response is received

resolve_request

Resolve a pending request with the given response data.

type (id: string | number, response: { [x: string]: unknown; jsonrpc: "2.0"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: "2.0"; id: string | number | null; error: { ...; }; }): void

id

The request id

type string | number
response

The response data

type { [x: string]: unknown; jsonrpc: "2.0"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: "2.0"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | ... 4 more ... | (number & $brand<...>); message: string...
returns void

reject_request

Reject a pending request with the given error.

type (id: string | number, error_message: { [x: string]: unknown; jsonrpc: "2.0"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | -32600 | -32601 | -32602 | -32603 | (number & $brand<"JsonrpcServerErrorCode">); message: string; data?: unknown; }; }): void

id

The request id

type string | number
error_message

The complete JsonrpcErrorMessage object

type { [x: string]: unknown; jsonrpc: "2.0"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | -32600 | -32601 | -32602 | -32603 | (number & $brand<"JsonrpcServerErrorCode">); message: string; data?: unknown; }; }
returns void

handle_message

Handle an incoming JSON-RPC message. Resolves or rejects the associated request. Ignores notifications and unknown/invalid messages.

type (message: any): void

message
type any
returns void

cancel_request

Cancel a pending request.

type (id: string | number): void

id

The request id

type string | number
returns void

cancel_all_requests

Cancel all pending requests.

type (reason?: string | undefined): void

reason?

Optional reason to include in rejection

type string | undefined
optional
returns void

RequestTrackerItem
#

request_tracker.svelte.ts view source

Represents a pending request with its associated state.

id

type JsonrpcRequestId

readonly

deferred

type Deferred<JsonrpcResponseOrError>

readonly

created

type Datetime

readonly

status

type AsyncStatus

timeout

type NodeJS.Timeout | undefined

constructor

type new (id: string | number, deferred: Deferred<{ [x: string]: unknown; jsonrpc: "2.0"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: "2.0"; id: string | number | null; error: { ...; }; }>, created: string & $brand<...>, status: AsyncStatus, timeout: Timeout | undefined): RequestTrackerItem

id
type string | number
deferred
type Deferred<{ [x: string]: unknown; jsonrpc: "2.0"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: "2.0"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | ... 4 more ... | (number & $brand<...>); messag...
created
type string & $brand<"Datetime">
status
type AsyncStatus
timeout
type Timeout | undefined

Depends on
#

Imported by
#