@erebos/rpc-stream

Stream-based RPC

Usage no npm install needed!

<script type="module">
  import erebosRpcStream from 'https://cdn.skypack.dev/@erebos/rpc-stream';
</script>

README

rpc-stream

Class extending rpc-base to handle stateful JSON-RPC 2.0 calls.

See transport-ipc, transport-ws-browser and transport-ws-node for possible transports and rpc-request to handle stateless JSON-RPC 2.0 calls.

Installation

yarn add @erebos/rpc-stream

Usage

import StreamRPC from '@erebos/rpc-stream'
import ipcTransport from '@erebos/transport-ipc'

class MyAPI extends StreamRPC {
  constructor(path: string) {
    super(ipcTransport(path))
  }

  getUser(id: string): Promise<{ name: string }> {
    return this.request('getUser', [id])
  }
}

const api = new MyAPI('/path/to/socket')
api.getUser('1234')

API

See the BaseRPC API for inherited methods and properties.

new StreamRPC()

Arguments

  1. subject: Subject: a RxJS Subject handling communication with the server.

.request()

Arguments

  1. method: string
  2. params: T = any

Returns Promise<R = any>

License

MIT