cry-ebus2 3.1.7 → 3.1.8

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.
Files changed (117) hide show
  1. package/dist/EbusClientEvents.js +1 -2
  2. package/dist/EbusConfiguration.js +1 -2
  3. package/dist/EbusReject.js +1 -5
  4. package/dist/EbusReject.js.map +1 -1
  5. package/dist/EbusRejectReason.js +1 -2
  6. package/dist/EbusRequestOptions.js +1 -2
  7. package/dist/EbusUnpackedResult.d.ts +1 -1
  8. package/dist/EbusUnpackedResult.js +8 -12
  9. package/dist/EbusUnpackedResult.js.map +1 -1
  10. package/dist/block.js +1 -5
  11. package/dist/block.js.map +1 -1
  12. package/dist/broker.d.ts +2 -2
  13. package/dist/broker.js +42 -46
  14. package/dist/broker.js.map +1 -1
  15. package/dist/client.js +1 -5
  16. package/dist/client.js.map +1 -1
  17. package/dist/clientBlocking.js +35 -39
  18. package/dist/clientBlocking.js.map +1 -1
  19. package/dist/clientNonBlocking.d.ts +1 -1
  20. package/dist/clientNonBlocking.d.ts.map +1 -1
  21. package/dist/clientNonBlocking.js +44 -52
  22. package/dist/clientNonBlocking.js.map +1 -1
  23. package/dist/consts.js +1 -4
  24. package/dist/consts.js.map +1 -1
  25. package/dist/deferredPromise.d.ts +36 -0
  26. package/dist/deferredPromise.d.ts.map +1 -0
  27. package/dist/deferredPromise.js +56 -0
  28. package/dist/deferredPromise.js.map +1 -0
  29. package/dist/delayWorker.js +6 -10
  30. package/dist/delayWorker.js.map +1 -1
  31. package/dist/echoWorker.js +4 -8
  32. package/dist/echoWorker.js.map +1 -1
  33. package/dist/errorWorker.js +6 -10
  34. package/dist/errorWorker.js.map +1 -1
  35. package/dist/index.js +15 -33
  36. package/dist/index.js.map +1 -1
  37. package/dist/loadConfiguration.js +4 -8
  38. package/dist/loadConfiguration.js.map +1 -1
  39. package/dist/pub.js +9 -13
  40. package/dist/pub.js.map +1 -1
  41. package/dist/rejectWorker.js +6 -10
  42. package/dist/rejectWorker.js.map +1 -1
  43. package/dist/run/all.js +12 -14
  44. package/dist/run/all.js.map +1 -1
  45. package/dist/run/broker.mjs +4 -6
  46. package/dist/run/broker.mjs.map +1 -1
  47. package/dist/run/call.js +13 -15
  48. package/dist/run/call.js.map +1 -1
  49. package/dist/run/calling.js +6 -8
  50. package/dist/run/calling.js.map +1 -1
  51. package/dist/run/callingBurst.js +6 -8
  52. package/dist/run/callingBurst.js.map +1 -1
  53. package/dist/run/delay.mjs +4 -6
  54. package/dist/run/delay.mjs.map +1 -1
  55. package/dist/run/echo.mjs +4 -6
  56. package/dist/run/echo.mjs.map +1 -1
  57. package/dist/run/error.mjs +4 -6
  58. package/dist/run/error.mjs.map +1 -1
  59. package/dist/run/ping.mjs +12 -14
  60. package/dist/run/ping.mjs.map +1 -1
  61. package/dist/run/pub.js +6 -8
  62. package/dist/run/pub.js.map +1 -1
  63. package/dist/run/reject.js +4 -6
  64. package/dist/run/reject.js.map +1 -1
  65. package/dist/run/sub.js +14 -18
  66. package/dist/run/sub.js.map +1 -1
  67. package/dist/run/termimalCommands.js +1 -3
  68. package/dist/run/termimalCommands.js.map +1 -1
  69. package/dist/run/workers.js +6 -8
  70. package/dist/run/workers.js.map +1 -1
  71. package/dist/serialize.js +11 -19
  72. package/dist/serialize.js.map +1 -1
  73. package/dist/service.d.ts +1 -1
  74. package/dist/service.js +9 -13
  75. package/dist/service.js.map +1 -1
  76. package/dist/sleep.js +1 -5
  77. package/dist/sleep.js.map +1 -1
  78. package/dist/sub.d.ts +1 -1
  79. package/dist/sub.d.ts.map +1 -1
  80. package/dist/sub.js +10 -14
  81. package/dist/sub.js.map +1 -1
  82. package/dist/test/config.js +10 -12
  83. package/dist/test/config.js.map +1 -1
  84. package/dist/test/echo.js +19 -21
  85. package/dist/test/echo.js.map +1 -1
  86. package/dist/test/index.d.ts +1 -0
  87. package/dist/test/index.js +1 -1
  88. package/dist/test/index.js.map +1 -1
  89. package/dist/test/pack.js +33 -35
  90. package/dist/test/pack.js.map +1 -1
  91. package/dist/test/performance.js +7 -9
  92. package/dist/test/performance.js.map +1 -1
  93. package/dist/test/pub.js +14 -16
  94. package/dist/test/pub.js.map +1 -1
  95. package/dist/test/pub2.js +8 -10
  96. package/dist/test/pub2.js.map +1 -1
  97. package/dist/test/reject.js +16 -18
  98. package/dist/test/reject.js.map +1 -1
  99. package/dist/test/services.js +19 -21
  100. package/dist/test/services.js.map +1 -1
  101. package/dist/test/stress.js +7 -9
  102. package/dist/test/stress.js.map +1 -1
  103. package/dist/test/timing.js +27 -29
  104. package/dist/test/timing.js.map +1 -1
  105. package/dist/types.js +4 -7
  106. package/dist/types.js.map +1 -1
  107. package/dist/worker.d.ts +1 -1
  108. package/dist/worker.d.ts.map +1 -1
  109. package/dist/worker.js +46 -53
  110. package/dist/worker.js.map +1 -1
  111. package/package.json +11 -9
  112. package/src/clientNonBlocking.ts +2 -2
  113. package/src/deferredPromise.ts +67 -0
  114. package/src/run/sub.ts +1 -1
  115. package/src/sub.ts +2 -2
  116. package/src/worker.ts +3 -8
  117. package/tsconfig.json +2 -2
