@mainframe/rpc-base
v0.3.0
Published
Base RPC class
Downloads
74
Keywords
Readme
rpc-base
Abstract class to handle JSON-RPC 2.0 calls, used by rpc-request
and rpc-stream
.
Installation
yarn add @mainframe/rpc-base
Usage
import BaseRPC from '@mainframe/rpc-base'
class MyRPC extends BaseRPC {
request(...params: any): Promise<any> {
// ...
}
}
Types
RPCID
type RPCID = string | number | null
RPCRequest
interface RPCRequest<T = any> {
jsonrpc: '2.0'
method: string
id?: RPCID
params?: T
}
RPCError
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>;
}
API
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
Returns Promise<T = any>
License
MIT