UNPKG

opendb_test_rpc

Version:

general purpose library for OpenDB blockchain

69 lines 4.83 kB
import debugFactory from 'debug'; import { RpcWebSocketClient } from './rpc'; export default class RPCClient { constructor(endpoint) { this.isConnected = false; this.endpoint = endpoint; this.debug = debugFactory('openDB:ws'); this.rpc = new RpcWebSocketClient(); this.rpc.onClose(this.reconnect); } async connect() { this.debug('About to connect to remote API node ws endpoint'); if (this.isConnected) { return; } try { await this.rpc.connect(this.endpoint); } catch (error) { console.error('OpenDB API ws connectoin error', error); throw error; } this.isConnected = true; this.debug('Already init connection to remote endpoint'); } // TSES-lint: In call method params to change (any - unknown) for lint error async call(method, params) { if (!this.isConnected && !this.endpoint) { this.debug('Empty endpoint and no established connection, abort sending'); return false; } this.debug('Sending message: ', JSON.stringify({ method, params }, null, 2)); try { // TSES-lint: 'result' is never reassigned. Use 'const' instead const result = await this.rpc.call(method, params); return result; } catch (error) { console.error('OpenDB API ws call error', error); throw error; } } // -------TODO: Unused Function Notify // public async notify(method: string, params?: any) { // if (!this.isConnected && !this.endpoint) { // this.debug('Empty endpoint and no established connection, abort sending') // return false // } // this.debug( // 'Sending notification: ', // JSON.stringify({ method, params }, null, 2) // ) // try { // let result = await this.rpc.notify(method, params) // return result // } catch (error) { // console.error('OpenDB API ws call error', error) // throw error // } // } reconnect() { if (this.endpoint === undefined) { this.debug('No endpoint for reconnection'); return false; } return this.connect(); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sWUFBMkIsTUFBTSxPQUFPLENBQUE7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sT0FBTyxDQUFBO0FBYzFDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sU0FBUztJQVE1QixZQUFZLFFBQVE7UUFOYixnQkFBVyxHQUFZLEtBQUssQ0FBQTtRQU9qQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUV0QyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQTtRQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQTtRQUU3RCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixPQUFNO1FBQ1IsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3ZDLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsRUFBRSxLQUFLLENBQUMsQ0FBQTtZQUN0RCxNQUFNLEtBQUssQ0FBQTtRQUNiLENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQTtRQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUE7SUFDMUQsQ0FBQztJQUNELDRFQUE0RTtJQUNyRSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQWMsRUFBRSxNQUFnQjtRQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLDZEQUE2RCxDQUFDLENBQUE7WUFDekUsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzVFLElBQUksQ0FBQztZQUNILCtEQUErRDtZQUMvRCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUNsRCxPQUFPLE1BQU0sQ0FBQTtRQUNmLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsRUFBRSxLQUFLLENBQUMsQ0FBQTtZQUNoRCxNQUFNLEtBQUssQ0FBQTtRQUNiLENBQUM7SUFDSCxDQUFDO0lBQ0Qsc0NBQXNDO0lBQ3RDLHNEQUFzRDtJQUN0RCwrQ0FBK0M7SUFDL0MsZ0ZBQWdGO0lBQ2hGLG1CQUFtQjtJQUNuQixNQUFNO0lBRU4sZ0JBQWdCO0lBQ2hCLGdDQUFnQztJQUNoQyxrREFBa0Q7SUFDbEQsTUFBTTtJQUNOLFVBQVU7SUFDVix5REFBeUQ7SUFDekQsb0JBQW9CO0lBQ3BCLHNCQUFzQjtJQUN0Qix1REFBdUQ7SUFDdkQsa0JBQWtCO0lBQ2xCLE1BQU07SUFDTixJQUFJO0lBRUksU0FBUztRQUNmLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUE7WUFDMUMsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDdkIsQ0FBQztDQUNGIn0=