@wishcore/wish-rpc 0.6.10 → 0.6.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,5 @@
1
- /// <reference types="node" />
2
- import { EventEmitter } from 'events';
3
1
  import { ResponseMessage } from './index';
4
- export declare class Client extends EventEmitter {
2
+ export declare class Client {
5
3
  private write;
6
4
  private requests;
7
5
  private id;
@@ -10,10 +10,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.Client = void 0;
13
- const events_1 = require("events");
14
- class Client extends events_1.EventEmitter {
13
+ class Client {
15
14
  constructor(write, opts) {
16
- super();
17
15
  this.write = write;
18
16
  this.requests = {};
19
17
  this.id = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-client.js","sourceRoot":"","sources":["../../src/rpc-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpc-client.js","sourceRoot":"","sources":["../../src/rpc-client.ts"],"names":[],"mappings":"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"}
@@ -208,6 +208,7 @@ class Server {
208
208
  }
209
209
  }
210
210
  invokeRaw(msg, respond, context, clientId) {
211
+ var _a, _b;
211
212
  ++this.requestId;
212
213
  if (!this.requests[clientId]) {
213
214
  return console.log('Session not opened for client. Use Server.open() first');
@@ -292,7 +293,7 @@ class Server {
292
293
  if (!this.requests[clientId]) {
293
294
  this.requests[clientId] = {};
294
295
  }
295
- if (this.requests[clientId][msg.id]) {
296
+ if ((_a = this.requests[clientId]) === null || _a === void 0 ? void 0 : _a[msg.id]) {
296
297
  console.log("Serious warning. There is already a request by that id, we'll kill it off! This session is likely not clean. clientId:", clientId, 'msg', msg, 'stack trace:', new Error().stack);
297
298
  if (typeof this.requests[clientId][msg.id].end === 'function') {
298
299
  this.requests[clientId][msg.id].end();
@@ -305,16 +306,18 @@ class Server {
305
306
  try {
306
307
  this.methods[msg.op].call(reqCtx, { args: msg.args }, {
307
308
  send: (data) => {
309
+ var _a;
308
310
  if (typeof reqCtx.end === 'function') {
309
311
  reqCtx.end();
310
312
  }
311
- if (this.requests[clientId][msg.id]) {
313
+ if ((_a = this.requests[clientId]) === null || _a === void 0 ? void 0 : _a[msg.id]) {
312
314
  delete this.requests[clientId][msg.id];
313
315
  }
314
316
  respond({ ack: msg.id, data: data });
315
317
  },
316
318
  emit: (data) => {
317
- if (!this.requests[clientId][msg.id]) {
319
+ var _a;
320
+ if (!((_a = this.requests[clientId]) === null || _a === void 0 ? void 0 : _a[msg.id])) {
318
321
  if (typeof reqCtx.end === 'function') {
319
322
  reqCtx.end();
320
323
  }
@@ -322,24 +325,26 @@ class Server {
322
325
  return respond({ sig: msg.id, data: data });
323
326
  },
324
327
  error: (data) => {
328
+ var _a;
325
329
  if (typeof reqCtx.end === 'function') {
326
330
  reqCtx.end();
327
331
  }
328
- delete this.requests[clientId][msg.id];
332
+ (_a = this.requests[clientId]) === null || _a === void 0 ? true : delete _a[msg.id];
329
333
  respond({ err: msg.id, data: data });
330
334
  },
331
335
  close: (data) => {
336
+ var _a;
332
337
  if (typeof reqCtx.end === 'function') {
333
338
  reqCtx.end();
334
339
  }
335
- delete this.requests[clientId][msg.id];
340
+ (_a = this.requests[clientId]) === null || _a === void 0 ? true : delete _a[msg.id];
336
341
  respond({ fin: msg.id });
337
342
  }
338
343
  }, context);
339
344
  }
340
345
  catch (e) {
341
346
  console.log('Calling the method in RPC failed:', msg.op, msg.args, e.stack);
342
- delete this.requests[clientId][msg.id];
347
+ (_b = this.requests[clientId]) === null || _b === void 0 ? true : delete _b[msg.id];
343
348
  respond({ err: msg.id, data: { msg: 'rpc failed during execution of ' + msg.op, code: 578 } });
344
349
  }
345
350
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-server.js","sourceRoot":"","sources":["../../src/rpc-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpc-server.js","sourceRoot":"","sources":["../../src/rpc-server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@wishcore/wish-rpc",
3
3
  "author": "André Kaustell <andre.kaustell@wishtech.fi>",
4
4
  "description": "An RPC implementation for Node.js, initally developed for the Wish project.",
5
- "version": "0.6.10",
5
+ "version": "0.6.12",
6
6
  "main": "dist/src/index.js",
7
7
  "license": "Apache-2.0",
8
8
  "repository": {
@@ -10,6 +10,7 @@
10
10
  "url": "git+ssh://wish.cto.fi:/git/wish-rpc#master"
11
11
  },
12
12
  "scripts": {
13
+ "build": "tsc",
13
14
  "test": "mocha --exit -r ts-node/register test/**/*.spec.ts",
14
15
  "test-only": "mocha --exit -r ts-node/register",
15
16
  "coverage": "istanbul cover --hook-run-in-context _mocha -- -R spec",
package/dist/index.d.ts DELETED
@@ -1,28 +0,0 @@
1
- export interface MethodMap {
2
- [endpoint: string]: any;
3
- }
4
- export interface RequestMessage {
5
- op: string;
6
- args?: any[];
7
- id?: number;
8
- push?: number;
9
- sig?: number;
10
- data?: any;
11
- end?: number;
12
- stream?: any;
13
- }
14
- export interface ResponseMessage {
15
- ack?: number;
16
- err?: number;
17
- sig?: number;
18
- end?: number;
19
- push?: number;
20
- data?: any;
21
- }
22
- export interface RequestMap {
23
- [clientId: string]: {
24
- [requestId: string]: any;
25
- };
26
- }
27
- export * from './rpc-client';
28
- export * from './rpc-server';
package/dist/index.js DELETED
@@ -1,8 +0,0 @@
1
- "use strict";
2
- function __export(m) {
3
- for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4
- }
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- __export(require("./rpc-client"));
7
- __export(require("./rpc-server"));
8
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AA+BA,kCAA6B;AAC7B,kCAA6B"}
@@ -1,17 +0,0 @@
1
- /// <reference types="node" />
2
- import { EventEmitter } from 'events';
3
- import { ResponseMessage } from 'src';
4
- export declare class Client extends EventEmitter {
5
- private write;
6
- private requests;
7
- private id;
8
- private mtu;
9
- constructor(write: (msg: ResponseMessage) => void, opts?: {
10
- mtu: number;
11
- });
12
- destroy(): void;
13
- messageReceived(msg: any, next: any): void;
14
- request(op: string, args: any[], cb: any): number | null;
15
- send(id: number, data: any): void;
16
- end(id: number): void;
17
- }
@@ -1,98 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const events_1 = require("events");
4
- class Client extends events_1.EventEmitter {
5
- constructor(write, opts) {
6
- super();
7
- this.write = write;
8
- this.requests = {};
9
- this.id = 0;
10
- this.mtu = 65535;
11
- if (opts && opts.mtu) {
12
- this.mtu = opts.mtu;
13
- }
14
- }
15
- destroy() {
16
- this.requests = null;
17
- this.write = null;
18
- }
19
- messageReceived(msg, next) {
20
- //console.log("RpcClient received message", msg);
21
- const end = !!(msg.err || msg.ack || msg.fin);
22
- const id = msg.ack || msg.err || msg.sig || msg.fin;
23
- const request = this.requests[id];
24
- let retval;
25
- if (request && typeof request.cb === 'function') {
26
- let err;
27
- if (msg.fin) {
28
- // This request closed gracefully
29
- request.cb.call(request.context, null, null, true);
30
- }
31
- else {
32
- if (request.canceled) {
33
- console.log('This request is canceled. Not calling the callback.');
34
- }
35
- else {
36
- // all is good, call the callback function
37
- err = msg.err ? msg.data : null;
38
- retval = request.cb.call(request.context, err, msg.data, end);
39
- }
40
- }
41
- }
42
- if (end) {
43
- //console.log("deleting this request", id);
44
- delete this.requests[id];
45
- }
46
- return retval;
47
- }
48
- request(op, args, cb) {
49
- if (typeof args === 'function') {
50
- cb = args;
51
- args = null;
52
- }
53
- if (!Array.isArray(args)) {
54
- args = typeof args === 'undefined' || args === null ? null : [args];
55
- }
56
- if (typeof cb !== 'function') {
57
- cb = null;
58
- }
59
- const msg = { op };
60
- if (Array.isArray(args)) {
61
- msg.args = args;
62
- }
63
- if (cb) {
64
- //console.log("we have a cb.", cb, new Error().stack);
65
- msg.id = ++this.id;
66
- this.requests[msg.id] = {
67
- cb: cb,
68
- context: {
69
- id: msg.id,
70
- cancel: () => {
71
- setTimeout(((id) => {
72
- return () => {
73
- if (this.requests[id]) {
74
- console.log('rpc-client.js: timeout, the request has not been removed while it was canceled', id, this.requests[id]);
75
- }
76
- };
77
- })(msg.id), 1500);
78
- this.requests[msg.id].canceled = true;
79
- this.write({ end: msg.id });
80
- },
81
- emit: (data) => {
82
- return this.write({ sig: msg.id, data: data });
83
- }
84
- }
85
- };
86
- }
87
- this.write(msg);
88
- return msg.id || null;
89
- }
90
- send(id, data) {
91
- this.write({ push: id, data });
92
- }
93
- end(id) {
94
- this.write({ end: id });
95
- }
96
- }
97
- exports.Client = Client;
98
- //# sourceMappingURL=rpc-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpc-client.js","sourceRoot":"","sources":["../src/rpc-client.ts"],"names":[],"mappings":"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"}
@@ -1,55 +0,0 @@
1
- /**
2
- * The idea is to be able to easily register methods/functions to be called
3
- * remotely, to enable access control and return data directly, asynchronously or
4
- * opening a stream which delivers data for long running tasks or large data
5
- * transfers.
6
- *
7
- * When registerCore is run with the wish core instance, it reads all objects
8
- * that have a property named "_". It scans those properties for properties
9
- * which have a descriptor property with the same name prepended with "_".
10
- *
11
- * Sub modules are not implemented yet, but an example should look like the
12
- * relay, module below.
13
- *
14
- * Ex.
15
- * rpc.insertMethods({
16
- * _doThis: {
17
- * doc: "This function does this, and emits progress each second and end.",
18
- * },
19
- * doThis: function(req,res) {
20
- * ...
21
- * },
22
- * _relay: {
23
- * doc: "A bunch of relay related functions"
24
- * },
25
- * relay: {
26
- * _test: {},
27
- * test: function() {},
28
- * _list: {},
29
- * list: function() {}
30
- * }
31
- * });
32
- */
33
- import { MethodMap, RequestMessage } from 'src';
34
- export declare class Server {
35
- private modules;
36
- private methods;
37
- private requests;
38
- private clientIdCounter;
39
- /** internal request id counter */
40
- private requestId;
41
- /** counting id for rpc invoke function */
42
- private invokeId;
43
- constructor(methods?: MethodMap);
44
- destroy(): void;
45
- insertMethods(o: any): void;
46
- addMethods(path: string, o: MethodMap): void;
47
- listMethods(args: any, context: any, cb: any): void;
48
- clientOffline(clientId: number): void;
49
- closeAll(): void;
50
- parse(msg: RequestMessage, respond: any, context: any, clientId: number): void;
51
- emit(op: string, data: any): void;
52
- invokeRaw(msg: RequestMessage, respond: any, context: any, clientId: any): void;
53
- close(clientId: number): void;
54
- open(): number;
55
- }
@@ -1,414 +0,0 @@
1
- "use strict";
2
- /**
3
- * The idea is to be able to easily register methods/functions to be called
4
- * remotely, to enable access control and return data directly, asynchronously or
5
- * opening a stream which delivers data for long running tasks or large data
6
- * transfers.
7
- *
8
- * When registerCore is run with the wish core instance, it reads all objects
9
- * that have a property named "_". It scans those properties for properties
10
- * which have a descriptor property with the same name prepended with "_".
11
- *
12
- * Sub modules are not implemented yet, but an example should look like the
13
- * relay, module below.
14
- *
15
- * Ex.
16
- * rpc.insertMethods({
17
- * _doThis: {
18
- * doc: "This function does this, and emits progress each second and end.",
19
- * },
20
- * doThis: function(req,res) {
21
- * ...
22
- * },
23
- * _relay: {
24
- * doc: "A bunch of relay related functions"
25
- * },
26
- * relay: {
27
- * _test: {},
28
- * test: function() {},
29
- * _list: {},
30
- * list: function() {}
31
- * }
32
- * });
33
- */
34
- Object.defineProperty(exports, "__esModule", { value: true });
35
- const debug = console.log;
36
- class Server {
37
- constructor(methods) {
38
- this.modules = {};
39
- this.methods = {};
40
- this.requests = {};
41
- this.clientIdCounter = 0;
42
- /** internal request id counter */
43
- this.requestId = 0;
44
- /** counting id for rpc invoke function */
45
- this.invokeId = 0;
46
- if (methods) {
47
- this.insertMethods(methods);
48
- }
49
- }
50
- destroy() {
51
- for (const i in this.requests) {
52
- for (const j in this.requests[i]) {
53
- if (typeof this.requests[i][j].end === 'function') {
54
- this.requests[i][j].end();
55
- }
56
- }
57
- delete this.requests[i];
58
- }
59
- }
60
- insertMethods(o) {
61
- const path = '';
62
- this.addMethods(path, o);
63
- }
64
- addMethods(path, o) {
65
- //console.log("addMethods", path, o);
66
- const prefix = path ? path + '.' : '';
67
- for (const i in o) {
68
- if (i === '_') {
69
- // module meta
70
- }
71
- else if (i.substring(0, 1) !== '_') {
72
- if (o['_' + i]) {
73
- // publish is _funcName exists for funcName
74
- if (typeof o[i] === 'function') {
75
- const ip = o['_' + i].name || i;
76
- o['_' + i].fullname = prefix + ip;
77
- try {
78
- this.modules[prefix + ip] = o['_' + i];
79
- this.methods[prefix + ip] = o[i];
80
- const acl = this.modules[prefix + ip].acl;
81
- const isPublic = this.modules[prefix + ip].public;
82
- // public property is deprecated, use acl = false instead
83
- if (isPublic) {
84
- delete this.modules[prefix + ip]['public'];
85
- }
86
- if (acl === false || isPublic === true) {
87
- // access control is explicitly disabled, allow access
88
- this.modules[prefix + ip].acl = false;
89
- }
90
- else if (acl === true || typeof acl === 'undefined') {
91
- this.modules[prefix + ip].acl = ['_call'];
92
- }
93
- if (Array.isArray(acl)) {
94
- if (acl.indexOf('_call') === -1) {
95
- this.modules[prefix + ip].acl.push('_call');
96
- }
97
- }
98
- //this.selfs[prefix + ip] = o;
99
- }
100
- catch (e) {
101
- console.log('Kaboom! ', e);
102
- }
103
- }
104
- else if (typeof o[i] === 'object') {
105
- // this is a sub item
106
- //this.modules[prefix + i] = o['_' + i];
107
- this.addMethods(prefix + i, o[i]);
108
- }
109
- }
110
- else {
111
- // no _funcName found, do not publish via RPC
112
- }
113
- }
114
- }
115
- }
116
- listMethods(args, context, cb) {
117
- const result = {};
118
- function copy(s, filter) {
119
- const d = {};
120
- for (const j in s) {
121
- if (filter[j]) {
122
- continue;
123
- }
124
- d[j] = s[j];
125
- }
126
- return d;
127
- }
128
- const filter = { fullname: true };
129
- //console.log("no acl.");
130
- for (const i in this.modules) {
131
- result[i] = copy(this.modules[i], filter);
132
- }
133
- cb(null, result);
134
- }
135
- clientOffline(clientId) {
136
- for (const i in this.requests[clientId]) {
137
- if (typeof this.requests[clientId][i].end === 'function') {
138
- this.requests[clientId][i].end();
139
- }
140
- //console.log("Ended due to client offline:", this.requests[clientId][i]);
141
- delete this.requests[clientId][i];
142
- }
143
- }
144
- closeAll() {
145
- for (const i in this.requests) {
146
- for (const j in this.requests[i]) {
147
- if (typeof this.requests[i][j].end === 'function') {
148
- this.requests[i][j].end();
149
- }
150
- //console.log("Ended due to client offline:", this.requests[i][j]);
151
- delete this.requests[i][j];
152
- }
153
- }
154
- }
155
- parse(msg, respond, context, clientId) {
156
- if (typeof clientId !== 'number') {
157
- //console.log("Got RPC request from unspecified client, setting clientId to __none.");
158
- return;
159
- }
160
- try {
161
- if (msg.push) {
162
- if (this.requests[clientId] && this.requests[clientId][msg.push]) {
163
- this.invokeRaw(msg, respond, this.requests[clientId][msg.push].context, clientId);
164
- }
165
- return;
166
- }
167
- if (msg.sig) {
168
- if (this.requests[clientId] && this.requests[clientId][msg.sig]) {
169
- this.invokeRaw(msg, respond, this.requests[clientId][msg.sig].context, clientId);
170
- }
171
- return;
172
- }
173
- if (msg.end) {
174
- const id = msg.end;
175
- //console.log("end this request:", clientId, id, this.requests[clientId] ? this.requests[clientId][id] : this.requests);
176
- if (this.requests[clientId] && this.requests[clientId][id]) {
177
- if (typeof this.requests[clientId][id].end === 'function') {
178
- this.requests[clientId][id].end();
179
- }
180
- respond({ fin: id });
181
- delete this.requests[clientId][id];
182
- return;
183
- }
184
- if (!this.requests[clientId][id]) {
185
- return; // console.log("No such request...", id, clientId, new Error().stack, this.requests[clientId], this.requests);
186
- }
187
- if (typeof this.requests[clientId][id].end === 'function') {
188
- this.requests[id].end();
189
- }
190
- return;
191
- }
192
- if (msg.op === 'methods') {
193
- this.listMethods(msg.args, context, function (err, data) {
194
- respond({ ack: msg.id, data: data });
195
- });
196
- return;
197
- }
198
- if (typeof this.methods[msg.op] === 'undefined') {
199
- // service not found
200
- respond({ err: msg.id, data: { code: 300, msg: 'No method found: ' + msg.op } });
201
- return;
202
- }
203
- this.invokeRaw(msg, respond, context, clientId);
204
- }
205
- catch (e) {
206
- debug('Dynamic RPC failed to execute ', msg.op, e, e.stack);
207
- try {
208
- console.log('RPC caught error', e.stack);
209
- respond({ ack: msg.id, err: msg.id, data: 'caught error in ' + msg.op + ': ' + e.toString(), debug: e.stack });
210
- }
211
- catch (e) {
212
- respond({ err: msg.id, data: 'rpc', errmsg: e.toString() });
213
- }
214
- }
215
- }
216
- emit(op, data) {
217
- for (const client in this.requests) {
218
- if (this.requests[client]) {
219
- for (const id in this.requests[client]) {
220
- if (this.requests[client][id].op === op) {
221
- const { send } = this.requests[client][id];
222
- send({ sig: id, data });
223
- }
224
- }
225
- }
226
- }
227
- }
228
- invokeRaw(msg, respond, context, clientId) {
229
- ++this.requestId;
230
- if (!this.requests[clientId]) {
231
- return console.log('Session not opened for client. Use Server.open() first');
232
- }
233
- if (msg.push) {
234
- // we got a sig from client... neat, must be streaming!
235
- const ctx = this.requests[clientId][msg.push];
236
- //console.log('stream context:', ctx);
237
- if (msg.data === null) {
238
- console.log('msg.data is null:', msg);
239
- return;
240
- }
241
- ctx.data(msg.data);
242
- return;
243
- }
244
- if (msg.sig) {
245
- // we got a sig from client... neat, must be streaming!
246
- const ctx = this.requests[clientId][msg.sig];
247
- // call the actual method
248
- try {
249
- this.methods[ctx.op].call(this.requests[clientId][msg.sig], msg.data, {
250
- send: (data) => {
251
- if (typeof ctx.end === 'function') {
252
- ctx.end();
253
- }
254
- if (this.requests[clientId][msg.sig]) {
255
- delete this.requests[clientId][msg.sig];
256
- }
257
- respond({ ack: msg.sig, data: data });
258
- },
259
- emit: (data) => {
260
- if (!this.requests[clientId][msg.sig]) {
261
- if (typeof ctx.end === 'function') {
262
- ctx.end();
263
- }
264
- }
265
- return respond({ sig: msg.sig, data: data });
266
- },
267
- error: (data) => {
268
- if (typeof ctx.end === 'function') {
269
- ctx.end();
270
- }
271
- delete this.requests[clientId][msg.sig];
272
- respond({ err: msg.sig, data: data });
273
- },
274
- close: (data) => {
275
- if (typeof ctx.end === 'function') {
276
- ctx.end();
277
- }
278
- delete this.requests[clientId][msg.sig];
279
- respond({ fin: msg.sig });
280
- }
281
- }, context);
282
- }
283
- catch (e) {
284
- console.log('Calling the method in RPC failed:', msg.op, msg.args, e.stack);
285
- delete this.requests[clientId][msg.sig];
286
- respond({ err: msg.sig, data: { msg: 'rpc failed during execution of ' + msg.op, code: 578 } });
287
- }
288
- return;
289
- }
290
- if (typeof msg.id === 'undefined') {
291
- // this is an event
292
- const reqCtx = {};
293
- this.methods[msg.op].call(reqCtx, { args: msg.args }, {
294
- send: () => { debug('Trying to send response to event (' + msg.op + '). Dropping.'); },
295
- emit: () => { debug('Trying to emit response to event (' + msg.op + '). Dropping.'); },
296
- error: () => { debug('Trying to respond with error to event (' + msg.op + '). Dropping.'); },
297
- close: () => { debug('Trying to close event (' + msg.op + '). Dropping.'); }
298
- }, context);
299
- }
300
- else {
301
- // this is a regular rpc request
302
- const reqCtx = {
303
- id: msg.id,
304
- op: msg.op,
305
- args: msg.args,
306
- context,
307
- end: null,
308
- send: respond,
309
- };
310
- if (!this.requests[clientId]) {
311
- this.requests[clientId] = {};
312
- }
313
- if (this.requests[clientId][msg.id]) {
314
- console.log("Serious warning. There is already a request by that id, we'll kill it off! This session is likely not clean. clientId:", clientId, 'msg', msg, 'stack trace:', new Error().stack);
315
- if (typeof this.requests[clientId][msg.id].end === 'function') {
316
- this.requests[clientId][msg.id].end();
317
- }
318
- delete this.requests[clientId][msg.id];
319
- console.log('Removed old request by same id from same client...');
320
- }
321
- this.requests[clientId][msg.id] = reqCtx;
322
- // call the actual method
323
- try {
324
- this.methods[msg.op].call(reqCtx, { args: msg.args }, {
325
- send: (data) => {
326
- if (typeof reqCtx.end === 'function') {
327
- reqCtx.end();
328
- }
329
- if (this.requests[clientId][msg.id]) {
330
- delete this.requests[clientId][msg.id];
331
- }
332
- respond({ ack: msg.id, data: data });
333
- },
334
- emit: (data) => {
335
- if (!this.requests[clientId][msg.id]) {
336
- if (typeof reqCtx.end === 'function') {
337
- reqCtx.end();
338
- }
339
- }
340
- return respond({ sig: msg.id, data: data });
341
- },
342
- error: (data) => {
343
- if (typeof reqCtx.end === 'function') {
344
- reqCtx.end();
345
- }
346
- delete this.requests[clientId][msg.id];
347
- respond({ err: msg.id, data: data });
348
- },
349
- close: (data) => {
350
- if (typeof reqCtx.end === 'function') {
351
- reqCtx.end();
352
- }
353
- delete this.requests[clientId][msg.id];
354
- respond({ fin: msg.id });
355
- }
356
- }, context);
357
- }
358
- catch (e) {
359
- console.log('Calling the method in RPC failed:', msg.op, msg.args, e.stack);
360
- delete this.requests[clientId][msg.id];
361
- respond({ err: msg.id, data: { msg: 'rpc failed during execution of ' + msg.op, code: 578 } });
362
- }
363
- }
364
- }
365
- /*
366
- invoke(op: string, args: any[], stream: any, cb): void {
367
- if(typeof stream === 'function') { cb = stream; stream = null; }
368
-
369
- if( !Array.isArray(args) ) {
370
- args = [args];
371
- }
372
-
373
- if (typeof cb !== 'function') {
374
- throw new Error('RPC invoke requires callback function as third argument');
375
- }
376
-
377
- const msg: RequestMessage = {
378
- op,
379
- args,
380
- stream,
381
- id: ++this.invokeId
382
- };
383
- const context = {
384
- clientType: 'invoke',
385
- clientId: 'invokedViaRPCInvoke'
386
- };
387
-
388
- const response = (reply) => {
389
- const ctx = { cancel: () => { this.parse({ end: msg.id }, () => { }, {}, 0); }, id: msg.id };
390
- process.nextTick(() => {
391
- cb.call(ctx, reply.err ? true : null, reply.data);
392
- });
393
- };
394
-
395
- this.parse(msg, response, context, '__invoke');
396
- }
397
- */
398
- close(clientId) {
399
- for (const i in this.requests[clientId]) {
400
- if (typeof this.requests[clientId][i].end === 'function') {
401
- this.requests[clientId][i].end();
402
- }
403
- delete this.requests[clientId][i];
404
- }
405
- delete this.requests[clientId];
406
- }
407
- open() {
408
- const clientId = ++this.clientIdCounter;
409
- this.requests[clientId] = {};
410
- return clientId;
411
- }
412
- }
413
- exports.Server = Server;
414
- //# sourceMappingURL=rpc-server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpc-server.js","sourceRoot":"","sources":["../src/rpc-server.ts"],"names":[],"mappings":"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"}