@cryptexlabs/codex-nodejs-common 0.8.4 → 0.8.5
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.
- package/lib/package.json +1 -1
- package/lib/src/service/consumer/websocket-consumer.service.d.ts +3 -1
- package/lib/src/service/consumer/websocket-consumer.service.js +14 -4
- package/lib/src/service/consumer/websocket-consumer.service.js.map +1 -1
- package/lib/src/service/socket/websocket.gateway.js +8 -0
- package/lib/src/service/socket/websocket.gateway.js.map +1 -1
- package/package.json +1 -1
- package/src/service/consumer/websocket-consumer.service.ts +12 -3
- package/src/service/socket/websocket.gateway.ts +7 -0
package/lib/package.json
CHANGED
|
@@ -3,15 +3,17 @@ import { ConsumerServiceDelegateInterface } from "./consumer-service-delegate.in
|
|
|
3
3
|
import { DefaultConfig } from "../../config";
|
|
4
4
|
import { EventHandlerFactoryInterface } from "../../event/event.handler.factory.interface";
|
|
5
5
|
import { HealthzService } from "../healthz";
|
|
6
|
+
import { BroadcasterService } from "../socket";
|
|
6
7
|
export declare class WebsocketConsumerService {
|
|
7
8
|
private readonly healthzService;
|
|
8
9
|
private readonly consumerDelegateService;
|
|
9
10
|
private readonly config;
|
|
10
11
|
private readonly logger;
|
|
11
12
|
private readonly internalFactory;
|
|
13
|
+
private readonly broadcasterService;
|
|
12
14
|
private topics;
|
|
13
15
|
private eventHandler;
|
|
14
|
-
constructor(healthzService: HealthzService, consumerDelegateService: ConsumerServiceDelegateInterface, config: DefaultConfig, logger: LoggerService, internalFactory: EventHandlerFactoryInterface);
|
|
16
|
+
constructor(healthzService: HealthzService, consumerDelegateService: ConsumerServiceDelegateInterface, config: DefaultConfig, logger: LoggerService, internalFactory: EventHandlerFactoryInterface, broadcasterService: BroadcasterService);
|
|
15
17
|
init(): Promise<void>;
|
|
16
18
|
restart(topics: string[]): Promise<void>;
|
|
17
19
|
}
|
|
@@ -20,14 +20,16 @@ const fs = require("fs");
|
|
|
20
20
|
const event_handler_1 = require("../../event/event-handler");
|
|
21
21
|
const consumer_util_1 = require("./consumer.util");
|
|
22
22
|
const healthz_1 = require("../healthz");
|
|
23
|
+
const socket_1 = require("../socket");
|
|
23
24
|
const randomstring = require("randomstring");
|
|
24
25
|
let WebsocketConsumerService = class WebsocketConsumerService {
|
|
25
|
-
constructor(healthzService, consumerDelegateService, config, logger, internalFactory) {
|
|
26
|
+
constructor(healthzService, consumerDelegateService, config, logger, internalFactory, broadcasterService) {
|
|
26
27
|
this.healthzService = healthzService;
|
|
27
28
|
this.consumerDelegateService = consumerDelegateService;
|
|
28
29
|
this.config = config;
|
|
29
30
|
this.logger = logger;
|
|
30
31
|
this.internalFactory = internalFactory;
|
|
32
|
+
this.broadcasterService = broadcasterService;
|
|
31
33
|
this.topics = jsYaml.safeLoad(fs.readFileSync(config.kafka.topicsConfigPath).toString());
|
|
32
34
|
this.eventHandler = new event_handler_1.EventHandler(logger);
|
|
33
35
|
}
|
|
@@ -39,11 +41,18 @@ let WebsocketConsumerService = class WebsocketConsumerService {
|
|
|
39
41
|
}
|
|
40
42
|
async restart(topics) {
|
|
41
43
|
try {
|
|
44
|
+
this.logger.verbose(`Stopping consumer`);
|
|
42
45
|
await this.consumerDelegateService.stopConsumer();
|
|
46
|
+
this.logger.verbose(`Consumer stopped`);
|
|
43
47
|
const finalTopics = consumer_util_1.ConsumerUtil.getTopics(topics);
|
|
48
|
+
this.logger.verbose(`Final topics`, { finalTopics });
|
|
44
49
|
await this.consumerDelegateService.startConsumer(finalTopics, async (topic, message) => {
|
|
45
|
-
|
|
46
|
-
|
|
50
|
+
try {
|
|
51
|
+
this.broadcasterService.broadcast(topic, message);
|
|
52
|
+
}
|
|
53
|
+
catch (e) {
|
|
54
|
+
this.logger.error(e);
|
|
55
|
+
}
|
|
47
56
|
});
|
|
48
57
|
}
|
|
49
58
|
catch (e) {
|
|
@@ -58,7 +67,8 @@ WebsocketConsumerService = __decorate([
|
|
|
58
67
|
__param(2, common_1.Inject("CONFIG")),
|
|
59
68
|
__param(3, common_1.Inject("LOGGER")),
|
|
60
69
|
__param(4, common_1.Inject("INTERNAL_DOMAIN_EVENT_HANDLER_FACTORY")),
|
|
61
|
-
|
|
70
|
+
__param(5, common_1.Inject("BROADCASTER")),
|
|
71
|
+
__metadata("design:paramtypes", [healthz_1.HealthzService, Object, config_1.DefaultConfig, Object, Object, socket_1.BroadcasterService])
|
|
62
72
|
], WebsocketConsumerService);
|
|
63
73
|
exports.WebsocketConsumerService = WebsocketConsumerService;
|
|
64
74
|
//# sourceMappingURL=websocket-consumer.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-consumer.service.js","sourceRoot":"","sources":["../../../../src/service/consumer/websocket-consumer.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAmE;AAGnE,yCAA6C;AAE7C,kCAAkC;AAClC,yBAAyB;AAEzB,6DAAyD;AACzD,mDAA+C;AAC/C,wCAAkE;
|
|
1
|
+
{"version":3,"file":"websocket-consumer.service.js","sourceRoot":"","sources":["../../../../src/service/consumer/websocket-consumer.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAmE;AAGnE,yCAA6C;AAE7C,kCAAkC;AAClC,yBAAyB;AAEzB,6DAAyD;AACzD,mDAA+C;AAC/C,wCAAkE;AAClE,sCAA+C;AAI/C,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAG7C,IAAa,wBAAwB,GAArC,MAAa,wBAAwB;IAInC,YAC8C,cAA8B,EAEzD,uBAAyD,EACvC,MAAqB,EACrB,MAAqB,EAEvC,eAA6C,EAE7C,kBAAsC;QARX,mBAAc,GAAd,cAAc,CAAgB;QAEzD,4BAAuB,GAAvB,uBAAuB,CAAkC;QACvC,WAAM,GAAN,MAAM,CAAe;QACrB,WAAM,GAAN,MAAM,CAAe;QAEvC,oBAAe,GAAf,eAAe,CAA8B;QAE7C,uBAAkB,GAAlB,kBAAkB,CAAoB;QAEvD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAC3B,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CACjC,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,4BAAY,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACrC,8BAAoB,CAAC,oBAAoB,CAC1C,CAAC;QACF,MAAM,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CACnD,YAAY,CAAC,QAAQ,EAAE,CACxB,CAAC;QACF,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CACnC,8BAAoB,CAAC,oBAAoB,CAC1C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAgB;QAC5B,IAAI;YACF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YACzC,MAAM,IAAI,CAAC,uBAAuB,CAAC,YAAY,EAAE,CAAC;YAClD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YACxC,MAAM,WAAW,GAAG,4BAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;YACrD,MAAM,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAC9C,WAAW,EACX,KAAK,EAAE,KAAa,EAAE,OAAgB,EAAE,EAAE;gBACxC,IAAI;oBACF,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;iBACnD;gBAAC,OAAO,CAAC,EAAE;oBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBACtB;YACH,CAAC,CACF,CAAC;SACH;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACrC,8BAAoB,CAAC,oBAAoB,CAC1C,CAAC;SACH;IACH,CAAC;CACF,CAAA;AAzDY,wBAAwB;IADpC,mBAAU,EAAE;IAMR,WAAA,eAAM,CAAC,iBAAiB,CAAC,CAAA;IACzB,WAAA,eAAM,CAAC,2BAA2B,CAAC,CAAA;IAEnC,WAAA,eAAM,CAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,eAAM,CAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,eAAM,CAAC,uCAAuC,CAAC,CAAA;IAE/C,WAAA,eAAM,CAAC,aAAa,CAAC,CAAA;qCAPsC,wBAAc,UAG/B,sBAAa,kBAKnB,2BAAkB;GAb9C,wBAAwB,CAyDpC;AAzDY,4DAAwB"}
|
|
@@ -111,11 +111,19 @@ let WebsocketGateway = class WebsocketGateway {
|
|
|
111
111
|
for (const subscription of topics) {
|
|
112
112
|
if (!this.subscribedTopics.includes(subscription)) {
|
|
113
113
|
didChangeSubscriptions = true;
|
|
114
|
+
this.logger.verbose(`Subscribing to new topic: ${subscription}`);
|
|
114
115
|
this.subscribedTopics.push(subscription);
|
|
115
116
|
}
|
|
116
117
|
}
|
|
117
118
|
if (didChangeSubscriptions) {
|
|
119
|
+
this.logger.verbose(`Subscriptions changed`, {
|
|
120
|
+
subscribedTopics: this.subscribedTopics,
|
|
121
|
+
});
|
|
118
122
|
await this.consumerService.restart(this.subscribedTopics);
|
|
123
|
+
this.logger.verbose(`Consumer restarted`);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
this.logger.verbose(`Subscriptions did not change`);
|
|
119
127
|
}
|
|
120
128
|
}
|
|
121
129
|
handleDisconnect(client) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.gateway.js","sourceRoot":"","sources":["../../../../src/service/socket/websocket.gateway.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"websocket.gateway.js","sourceRoot":"","sources":["../../../../src/service/socket/websocket.gateway.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -9,6 +9,7 @@ import { TopicsConfigInterface } from "../../config/topics-config.interface";
|
|
|
9
9
|
import { EventHandler } from "../../event/event-handler";
|
|
10
10
|
import { ConsumerUtil } from "./consumer.util";
|
|
11
11
|
import { HealthzComponentEnum, HealthzService } from "../healthz";
|
|
12
|
+
import { BroadcasterService } from "../socket";
|
|
12
13
|
|
|
13
14
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
14
15
|
// tslint:disable-next-line:no-var-requires
|
|
@@ -26,7 +27,9 @@ export class WebsocketConsumerService {
|
|
|
26
27
|
@Inject("CONFIG") private readonly config: DefaultConfig,
|
|
27
28
|
@Inject("LOGGER") private readonly logger: LoggerService,
|
|
28
29
|
@Inject("INTERNAL_DOMAIN_EVENT_HANDLER_FACTORY")
|
|
29
|
-
private readonly internalFactory: EventHandlerFactoryInterface
|
|
30
|
+
private readonly internalFactory: EventHandlerFactoryInterface,
|
|
31
|
+
@Inject("BROADCASTER")
|
|
32
|
+
private readonly broadcasterService: BroadcasterService
|
|
30
33
|
) {
|
|
31
34
|
this.topics = jsYaml.safeLoad(
|
|
32
35
|
fs.readFileSync(config.kafka.topicsConfigPath).toString()
|
|
@@ -49,13 +52,19 @@ export class WebsocketConsumerService {
|
|
|
49
52
|
|
|
50
53
|
async restart(topics: string[]) {
|
|
51
54
|
try {
|
|
55
|
+
this.logger.verbose(`Stopping consumer`);
|
|
52
56
|
await this.consumerDelegateService.stopConsumer();
|
|
57
|
+
this.logger.verbose(`Consumer stopped`);
|
|
53
58
|
const finalTopics = ConsumerUtil.getTopics(topics);
|
|
59
|
+
this.logger.verbose(`Final topics`, { finalTopics });
|
|
54
60
|
await this.consumerDelegateService.startConsumer(
|
|
55
61
|
finalTopics,
|
|
56
62
|
async (topic: string, message: Message) => {
|
|
57
|
-
|
|
58
|
-
|
|
63
|
+
try {
|
|
64
|
+
this.broadcasterService.broadcast(topic, message);
|
|
65
|
+
} catch (e) {
|
|
66
|
+
this.logger.error(e);
|
|
67
|
+
}
|
|
59
68
|
}
|
|
60
69
|
);
|
|
61
70
|
} catch (e) {
|
|
@@ -186,11 +186,18 @@ export class WebsocketGateway
|
|
|
186
186
|
for (const subscription of topics) {
|
|
187
187
|
if (!this.subscribedTopics.includes(subscription)) {
|
|
188
188
|
didChangeSubscriptions = true;
|
|
189
|
+
this.logger.verbose(`Subscribing to new topic: ${subscription}`);
|
|
189
190
|
this.subscribedTopics.push(subscription);
|
|
190
191
|
}
|
|
191
192
|
}
|
|
192
193
|
if (didChangeSubscriptions) {
|
|
194
|
+
this.logger.verbose(`Subscriptions changed`, {
|
|
195
|
+
subscribedTopics: this.subscribedTopics,
|
|
196
|
+
});
|
|
193
197
|
await this.consumerService.restart(this.subscribedTopics);
|
|
198
|
+
this.logger.verbose(`Consumer restarted`);
|
|
199
|
+
} else {
|
|
200
|
+
this.logger.verbose(`Subscriptions did not change`);
|
|
194
201
|
}
|
|
195
202
|
}
|
|
196
203
|
|