From fff118d9d221c1037fe35f10162b47d7a91bc1cb Mon Sep 17 00:00:00 2001 From: peter Date: Sat, 1 Feb 2020 11:08:48 +0100 Subject: [PATCH] fix bad rpc finding for class member --- package.json | 2 +- src/Backend.ts | 10 +++++----- src/Utils.ts | 11 ++++------- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index 4d3fc3f..1d751d3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rpclibrary", - "version": "1.6.2", + "version": "1.6.3", "description": "rpclibrary is a websocket on steroids!", "main": "./js/Index.js", "repository": { diff --git a/src/Backend.ts b/src/Backend.ts index 0273e18..51667aa 100644 --- a/src/Backend.ts +++ b/src/Backend.ts @@ -53,8 +53,8 @@ export class RPCServer< if(conf.connectionHandler) conf.connectionHandler(socket) } - let badRPC - if(badRPC = exporters.flatMap(ex => ex.exportRPCs()).find(rpc => !rpc.name)) + let badRPC = exporters.flatMap(ex => ex.exportRPCs()).find(rpc => !rpc.name) + if(badRPC) throw new Error(` RPC did not provide a name. \nUse 'funtion name(..){ .. }' syntax instead. @@ -69,14 +69,14 @@ export class RPCServer< try{ this.io.attach(this.ws) this.io.on('socket', (socket:I.Socket) => { - socket.on('error', (err) => this.errorHandler(socket, err, "bind", [])) + socket.on('error', (err) => this.errorHandler(socket, err, "system", [])) socket.on('close', () => this.closeHandler(socket)) this.connectionHandler(socket) this.initRPCs(socket) }) this.ws.listen(this.port, this.visibility) }catch(e){ - this.errorHandler(this.io, e, 'start', []) + this.errorHandler(this.io, e, 'system', []) } } @@ -87,7 +87,7 @@ export class RPCServer< ] } - async destroy(): Promise { + destroy(): void { this.io.close() this.ws.close() } diff --git a/src/Utils.ts b/src/Utils.ts index cfd6749..950c70a 100644 --- a/src/Utils.ts +++ b/src/Utils.ts @@ -8,6 +8,8 @@ import { SubscriptionResponse } from "./Types"; * Translate an RPC to RPCInfo for serialization. * @param rpc The RPC to transform * @param owner The owning RPC group's name + * @param errorHandler The error handler to invoke when something goes wrong + * @param sesame optional sesame phrase to prepend before all RPC arguments * @throws Error on RPC without name property */ export const rpcToRpcinfo = (socket: I.Socket, rpc : T.RPC, owner: string, errorHandler: T.ErrorHandler, sesame?:T.SesameFunction):T.RpcInfo => { @@ -66,13 +68,8 @@ export function rpcHooker(socket: I.Socket, exporter:I.RPCExporter const suffix = makeUnique?"-"+uuidv4().substr(0,4):"" const ret:any = info ret.uniqueName = info.name+suffix - - let rpcFunction - - if(info.type === 'Hook') - rpcFunction = info.generator(socket) - else - rpcFunction = info.call + let rpcFunction = info.type === 'Hook'? info.generator(socket) + : info.call socket.hook(ret.uniqueName, callGenerator(info.name, socket, rpcFunction, errorHandler)) return ret