Nincompoops Producing Methane

    @mainframe/rpc-base
    TypeScript icon, indicating that this package has built-in type declarations

    0.3.0 • Public • Published

    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

    1. 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

    1. method: string
    2. params?: P

    Returns Promise<T = any>

    License

    MIT

    Keywords

    none

    Install

    npm i @mainframe/rpc-base

    DownloadsWeekly Downloads

    5

    Version

    0.3.0

    License

    MIT

    Unpacked Size

    4.92 kB

    Total Files

    6

    Last publish

    Collaborators

    • aclarke
    • diogoperillo
    • howleysv
    • mosic
    • paul_lecam
    • sarahwiley