opendb_test_rpc
Version:
general purpose library for OpenDB blockchain
73 lines • 4.96 kB
JavaScript
import debugFactory from 'debug';
import { RpcWebSocketClient } from './rpc';
export default class RPCClient {
endpoint;
isConnected = false;
rpc;
// debugger
debug;
constructor(endpoint) {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sWUFBMkIsTUFBTSxPQUFPLENBQUE7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sT0FBTyxDQUFBO0FBYzFDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sU0FBUztJQUNyQixRQUFRLENBQVE7SUFDaEIsV0FBVyxHQUFZLEtBQUssQ0FBQTtJQUM1QixHQUFHLENBQW9CO0lBRTlCLFdBQVc7SUFDSCxLQUFLLENBQVc7SUFFeEIsWUFBWSxRQUFRO1FBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBRXRDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFBO1FBQ25DLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU87UUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFBO1FBRTdELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLE9BQU07UUFDUixDQUFDO1FBRUQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDdkMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxFQUFFLEtBQUssQ0FBQyxDQUFBO1lBQ3RELE1BQU0sS0FBSyxDQUFBO1FBQ2IsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQTtJQUMxRCxDQUFDO0lBQ0QsNEVBQTRFO0lBQ3JFLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBYyxFQUFFLE1BQWdCO1FBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsNkRBQTZELENBQUMsQ0FBQTtZQUN6RSxPQUFPLEtBQUssQ0FBQTtRQUNkLENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDNUUsSUFBSSxDQUFDO1lBQ0gsK0RBQStEO1lBQy9ELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFBO1lBQ2xELE9BQU8sTUFBTSxDQUFBO1FBQ2YsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxDQUFBO1lBQ2hELE1BQU0sS0FBSyxDQUFBO1FBQ2IsQ0FBQztJQUNILENBQUM7SUFDRCxzQ0FBc0M7SUFDdEMsc0RBQXNEO0lBQ3RELCtDQUErQztJQUMvQyxnRkFBZ0Y7SUFDaEYsbUJBQW1CO0lBQ25CLE1BQU07SUFFTixnQkFBZ0I7SUFDaEIsZ0NBQWdDO0lBQ2hDLGtEQUFrRDtJQUNsRCxNQUFNO0lBQ04sVUFBVTtJQUNWLHlEQUF5RDtJQUN6RCxvQkFBb0I7SUFDcEIsc0JBQXNCO0lBQ3RCLHVEQUF1RDtJQUN2RCxrQkFBa0I7SUFDbEIsTUFBTTtJQUNOLElBQUk7SUFFSSxTQUFTO1FBQ2YsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQTtZQUMxQyxPQUFPLEtBQUssQ0FBQTtRQUNkLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUN2QixDQUFDO0NBQ0YifQ==