Base RPC class and types
Purpose
Abstract class to handle JSON-RPC 2.0 calls, used by the RequestRPC
and StreamRPC
classes.
Installation
npm install @erebos/rpc-base
Usage
import { BaseRPC } from '@erebos/rpc-base'
class MyRPC extends BaseRPC {
request(...params: any): Promise<any> {
// ...
}
}
Interfaces and types
RPCID
type RPCID = string | number | null
RPCRequest
interface RPCRequest<T = any> {
jsonrpc: '2.0'
method: string
id?: RPCID
params?: T
}
RPCErrorObject
interface RPCErrorObject<T = any> {
code: number;
message?: ?string;
data?: T;
}
RPCResponse
interface RPCResponse<T = any, E = any> {
jsonrpc: '2.0'
id: RPCID
result?: T
error?: RPCErrorObject<E>
}
BaseRPC class
new BaseRPC()
Arguments
canSubscribe: boolean = false
: whether subscription calls (using a stateful connection) are supported by the implementation or not.
.canSubscribe
Returns boolean
.createID()
Returns string
: an unique ID for RPC calls.
.request()
⚠️ This is an abstract method, it must be implemented by extending classes
Arguments
method: string
params?: P = any
Returns Promise<T = any>