@cryptexlabs/codex-nodejs-common 0.8.4 → 0.8.6
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 +9 -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 +8 -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) {
|
|
@@ -134,6 +142,7 @@ __decorate([
|
|
|
134
142
|
], WebsocketGateway.prototype, "server", void 0);
|
|
135
143
|
WebsocketGateway = __decorate([
|
|
136
144
|
websockets_1.WebSocketGateway(),
|
|
145
|
+
__param(0, common_1.Inject("WEBSOCKET_CONSUMER_SERVICE")),
|
|
137
146
|
__param(1, common_1.Inject("CONFIG")),
|
|
138
147
|
__param(2, common_1.Inject("TOPIC_AUTHORIZORS")),
|
|
139
148
|
__param(3, common_1.Inject("LOGGER")),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.gateway.js","sourceRoot":"","sources":["../../../../src/service/socket/websocket.gateway.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,mDAM4B;AAC5B,2CAAmE;AACnE,yCAA6C;AAE7C,yEAAoE;AACpE,+DAA2D;AAC3D,0CAAuD;AACvD,oEAKuC;AACvC,6CAAuE;AACvE,2CAA+C;AAC/C,mDAAiD;AACjD,6CAAiD;AAGjD,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB;IAM3B,
|
|
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) {
|
|
@@ -31,6 +31,7 @@ export class WebsocketGateway
|
|
|
31
31
|
private readonly subscribedTopics: string[];
|
|
32
32
|
|
|
33
33
|
constructor(
|
|
34
|
+
@Inject("WEBSOCKET_CONSUMER_SERVICE")
|
|
34
35
|
private readonly consumerService: WebsocketConsumerService,
|
|
35
36
|
@Inject("CONFIG") private readonly config: DefaultConfig,
|
|
36
37
|
@Inject("TOPIC_AUTHORIZORS")
|
|
@@ -186,11 +187,18 @@ export class WebsocketGateway
|
|
|
186
187
|
for (const subscription of topics) {
|
|
187
188
|
if (!this.subscribedTopics.includes(subscription)) {
|
|
188
189
|
didChangeSubscriptions = true;
|
|
190
|
+
this.logger.verbose(`Subscribing to new topic: ${subscription}`);
|
|
189
191
|
this.subscribedTopics.push(subscription);
|
|
190
192
|
}
|
|
191
193
|
}
|
|
192
194
|
if (didChangeSubscriptions) {
|
|
195
|
+
this.logger.verbose(`Subscriptions changed`, {
|
|
196
|
+
subscribedTopics: this.subscribedTopics,
|
|
197
|
+
});
|
|
193
198
|
await this.consumerService.restart(this.subscribedTopics);
|
|
199
|
+
this.logger.verbose(`Consumer restarted`);
|
|
200
|
+
} else {
|
|
201
|
+
this.logger.verbose(`Subscriptions did not change`);
|
|
194
202
|
}
|
|
195
203
|
}
|
|
196
204
|
|