package/dist/worker.js CHANGED
@@ -1,20 +1,17 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Worker = void 0;
4
- const cry_helpers_1 = require("cry-helpers");
5
- const zeromq_1 = require("zeromq");
6
- const loadConfiguration_js_1 = require("./loadConfiguration.js");
7
- const types_js_1 = require("./types.js");
8
- const serialize_js_1 = require("./serialize.js");
9
- const sleep_js_1 = require("./sleep.js");
10
- const EbusReject_js_1 = require("./EbusReject.js");
1
+ import { Log, serialize } from "cry-helpers";
2
+ import { Dealer } from "zeromq";
3
+ import { loadConfiguration } from "./loadConfiguration.js";
4
+ import { Header, Message } from "./types.js";
5
+ import { pack, unpack } from "./serialize.js";
6
+ import { sleep } from "./sleep.js";
7
+ import { EbusRejectError } from "./EbusReject.js";
11
8
  const prefixes = ["EBUS_WORKER", "EBUS"];
12
- const log = new cry_helpers_1.Log(prefixes);
13
- class Worker {
9
+ const log = new Log(prefixes);
10
+ export class Worker {
14
11
  constructor(service, config = {}) {
15
12
  this.service = "";
16
13
  this.service = service || this.service;
17
- this.configuration = (0, loadConfiguration_js_1.loadConfiguration)(prefixes, config);
14
+ this.configuration = loadConfiguration(prefixes, config);
18
15
  this.address = this.configuration.address;
19
16
  this.lastHeartbeat = new Date().valueOf();
20
17
  this.processing = false;
@@ -44,7 +41,7 @@ class Worker {
44
41
  try {
45
42
  try {
46
43
  if (this.socket) {
47
- await this.socket.send([null, types_js_1.Header.Worker, types_js_1.Message.Heartbeat, this.service, null, null]);
44
+ await this.socket.send([null, Header.Worker, Message.Heartbeat, this.service, null, null]);
48
45
  }
49
46
  }
50
47
  catch (err) {
@@ -66,10 +63,10 @@ class Worker {
66
63
  async start() {
67
64
  log.debug(`worker for ${this.service} is starting`);
68
65
  const loop = async () => {
69
- this.socket = new zeromq_1.Dealer();
66
+ this.socket = new Dealer();
70
67
  this.socket.reconnectInterval = 100;
71
68
  await this.socket.connect(this.configuration.address);
72
- await this.socket.send([null, types_js_1.Header.Worker, types_js_1.Message.Ready, this.service]);
69
+ await this.socket.send([null, Header.Worker, Message.Ready, this.service]);
73
70
  await this.socket.receive();
74
71
  log.status(`started worker for ${this.service} on ${this.configuration.address}`);
75
72
  this.startHeartbeat();
@@ -77,17 +74,17 @@ class Worker {
77
74
  this.lastHeartbeat = new Date().valueOf();
78
75
  try {
79
76
  switch (type.toString()) {
80
- case types_js_1.Message.Shutdown:
77
+ case Message.Shutdown:
81
78
  log.status(`worker for ${this.service} received broker shutdown signal`);
82
79
  break;
83
- case types_js_1.Message.Heartbeat:
80
+ case Message.Heartbeat:
84
81
  log.trace(`worker for ${this.service} received heartbeat from broker`);
85
82
  break;
86
- case types_js_1.Message.ShutdownAndRestart:
83
+ case Message.ShutdownAndRestart:
87
84
  log.status(`worker for ${this.service} received ShutdownAndRestart from broker`);
88
85
  process.exit(1);
89
86
  break;
90
- case types_js_1.Message.Request:
87
+ case Message.Request:
91
88
  this.processing = true;
92
89
  await this.processRequest(reqId, optBuff, type, req, client);
93
90
  this.processing = false;
@@ -98,8 +95,7 @@ class Worker {
98
95
  }
99
96
  }
100
97
  catch (err) {
101
- console.error(`error in worker for '${this.service}'`);
102
- console.error(err);
98
+ console.error(`error in worker for '${this.service}'`, err);
103
99
  return;
104
100
  }
105
101
  }
@@ -124,44 +120,43 @@ class Worker {
124
120
  }
125
121
  // to be implemented at the actual worker
126
122
  async onError(err, req, opts) {
127
- console.log('worker/onError - should override');
123
+ console.log('worker/onError - should override', (err === null || err === void 0 ? void 0 : err.message) || err, req);
128
124
  }
129
125
  async processRequest(reqId, optBuff, type, req, client) {
130
- let opts = cry_helpers_1.serialize.unpack(optBuff);
126
+ let opts = serialize.unpack(optBuff);
131
127
  log.debug(`worker for ${this.service} received request ${type} with opts`, opts);
132
128
  let timeout = opts.receiveTimeout || this.configuration.receiveTimeout;
133
- let responseMessageType = types_js_1.Message.Reply;
129
+ let responseMessageType = Message.Reply;
134
130
  let promises = [
135
- this.process((0, serialize_js_1.unpack)(req, opts), opts),
136
- (0, sleep_js_1.sleep)(timeout, new EbusReject_js_1.EbusRejectError("timeout", `timeout in worker for '${this.service}' after ${timeout} ms`, opts))
131
+ this.process(unpack(req, opts), opts),
132
+ sleep(timeout, new EbusRejectError("timeout", `timeout in worker for '${this.service}' after ${timeout} ms`, opts))
137
133
  ];
138
134
  let rep;
139
135
  try {
140
136
  rep = await Promise.race(promises);
141
- if (rep instanceof EbusReject_js_1.EbusRejectError && rep.reason === "timeout") {
142
- log.warn(`request expired at worker for '${this.service}' after ${timeout} ms with opts ${cry_helpers_1.serialize.pack(opts)}`);
143
- console.log('opts', opts);
144
- log.warn((0, serialize_js_1.unpack)(req, opts));
145
- responseMessageType = types_js_1.Message.Timeout;
146
- this.onError("timeout", (0, serialize_js_1.unpack)(req, opts), opts);
137
+ if (rep instanceof EbusRejectError && rep.reason === "timeout") {
138
+ log.warn(`request expired at worker for '${this.service}' after ${timeout} ms with opts ${serialize.pack(opts)}`);
139
+ log.warn(unpack(req, opts));
140
+ responseMessageType = Message.Timeout;
141
+ this.onError("timeout", unpack(req, opts), opts);
147
142
  }
148
143
  }
149
144
  catch (err) {
150
145
  rep = err;
151
- if (!(rep instanceof EbusReject_js_1.EbusRejectError)) {
152
- rep = new EbusReject_js_1.EbusRejectError("error", `error in worker for '${this.service}' process method: '${err.message}'`, err);
153
- responseMessageType = types_js_1.Message.Error;
146
+ if (!(rep instanceof EbusRejectError)) {
147
+ rep = new EbusRejectError("error", `error in worker for '${this.service}' process method: '${err.message}'`, err);
148
+ responseMessageType = Message.Error;
154
149
  }
155
- if (rep instanceof EbusReject_js_1.EbusRejectError && rep.reason === "timeout")
156
- responseMessageType = types_js_1.Message.Timeout;
157
- if (rep instanceof EbusReject_js_1.EbusRejectError && rep.reason === "reject")
158
- responseMessageType = types_js_1.Message.Reject;
159
- if (rep instanceof EbusReject_js_1.EbusRejectError && rep.reason === "error")
160
- responseMessageType = types_js_1.Message.Error;
161
- this.onError(err, (0, serialize_js_1.unpack)(req, opts), opts);
150
+ if (rep instanceof EbusRejectError && rep.reason === "timeout")
151
+ responseMessageType = Message.Timeout;
152
+ if (rep instanceof EbusRejectError && rep.reason === "reject")
153
+ responseMessageType = Message.Reject;
154
+ if (rep instanceof EbusRejectError && rep.reason === "error")
155
+ responseMessageType = Message.Error;
156
+ this.onError(err, unpack(req, opts), opts);
162
157
  }
163
158
  let data = rep;
164
- if (rep instanceof EbusReject_js_1.EbusRejectError)
159
+ if (rep instanceof EbusRejectError)
165
160
  opts = { zip: false, raw: false, returningError: true, };
166
161
  if ((rep === null || rep === void 0 ? void 0 : rep.data) !== undefined && (rep === null || rep === void 0 ? void 0 : rep.opts) !== undefined) {
167
162
  opts = req.opts;
@@ -174,18 +169,17 @@ class Worker {
174
169
  try {
175
170
  await this.socket.send([
176
171
  null,
177
- types_js_1.Header.Worker,
172
+ Header.Worker,
178
173
  responseMessageType,
179
174
  client,
180
175
  null,
181
176
  reqId,
182
- cry_helpers_1.serialize.pack(opts),
183
- (0, serialize_js_1.pack)(data, opts),
177
+ serialize.pack(opts),
178
+ pack(data, opts),
184
179
  ]);
185
180
  }
186
181
  catch (err) {
187
- console.error(`unable to send reply for ${this.configuration.address}`);
188
- console.error(err);
182
+ console.error(`unable to send reply for ${this.configuration.address}`, err);
189
183
  throw err;
190
184
  }
191
185
  }
@@ -197,8 +191,8 @@ class Worker {
197
191
  if (this.socket && !this.socket.closed) {
198
192
  await this.socket.send([
199
193
  null,
200
- types_js_1.Header.Worker,
201
- types_js_1.Message.Disconnect,
194
+ Header.Worker,
195
+ Message.Disconnect,
202
196
  this.service,
203
197
  ]);
204
198
  log.debug(`worker for ${this.service} is closing socket`);
@@ -210,7 +204,7 @@ class Worker {
210
204
  log.error(`worker for '${this.service}' not connected, cannot publish to ${channel}`, message);
211
205
  return;
212
206
  }
213
- await this.socket.send([null, types_js_1.Header.Worker, types_js_1.Message.Publish, channel, (0, serialize_js_1.pack)(message, {})]);
207
+ await this.socket.send([null, Header.Worker, Message.Publish, channel, pack(message, {})]);
214
208
  log.debug(`ebus worker published on '${channel}'`, message);
215
209
  // let socket = new Request()
216
210
  // await socket.connect(this.configuration.address)
@@ -222,5 +216,4 @@ class Worker {
222
216
  throw new Error(`worker for service ${this.service} must implement process()`);
223
217
  }
224
218
  }
225
- exports.Worker = Worker;
226
219
  //# sourceMappingURL=worker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "cry-ebus2",
3
- "version": "3.1.7",
3
+ "version": "3.1.8",
4
4
  "description": "",
5
+ "type": "module",
5
6
  "main": "./dist/index.js",
6
7
  "types": "./dist/index.d.ts",
7
8
  "scripts": {
@@ -15,22 +16,23 @@
15
16
  "license": "ISC",
16
17
  "devDependencies": {
17
18
  "@types/dotenv": "^8.2.0",
18
- "@types/node": "^18.7.10",
19
+ "@types/node": "^18.7.23",
19
20
  "deep-equal-in-any-order": "^2.0.0",
20
21
  "i": "^0.3.7",
21
- "npm": "^8.18.0",
22
- "typescript": "^4.7.4"
22
+ "npm": "^8.19.2",
23
+ "typescript": "^4.8.4"
23
24
  },
24
25
  "dependencies": {
25
26
  "-": "^0.0.1",
26
27
  "@types/chai": "^4.3.3",
27
- "@types/mocha": "^9.1.1",
28
+ "@types/mocha": "^10.0.0",
28
29
  "@types/pako": "^2.0.0",
29
30
  "chai": "^4.3.6",
30
- "commander": "^9.4.0",
31
- "cry-crm-logic": "^2.0.1",
32
- "cry-helpers": "^2.1.65",
33
- "dotenv": "^16.0.1",
31
+ "commander": "^9.4.1",
32
+ "cry-crm-logic": "^3.0.10",
33
+ "cry-ebus2": "^3.1.7",
34
+ "cry-helpers": "^2.1.71",
35
+ "dotenv": "^16.0.3",
34
36
  "mocha": "^10.0.0",
35
37
  "notepack.io": "^3.0.1",
36
38
  "pako": "^2.0.4",
@@ -1,4 +1,4 @@
1
- 1
1
+
2
2
  import { Log, serialize } from "cry-helpers"
3
3
  import { Request } from "zeromq"
4
4
  import { EbusConfiguration } from "./EbusConfiguration.js"
@@ -8,8 +8,8 @@ import { Header, Message } from "./types.js"
8
8
  import { pack, unpack } from "./serialize.js"
9
9
  import { EbusRejectError } from "./EbusReject.js"
10
10
  import { EbusUnpackedResult } from "./EbusUnpackedResult.js"
11
- import DeferredPromise from "cry-helpers/dist/defferedpromise.js"
12
11
  import { EbusClientEvents } from "./EbusClientEvents.js"
12
+ import DeferredPromise from "./deferredPromise.js"
13
13
  import { TypedEmitter } from 'tiny-typed-emitter';
14
14
 
15
15
  const prefixes = ["EBUS_CLIENT", "EBUS"]
@@ -0,0 +1,67 @@
1
+ /**
2
+ * A new instance of deferred is constructed by calling `new DeferredPromse<T>()`.
3
+ * The purpose of the deferred object is to expose the associated Promise
4
+ * instance APIs that can be used for signaling the successful
5
+ * or unsuccessful completion, as well as the state of the task.
6
+ * @export
7
+ * @class DeferredPromise
8
+ * @implements {Promise<T>}
9
+ * @template T
10
+ * @example
11
+ * const deferred = new DeferredPromse<string>();
12
+ * console.log(deferred.state); // 'pending'
13
+ *
14
+ * deferred
15
+ * .then(str => console.log(str))
16
+ * .catch(err => console.error(err));
17
+ *
18
+ * deferred.resolve('Foo');
19
+ * console.log(deferred.state); // 'fulfilled'
20
+ * // deferred.reject('Bar');
21
+ */
22
+ export default class DeferredPromise<T> implements Promise<T> {
23
+ [Symbol.toStringTag]: 'Promise';
24
+
25
+ private _promise: Promise<T>;
26
+ private _resolve: ((value?: T | PromiseLike<T>) => void) | undefined;
27
+ private _reject: ((reason?: any) => void) | undefined
28
+ private _state: 'pending' | 'fulfilled' | 'rejected' = 'pending';
29
+
30
+ public get state(): 'pending' | 'fulfilled' | 'rejected' {
31
+ return this._state;
32
+ }
33
+
34
+ constructor() {
35
+ this._promise = new Promise<T>((resolve, reject) => {
36
+ this._resolve = resolve as any;
37
+ this._reject = reject;
38
+ });
39
+ }
40
+
41
+ public finally(onfinally?: (() => void) | null): Promise<T> {
42
+ return this._promise.finally(onfinally);
43
+ }
44
+
45
+ public then<TResult1, TResult2>(
46
+ onfulfilled?: (value: T) => TResult1 | PromiseLike<TResult1>,
47
+ onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>)
48
+ : Promise<TResult1 | TResult2> {
49
+ return this._promise.then(onfulfilled, onrejected);
50
+ }
51
+
52
+ public catch<TResult>(onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<T | TResult> {
53
+ return this._promise.catch(onrejected);
54
+ }
55
+
56
+ public resolve(value?: T | PromiseLike<T>): void {
57
+ if (this._resolve === undefined) throw new Error("Promise.resolve is undefined")
58
+ this._resolve(value);
59
+ this._state = 'fulfilled';
60
+ }
61
+
62
+ public reject(reason?: any): void {
63
+ if (this._reject === undefined) throw new Error("Promise.resolve is undefined")
64
+ this._reject(reason);
65
+ this._state = 'rejected';
66
+ }
67
+ }
package/src/run/sub.ts CHANGED
@@ -86,7 +86,7 @@ async function messageEvents() {
86
86
  sub.on("message", ([channel, message]) => { console.log(channel, message) })
87
87
 
88
88
  let stxt = "";
89
- if (!myProgram.subscribe.length) {
89
+ if (!myProgram.subscribe?.length) {
90
90
 
91
91
  await sub.subscribe("");
92
92
  stxt = "on all channels";
package/src/sub.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { Log } from "cry-helpers"
2
- import { unpack } from "cry-helpers/dist/serialize.js"
3
2
  import { TypedEmitter } from "tiny-typed-emitter"
4
3
  import { Subscriber } from "zeromq"
5
4
  import { EbusConfiguration } from "./EbusConfiguration.js"
6
5
  import { loadConfiguration } from "./loadConfiguration.js"
6
+ import { unpack } from "./serialize.js"
7
7
 
8
8
  const prefixes = ["EBUS_SUB", "EBUS"]
9
9
  const log = new Log(prefixes)
@@ -62,7 +62,7 @@ export class Sub extends TypedEmitter<EbusSubscriptionEvent> {
62
62
  }
63
63
 
64
64
  private processMessage(messagePacked: Buffer, channel: Buffer) {
65
- let message = unpack(messagePacked)
65
+ let message = unpack(messagePacked, { })
66
66
  log.debug(`sub message received on ${channel}`, message)
67
67
  this.emit("message", [channel.toString(), message])
68
68
  if (channel.toString() === "ebus/stop") {
package/src/worker.ts CHANGED
@@ -131,8 +131,7 @@ export class Worker {
131
131
 
132
132
 
133
133
  } catch (err) {
134
- console.error(`error in worker for '${this.service}'`)
135
- console.error(err)
134
+ console.error(`error in worker for '${this.service}'`, err)
136
135
  return
137
136
  }
138
137
 
@@ -165,8 +164,7 @@ export class Worker {
165
164
  // to be implemented at the actual worker
166
165
  public async onError(err:any, req: any, opts: any)
167
166
  {
168
- console.log('worker/onError - should override');
169
-
167
+ console.log('worker/onError - should override', err?.message||err, req);
170
168
  }
171
169
 
172
170
  private async processRequest(reqId: Buffer, optBuff: Buffer, type: Buffer, req: Buffer, client: Buffer) {
@@ -187,8 +185,6 @@ export class Worker {
187
185
  rep = await Promise.race(promises)
188
186
  if (rep instanceof EbusRejectError && rep.reason === "timeout") {
189
187
  log.warn(`request expired at worker for '${this.service}' after ${timeout} ms with opts ${serialize.pack(opts)}`)
190
- console.log('opts',opts);
191
-
192
188
  log.warn(unpack(req, opts))
193
189
  responseMessageType = Message.Timeout
194
190
  this.onError("timeout", unpack(req, opts), opts);
@@ -237,8 +233,7 @@ export class Worker {
237
233
  pack(data, opts),
238
234
  ])
239
235
  } catch (err) {
240
- console.error(`unable to send reply for ${this.configuration.address}`)
241
- console.error(err)
236
+ console.error(`unable to send reply for ${this.configuration.address}`, err)
242
237
  throw err
243
238
  }
244
239
  }
package/tsconfig.json CHANGED
@@ -5,7 +5,7 @@
5
5
  /* Basic Options */
6
6
  // "incremental": true, /* Enable incremental compilation */
7
7
  "target": "ES2018" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */,
8
- "module": "CommonJS" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */,
8
+ "module": "NodeNext" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */,
9
9
  "lib": ["es2018", "ES2018.AsyncIterable"] /* Specify library files to be included in the compilation. */,
10
10
  //"allowJs": true, /* Allow javascript files to be compiled. */
11
11
  // "checkJs": true, /* Report errors in .js files. */
@@ -30,7 +30,7 @@
30
30
  "strictNullChecks": true /* Enable strict null checks. */,
31
31
  "strictFunctionTypes": true /* Enable strict checking of function types. */,
32
32
  "strictBindCallApply": true /* Enable strict 'bind', 'call', and 'apply' methods on functions. */,
33
- "strictPropertyInitialization": true /* Enable strict checking of property initialization in classes. */,
33
+ "strictPropertyInitialization": false /* Enable strict checking of property initialization in classes. */,
34
34
  "noImplicitThis": true /* Raise error on 'this' expressions with an implied 'any' type. */,
35
35
  "alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */,
36
36