starta.microservice 0.1.4874 → 0.1.4882

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 (52) hide show
  1. package/lib/adapters/database/DBScripts/DBInitialise.js +3 -12
  2. package/lib/adapters/database/DBScripts/DBInitialise.js.map +1 -1
  3. package/lib/adapters/database/index.js +45 -62
  4. package/lib/adapters/database/index.js.map +1 -1
  5. package/lib/adapters/logger/index.js +27 -17
  6. package/lib/adapters/logger/index.js.map +1 -1
  7. package/lib/adapters/{rabbitmq/index.d.ts → messageBroker/Rabbitmq.d.ts} +4 -6
  8. package/lib/adapters/messageBroker/Rabbitmq.js +159 -0
  9. package/lib/adapters/messageBroker/Rabbitmq.js.map +1 -0
  10. package/lib/adapters/messageBroker/SnsSqs.d.ts +19 -0
  11. package/lib/adapters/messageBroker/SnsSqs.js +298 -0
  12. package/lib/adapters/messageBroker/SnsSqs.js.map +1 -0
  13. package/lib/adapters/messageBroker/index.d.ts +16 -0
  14. package/lib/adapters/messageBroker/index.js +45 -0
  15. package/lib/adapters/messageBroker/index.js.map +1 -0
  16. package/lib/adapters/messageBroker/types.d.ts +11 -0
  17. package/lib/adapters/messageBroker/types.js +3 -0
  18. package/lib/adapters/messageBroker/types.js.map +1 -0
  19. package/lib/adapters/redisService/Publisher.js +2 -13
  20. package/lib/adapters/redisService/Publisher.js.map +1 -1
  21. package/lib/adapters/redisService/RedisAdapter.js +59 -100
  22. package/lib/adapters/redisService/RedisAdapter.js.map +1 -1
  23. package/lib/adapters/redisService/index.d.ts +0 -2
  24. package/lib/adapters/redisService/index.js +159 -281
  25. package/lib/adapters/redisService/index.js.map +1 -1
  26. package/lib/agenda/index.js +10 -20
  27. package/lib/agenda/index.js.map +1 -1
  28. package/lib/config.d.ts +2 -0
  29. package/lib/config.js +2 -0
  30. package/lib/config.js.map +1 -1
  31. package/lib/entities/Account.js +2 -14
  32. package/lib/entities/Account.js.map +1 -1
  33. package/lib/helpers/index.js +7 -1
  34. package/lib/helpers/index.js.map +1 -1
  35. package/lib/repositories/Repository.js +178 -207
  36. package/lib/repositories/Repository.js.map +1 -1
  37. package/lib/services/ServiceExecutor.d.ts +3 -3
  38. package/lib/services/ServiceExecutor.js +34 -48
  39. package/lib/services/ServiceExecutor.js.map +1 -1
  40. package/lib/services/ServiceExecutorHandler.js +264 -283
  41. package/lib/services/ServiceExecutorHandler.js.map +1 -1
  42. package/lib/services/ServiceFactoryBase.d.ts +3 -3
  43. package/lib/services/ServiceFactoryBase.js +2 -2
  44. package/lib/services/ServiceFactoryBase.js.map +1 -1
  45. package/lib/services/ServiceHandlerBase.d.ts +3 -3
  46. package/lib/services/ServiceHandlerBase.js +54 -72
  47. package/lib/services/ServiceHandlerBase.js.map +1 -1
  48. package/lib/services/dataSelectors.js +1 -1
  49. package/lib/services/dataSelectors.js.map +1 -1
  50. package/package.json +1 -1
  51. package/lib/adapters/rabbitmq/index.js +0 -184
  52. package/lib/adapters/rabbitmq/index.js.map +0 -1
@@ -0,0 +1,298 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ var _SnsSqs_logger, _SnsSqs_snsClient, _SnsSqs_sqsClient, _SnsSqs_createdTopics, _SnsSqs_createdQueues, _SnsSqs_isStopRequested, _SnsSqs_promises;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const aws_sdk_1 = __importDefault(require("aws-sdk"));
19
+ const crypto_1 = __importDefault(require("crypto"));
20
+ const config_1 = __importDefault(require("../../config"));
21
+ const loggerContext_1 = __importDefault(require("../../contexts/loggerContext"));
22
+ const executionContext_1 = __importDefault(require("../../contexts/executionContext"));
23
+ aws_sdk_1.default.config.update({
24
+ accessKeyId: config_1.default.aws.accessKey,
25
+ secretAccessKey: config_1.default.aws.secretKey,
26
+ region: config_1.default.aws.region
27
+ });
28
+ class SnsSqs {
29
+ constructor(logger) {
30
+ _SnsSqs_logger.set(this, void 0);
31
+ _SnsSqs_snsClient.set(this, void 0);
32
+ _SnsSqs_sqsClient.set(this, void 0);
33
+ _SnsSqs_createdTopics.set(this, new Set());
34
+ _SnsSqs_createdQueues.set(this, new Set());
35
+ _SnsSqs_isStopRequested.set(this, false);
36
+ _SnsSqs_promises.set(this, []);
37
+ __classPrivateFieldSet(this, _SnsSqs_logger, logger, "f");
38
+ __classPrivateFieldSet(this, _SnsSqs_snsClient, new aws_sdk_1.default.SNS(), "f");
39
+ __classPrivateFieldSet(this, _SnsSqs_sqsClient, new aws_sdk_1.default.SQS(), "f");
40
+ }
41
+ async createTopics(topics) {
42
+ topics = topics.map(topic => `${config_1.default.environment}-${topic}`);
43
+ const topicsToCreate = topics.filter(topic => !__classPrivateFieldGet(this, _SnsSqs_createdTopics, "f").has(topic));
44
+ await Promise.all(topicsToCreate.map(topicName => this.createTopic(topicName)));
45
+ }
46
+ async connect() {
47
+ __classPrivateFieldGet(this, _SnsSqs_logger, "f").generic.info("Attempting to connect to SNS and SQS");
48
+ try {
49
+ // Fetch and store list of topics
50
+ const topicsResponse = await __classPrivateFieldGet(this, _SnsSqs_snsClient, "f").listTopics({}).promise();
51
+ topicsResponse.Topics.forEach(topic => {
52
+ const topicArn = topic.TopicArn;
53
+ const topicName = topicArn.split(':').pop(); // Extract topic name from ARN
54
+ if (topicName.startsWith(`${config_1.default.environment}-`)) {
55
+ __classPrivateFieldGet(this, _SnsSqs_createdTopics, "f").add(topicName);
56
+ }
57
+ });
58
+ // Fetch and store list of queues
59
+ const queuesResponse = await __classPrivateFieldGet(this, _SnsSqs_sqsClient, "f").listQueues({}).promise();
60
+ (queuesResponse.QueueUrls || []).forEach(queueUrl => {
61
+ const queueName = queueUrl.split('/').pop(); // Extract queue name from ARN
62
+ if (queueName.startsWith(`${config_1.default.environment}-`)) {
63
+ __classPrivateFieldGet(this, _SnsSqs_createdQueues, "f").add(queueName);
64
+ }
65
+ });
66
+ __classPrivateFieldGet(this, _SnsSqs_logger, "f").generic.info("Successfully connected to SNS and SQS and retrieved existing topics and queues");
67
+ }
68
+ catch (error) {
69
+ __classPrivateFieldGet(this, _SnsSqs_logger, "f").generic.error("Failed to connect to SNS and SQS", error);
70
+ throw error;
71
+ }
72
+ }
73
+ async checkLiveness() {
74
+ try {
75
+ __classPrivateFieldGet(this, _SnsSqs_logger, "f").generic.info("Attempting to connect to SNS and SQS");
76
+ await __classPrivateFieldGet(this, _SnsSqs_snsClient, "f").listTopics({}).promise();
77
+ await __classPrivateFieldGet(this, _SnsSqs_sqsClient, "f").listQueues({}).promise();
78
+ return true;
79
+ }
80
+ catch (error) {
81
+ __classPrivateFieldGet(this, _SnsSqs_logger, "f").generic.error("Failed to connect to SNS and SQS", error);
82
+ return false;
83
+ }
84
+ }
85
+ async disconnect() {
86
+ __classPrivateFieldSet(this, _SnsSqs_isStopRequested, true, "f");
87
+ __classPrivateFieldGet(this, _SnsSqs_logger, "f").generic.info("Disconnect from SNS and SQS called, waiting for " + __classPrivateFieldGet(this, _SnsSqs_promises, "f").length + " consumers to disconnect");
88
+ await Promise.all(__classPrivateFieldGet(this, _SnsSqs_promises, "f"));
89
+ __classPrivateFieldGet(this, _SnsSqs_logger, "f").generic.info("Disconnected from SNS and SQS called");
90
+ }
91
+ async emitEvent(topicName, eventData) {
92
+ const messageId = crypto_1.default.randomBytes(10).toString('hex');
93
+ topicName = `${config_1.default.environment}-${topicName}`;
94
+ const topicArn = await this.createTopic(topicName);
95
+ const logger = (loggerContext_1.default.getLogger() ?? __classPrivateFieldGet(this, _SnsSqs_logger, "f")).withParams({
96
+ serviceBroker: { topicName, messageId },
97
+ });
98
+ try {
99
+ await __classPrivateFieldGet(this, _SnsSqs_snsClient, "f").publish({
100
+ TopicArn: topicArn,
101
+ Message: JSON.stringify({
102
+ eventData,
103
+ messageId,
104
+ context: executionContext_1.default.getFullData(),
105
+ }),
106
+ MessageAttributes: {
107
+ correlationId: {
108
+ DataType: 'String',
109
+ StringValue: executionContext_1.default.getCorrelationId(),
110
+ }
111
+ }
112
+ }).promise();
113
+ logger.generic.info("Message published to SNS topic");
114
+ }
115
+ catch (e) {
116
+ logger.internalError(e, "Unable to publish to SNS topic");
117
+ }
118
+ }
119
+ async consume(topicName, queueName, onMessage) {
120
+ topicName = `${config_1.default.environment}-${topicName}`;
121
+ queueName = `${config_1.default.environment}-${queueName}`;
122
+ const dlqName = `${config_1.default.environment}-ERROR-${queueName}`;
123
+ const { queueUrl } = await this.createQueueWithDLQ(queueName, dlqName);
124
+ await this.subscribeQueueToTopic(queueName, queueUrl, topicName);
125
+ const consumeLoop = async () => {
126
+ while (!__classPrivateFieldGet(this, _SnsSqs_isStopRequested, "f")) {
127
+ const params = {
128
+ QueueUrl: queueUrl,
129
+ WaitTimeSeconds: 20,
130
+ VisibilityTimeout: 20,
131
+ MaxNumberOfMessages: 10
132
+ };
133
+ const data = await __classPrivateFieldGet(this, _SnsSqs_sqsClient, "f").receiveMessage(params).promise();
134
+ if (data.Messages) {
135
+ await this.processMessagesInParallel(data.Messages, onMessage, topicName, queueName, queueUrl);
136
+ }
137
+ }
138
+ };
139
+ __classPrivateFieldGet(this, _SnsSqs_promises, "f").push(consumeLoop().catch(e => {
140
+ __classPrivateFieldGet(this, _SnsSqs_logger, "f").withParams({
141
+ serviceBroker: {
142
+ queueName,
143
+ topicName
144
+ }
145
+ }).generic.error(`Consumer fatal error\nerror: |${e.toString()}|`, e);
146
+ }));
147
+ }
148
+ async processMessagesInParallel(messages, onMessage, topicName, queueName, queueUrl) {
149
+ const processMessage = async (message) => {
150
+ let logger = __classPrivateFieldGet(this, _SnsSqs_logger, "f");
151
+ try {
152
+ const messageBody = JSON.parse(message.Body);
153
+ const { eventData, messageId, context } = JSON.parse(messageBody.Message);
154
+ executionContext_1.default.setFullData(context);
155
+ const startTime = process.hrtime();
156
+ logger = logger.withParams({
157
+ messageId,
158
+ correlationId: executionContext_1.default.getCorrelationId(),
159
+ login: executionContext_1.default.getAuthorizedUserLogin(),
160
+ serviceBroker: { topicName, queueName },
161
+ });
162
+ logger.generic.info("Consuming started");
163
+ await onMessage(eventData, { logger });
164
+ const diff = process.hrtime(startTime);
165
+ const timeInMilliseconds = diff[0] * 1000 + diff[1] / 1000000;
166
+ logger.generic.info("Consuming finished", { taskDuration: timeInMilliseconds });
167
+ await __classPrivateFieldGet(this, _SnsSqs_sqsClient, "f").deleteMessage({
168
+ QueueUrl: queueUrl,
169
+ ReceiptHandle: message.ReceiptHandle
170
+ }).promise();
171
+ }
172
+ catch (e) {
173
+ logger.generic.error(`Consuming error\nerror: |${e.toString()}|\nobject: |${message.Body}|`, e);
174
+ }
175
+ };
176
+ const messageProcessingPromises = messages.map(processMessage);
177
+ await Promise.allSettled(messageProcessingPromises);
178
+ }
179
+ async createTopic(topicName) {
180
+ if (!__classPrivateFieldGet(this, _SnsSqs_createdTopics, "f").has(topicName)) {
181
+ __classPrivateFieldGet(this, _SnsSqs_logger, "f").generic.info('Creating topic', {
182
+ serviceBroker: {
183
+ topicName
184
+ }
185
+ });
186
+ try {
187
+ const response = await __classPrivateFieldGet(this, _SnsSqs_snsClient, "f").createTopic({ Name: topicName }).promise();
188
+ const topicArn = response.TopicArn;
189
+ __classPrivateFieldGet(this, _SnsSqs_createdTopics, "f").add(topicName);
190
+ return topicArn;
191
+ }
192
+ catch (e) {
193
+ __classPrivateFieldGet(this, _SnsSqs_logger, "f").generic.info('Creating topic', {
194
+ serviceBroker: {
195
+ topicName
196
+ }
197
+ });
198
+ throw e;
199
+ }
200
+ }
201
+ return `arn:aws:sns:${config_1.default.aws.region}:${config_1.default.aws.accountId}:${topicName}`;
202
+ }
203
+ async createQueueWithDLQ(queueName, dlqName) {
204
+ const createQueue = async (queueName, redrivePolicy) => {
205
+ if (!__classPrivateFieldGet(this, _SnsSqs_createdQueues, "f").has(queueName)) {
206
+ __classPrivateFieldGet(this, _SnsSqs_logger, "f").generic.info('Creating queue', {
207
+ serviceBroker: {
208
+ queueName
209
+ }
210
+ });
211
+ const params = {
212
+ QueueName: queueName,
213
+ Attributes: {}
214
+ };
215
+ if (redrivePolicy) {
216
+ params.Attributes['RedrivePolicy'] = redrivePolicy;
217
+ }
218
+ const response = await __classPrivateFieldGet(this, _SnsSqs_sqsClient, "f").createQueue(params).promise();
219
+ __classPrivateFieldGet(this, _SnsSqs_createdQueues, "f").add(queueName);
220
+ return response.QueueUrl;
221
+ }
222
+ return `https://sqs.${config_1.default.aws.region}.amazonaws.com/${config_1.default.aws.accountId}/${queueName}`;
223
+ };
224
+ let deadLetterQueueUrl = await createQueue(dlqName);
225
+ // Get the ARN of the dead-letter queue
226
+ const { Attributes: dlqAttributes } = await __classPrivateFieldGet(this, _SnsSqs_sqsClient, "f").getQueueAttributes({
227
+ QueueUrl: deadLetterQueueUrl,
228
+ AttributeNames: ['QueueArn']
229
+ }).promise();
230
+ const dlqArn = dlqAttributes.QueueArn;
231
+ // Create the main queue with redrive policy pointing to the DLQ
232
+ const redrivePolicy = JSON.stringify({
233
+ maxReceiveCount: 1,
234
+ deadLetterTargetArn: dlqArn
235
+ });
236
+ const queueUrl = await createQueue(queueName, redrivePolicy);
237
+ return { queueUrl, deadLetterQueueUrl };
238
+ }
239
+ async subscribeQueueToTopic(queueName, queueUrl, topicName) {
240
+ __classPrivateFieldGet(this, _SnsSqs_logger, "f").generic.info('Subscribing queue to topic', {
241
+ serviceBroker: {
242
+ queueName,
243
+ topicName
244
+ }
245
+ });
246
+ const topicArn = await this.createTopic(topicName);
247
+ // Get the ARN of the queue
248
+ const { Attributes: queueAttributes } = await __classPrivateFieldGet(this, _SnsSqs_sqsClient, "f").getQueueAttributes({
249
+ QueueUrl: queueUrl,
250
+ AttributeNames: ['QueueArn']
251
+ }).promise();
252
+ const queueArn = queueAttributes.QueueArn;
253
+ const subscriptions = await __classPrivateFieldGet(this, _SnsSqs_snsClient, "f").listSubscriptionsByTopic({ TopicArn: topicArn }).promise();
254
+ const isAlreadySubscribed = subscriptions.Subscriptions.some(subscription => subscription.Endpoint === queueArn);
255
+ if (isAlreadySubscribed) {
256
+ __classPrivateFieldGet(this, _SnsSqs_logger, "f").generic.debug('Queue is already subscribed to the topic', {
257
+ serviceBroker: {
258
+ queueName,
259
+ topicName
260
+ }
261
+ });
262
+ return;
263
+ }
264
+ // Subscribe the queue to the topic
265
+ await __classPrivateFieldGet(this, _SnsSqs_snsClient, "f").subscribe({
266
+ Protocol: 'sqs',
267
+ TopicArn: topicArn,
268
+ Endpoint: queueArn
269
+ }).promise();
270
+ // Update the SQS queue policy to allow the SNS topic to send messages to the queue
271
+ const policy = {
272
+ Version: "2012-10-17",
273
+ Statement: [
274
+ {
275
+ Sid: "AllowSNSMessages",
276
+ Effect: "Allow",
277
+ Principal: "*",
278
+ Action: "sqs:SendMessage",
279
+ Resource: queueArn,
280
+ Condition: {
281
+ ArnEquals: {
282
+ "aws:SourceArn": topicArn
283
+ }
284
+ }
285
+ }
286
+ ]
287
+ };
288
+ await __classPrivateFieldGet(this, _SnsSqs_sqsClient, "f").setQueueAttributes({
289
+ QueueUrl: queueUrl,
290
+ Attributes: {
291
+ Policy: JSON.stringify(policy)
292
+ }
293
+ }).promise();
294
+ }
295
+ }
296
+ _SnsSqs_logger = new WeakMap(), _SnsSqs_snsClient = new WeakMap(), _SnsSqs_sqsClient = new WeakMap(), _SnsSqs_createdTopics = new WeakMap(), _SnsSqs_createdQueues = new WeakMap(), _SnsSqs_isStopRequested = new WeakMap(), _SnsSqs_promises = new WeakMap();
297
+ exports.default = SnsSqs;
298
+ //# sourceMappingURL=SnsSqs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SnsSqs.js","sourceRoot":"","sources":["../../../src/adapters/messageBroker/SnsSqs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { IMessageBroker } from './types';
2
+ import ServerLogger from '../../adapters/logger';
3
+ declare class MessageBrokerProxy implements IMessageBroker {
4
+ private broker;
5
+ constructor(logger: ServerLogger);
6
+ createTopics(topics: string[]): Promise<void>;
7
+ connect(): Promise<void>;
8
+ disconnect(): Promise<void>;
9
+ emitEvent(topic: string, eventData: Object): Promise<void>;
10
+ consume(topic: string, queue: string, onMessage: (msg: any, { logger }?: {
11
+ logger: ServerLogger;
12
+ }) => Promise<void>): Promise<any>;
13
+ checkLiveness(): Promise<boolean>;
14
+ setBroker(broker: IMessageBroker): void;
15
+ }
16
+ export default MessageBrokerProxy;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const SnsSqs_1 = __importDefault(require("./SnsSqs"));
7
+ const Rabbitmq_1 = __importDefault(require("./Rabbitmq"));
8
+ const config_1 = __importDefault(require("../../config"));
9
+ class MessageBrokerProxy {
10
+ constructor(logger) {
11
+ switch (config_1.default.messageBrokerType) {
12
+ case 'sqssns':
13
+ this.broker = new SnsSqs_1.default(logger);
14
+ break;
15
+ case 'rabbitmq':
16
+ this.broker = new Rabbitmq_1.default(logger);
17
+ break;
18
+ default:
19
+ throw new Error(`Unsupported message broker type: ${config_1.default.messageBrokerType}`);
20
+ }
21
+ }
22
+ async createTopics(topics) {
23
+ return this.broker.createTopics(topics);
24
+ }
25
+ async connect() {
26
+ return this.broker.connect();
27
+ }
28
+ async disconnect() {
29
+ return this.broker.disconnect();
30
+ }
31
+ async emitEvent(topic, eventData) {
32
+ return this.broker.emitEvent(topic, eventData);
33
+ }
34
+ async consume(topic, queue, onMessage) {
35
+ return this.broker.consume(topic, queue, onMessage);
36
+ }
37
+ async checkLiveness() {
38
+ return this.broker.checkLiveness();
39
+ }
40
+ setBroker(broker) {
41
+ this.broker = broker;
42
+ }
43
+ }
44
+ exports.default = MessageBrokerProxy;
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/messageBroker/index.ts"],"names":[],"mappings":";;;;;AACA,sDAA8B;AAC9B,0DAAkC;AAElC,0DAAkC;AAElC,MAAM,kBAAkB;IAGtB,YAAY,MAAoB;QAC9B,QAAQ,gBAAM,CAAC,iBAAiB,EAAE;YAChC,KAAK,QAAQ;gBACX,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAM,CAAC,MAAM,CAAC,CAAC;gBACjC,MAAM;YACR,KAAK,UAAU;gBACb,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAQ,CAAC,MAAM,CAAC,CAAC;gBACnC,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,oCAAoC,gBAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;SACnF;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAgB;QACjC,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,SAAiB;QAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,OAAO,CACX,KAAa,EACb,KAAa,EACb,SAA6E;QAE7E,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;IACrC,CAAC;IAED,SAAS,CAAC,MAAsB;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED,kBAAe,kBAAkB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import ServerLogger from "../logger";
2
+ export interface IMessageBroker {
3
+ connect(): Promise<void>;
4
+ disconnect(): Promise<void>;
5
+ consume(topic: string, queue: string, onMessage: (msg: any, { logger }?: {
6
+ logger: ServerLogger;
7
+ }) => Promise<void>): any;
8
+ checkLiveness(): Promise<boolean>;
9
+ createTopics(topics: string[]): Promise<void>;
10
+ emitEvent(topic: string, eventData: Object): Promise<void>;
11
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/adapters/messageBroker/types.ts"],"names":[],"mappings":""}
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
12
3
  if (kind === "m") throw new TypeError("Private method is not writable");
13
4
  if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
@@ -27,10 +18,8 @@ class Publisher {
27
18
  _Publisher_redisClientPub.set(this, void 0);
28
19
  __classPrivateFieldSet(this, _Publisher_redisClientPub, redisClientPub, "f");
29
20
  }
30
- publish(channel, message) {
31
- return __awaiter(this, void 0, void 0, function* () {
32
- return yield (0, util_1.promisify)(__classPrivateFieldGet(this, _Publisher_redisClientPub, "f").publish.bind(__classPrivateFieldGet(this, _Publisher_redisClientPub, "f")))(channel, message);
33
- });
21
+ async publish(channel, message) {
22
+ return await (0, util_1.promisify)(__classPrivateFieldGet(this, _Publisher_redisClientPub, "f").publish.bind(__classPrivateFieldGet(this, _Publisher_redisClientPub, "f")))(channel, message);
34
23
  }
35
24
  }
36
25
  _Publisher_redisClientPub = new WeakMap();
@@ -1 +1 @@
1
- {"version":3,"file":"Publisher.js","sourceRoot":"","sources":["../../../src/adapters/redisService/Publisher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA,+BAAiC;AAEjC,MAAM,SAAS;IAGb,YAAY,cAAsB;QAFlC,4CAAwB;QAGtB,uBAAA,IAAI,6BAAmB,cAAc,MAAA,CAAC;IACxC,CAAC;IAEK,OAAO,CAAC,OAAe,EAAE,OAAe;;YAC5C,OAAO,MAAM,IAAA,gBAAS,EAAC,uBAAA,IAAI,iCAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAA,IAAI,iCAAgB,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACpG,CAAC;KAAA;CACF;;AAED,kBAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"Publisher.js","sourceRoot":"","sources":["../../../src/adapters/redisService/Publisher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,+BAAiC;AAEjC,MAAM,SAAS;IAGb,YAAY,cAAsB;QAFlC,4CAAwB;QAGtB,uBAAA,IAAI,6BAAmB,cAAc,MAAA,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,OAAe;QAC5C,OAAO,MAAM,IAAA,gBAAS,EAAC,uBAAA,IAAI,iCAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAA,IAAI,iCAAgB,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpG,CAAC;CACF;;AAED,kBAAe,SAAS,CAAC"}
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
4
  };
@@ -41,32 +32,28 @@ class RedisService {
41
32
  this.redlock = redlock;
42
33
  this.logger = logger;
43
34
  }
44
- checkLiveness() {
45
- return __awaiter(this, void 0, void 0, function* () {
46
- return yield (0, util_1.promisify)(redisClientPublisher.ping.bind(redisClientPublisher))();
47
- });
35
+ async checkLiveness() {
36
+ return await (0, util_1.promisify)(redisClientPublisher.ping.bind(redisClientPublisher))();
48
37
  }
49
- disconnect() {
50
- return __awaiter(this, void 0, void 0, function* () {
51
- return new Promise((resolve, reject) => {
52
- this.logger.generic.info('shutting down redisClientPublisher');
53
- redisClientPublisher.quit((err) => {
38
+ async disconnect() {
39
+ return new Promise((resolve, reject) => {
40
+ this.logger.generic.info('shutting down redisClientPublisher');
41
+ redisClientPublisher.quit((err) => {
42
+ if (err) {
43
+ this.logger.internalError(err, 'Unable to redisClientPublisher.quit');
44
+ }
45
+ this.logger.generic.info('shutting down redisClientListener');
46
+ redisClientListener.quit((err) => {
54
47
  if (err) {
55
- this.logger.internalError(err, 'Unable to redisClientPublisher.quit');
48
+ this.logger.internalError(err, 'Unable to redisClientListener.quit');
56
49
  }
57
- this.logger.generic.info('shutting down redisClientListener');
58
- redisClientListener.quit((err) => {
50
+ this.logger.generic.info('shutting down redlockClient');
51
+ redlockClient.quit((err) => {
59
52
  if (err) {
60
- this.logger.internalError(err, 'Unable to redisClientListener.quit');
53
+ this.logger.internalError(err, 'Unable to redlockClient.quit');
61
54
  }
62
- this.logger.generic.info('shutting down redlockClient');
63
- redlockClient.quit((err) => {
64
- if (err) {
65
- this.logger.internalError(err, 'Unable to redlockClient.quit');
66
- }
67
- this.logger.generic.info('all the redises are down');
68
- resolve(null);
69
- });
55
+ this.logger.generic.info('all the redises are down');
56
+ resolve(null);
70
57
  });
71
58
  });
72
59
  });
@@ -81,90 +68,62 @@ class RedisService {
81
68
  getLocker() {
82
69
  return this.redlock;
83
70
  }
84
- _getVar(key) {
85
- return __awaiter(this, void 0, void 0, function* () {
86
- return yield (0, util_1.promisify)(redisClientPublisher.get.bind(redisClientPublisher))(key.toLowerCase());
87
- });
71
+ async _getVar(key) {
72
+ return await (0, util_1.promisify)(redisClientPublisher.get.bind(redisClientPublisher))(key.toLowerCase());
88
73
  }
89
- _getVarExpirationTime(key) {
90
- return __awaiter(this, void 0, void 0, function* () {
91
- return yield (0, util_1.promisify)(redisClientPublisher.ttl.bind(redisClientPublisher))(key.toLocaleLowerCase());
92
- });
74
+ async _getVarExpirationTime(key) {
75
+ return await (0, util_1.promisify)(redisClientPublisher.ttl.bind(redisClientPublisher))(key.toLocaleLowerCase());
93
76
  }
94
- _setVar(key, variable, expirationTime = null) {
95
- return __awaiter(this, void 0, void 0, function* () {
96
- const set = (k, v, e, callback) => {
97
- if (e) {
98
- redisClientPublisher.setex(k, e, v, callback);
99
- }
100
- else {
101
- redisClientPublisher.set(k, v, callback);
102
- }
103
- };
104
- return yield (0, util_1.promisify)(set.bind(redisClientPublisher))(key.toLowerCase(), variable, expirationTime);
105
- });
77
+ async _setVar(key, variable, expirationTime = null) {
78
+ const set = (k, v, e, callback) => {
79
+ if (e) {
80
+ redisClientPublisher.setex(k, e, v, callback);
81
+ }
82
+ else {
83
+ redisClientPublisher.set(k, v, callback);
84
+ }
85
+ };
86
+ return await (0, util_1.promisify)(set.bind(redisClientPublisher))(key.toLowerCase(), variable, expirationTime);
106
87
  }
107
- _setVarIfNotExits(key, variable) {
108
- return __awaiter(this, void 0, void 0, function* () {
109
- return yield (0, util_1.promisify)(redisClientPublisher.setnx.bind(redisClientPublisher))(key.toLowerCase(), variable);
110
- });
88
+ async _setVarIfNotExits(key, variable) {
89
+ return await (0, util_1.promisify)(redisClientPublisher.setnx.bind(redisClientPublisher))(key.toLowerCase(), variable);
111
90
  }
112
- _setVarIfNotExitsOrIncrement(key, expirationTime) {
113
- return __awaiter(this, void 0, void 0, function* () {
114
- const setResult = yield (0, util_1.promisify)(redisClientPublisher.set.bind(redisClientPublisher))(key.toLowerCase(), '1', 'NX', 'EX', expirationTime);
115
- if (setResult === 'OK') {
116
- return 1;
117
- }
118
- return yield this._increment(key);
119
- });
91
+ async _setVarIfNotExitsOrIncrement(key, expirationTime) {
92
+ const setResult = await (0, util_1.promisify)(redisClientPublisher.set.bind(redisClientPublisher))(key.toLowerCase(), '1', 'NX', 'EX', expirationTime);
93
+ if (setResult === 'OK') {
94
+ return 1;
95
+ }
96
+ return await this._increment(key);
120
97
  }
121
98
  ;
122
- _getHash(key) {
123
- return __awaiter(this, void 0, void 0, function* () {
124
- const value = yield this._getVar(key);
125
- return JSON.parse(value);
126
- });
99
+ async _getHash(key) {
100
+ const value = await this._getVar(key);
101
+ return JSON.parse(value);
127
102
  }
128
- _setHash(key, object, expirationTime = null) {
129
- return __awaiter(this, void 0, void 0, function* () {
130
- return yield this._setVar(key, JSON.stringify(object), expirationTime);
131
- });
103
+ async _setHash(key, object, expirationTime = null) {
104
+ return await this._setVar(key, JSON.stringify(object), expirationTime);
132
105
  }
133
- _deleteHash(key) {
134
- return __awaiter(this, void 0, void 0, function* () {
135
- const del = (s, c) => redisClientPublisher.del(s, c);
136
- return yield (0, util_1.promisify)(del.bind(redisClientPublisher))(key.toLowerCase());
137
- });
106
+ async _deleteHash(key) {
107
+ const del = (s, c) => redisClientPublisher.del(s, c);
108
+ return await (0, util_1.promisify)(del.bind(redisClientPublisher))(key.toLowerCase());
138
109
  }
139
- flushAll() {
140
- return __awaiter(this, void 0, void 0, function* () {
141
- return yield (0, util_1.promisify)(redisClientPublisher.flushall.bind(redisClientPublisher))();
142
- });
110
+ async flushAll() {
111
+ return await (0, util_1.promisify)(redisClientPublisher.flushall.bind(redisClientPublisher))();
143
112
  }
144
- _resetExpireTimeout(key, expirationTime) {
145
- return __awaiter(this, void 0, void 0, function* () {
146
- return yield (0, util_1.promisify)(redisClientPublisher.expire.bind(redisClientPublisher))(key.toLowerCase(), expirationTime);
147
- });
113
+ async _resetExpireTimeout(key, expirationTime) {
114
+ return await (0, util_1.promisify)(redisClientPublisher.expire.bind(redisClientPublisher))(key.toLowerCase(), expirationTime);
148
115
  }
149
- _increment(key) {
150
- return __awaiter(this, void 0, void 0, function* () {
151
- return yield (0, util_1.promisify)(redisClientPublisher.incr.bind(redisClientPublisher))(key.toLowerCase());
152
- });
116
+ async _increment(key) {
117
+ return await (0, util_1.promisify)(redisClientPublisher.incr.bind(redisClientPublisher))(key.toLowerCase());
153
118
  }
154
- _decrement(key) {
155
- return __awaiter(this, void 0, void 0, function* () {
156
- return yield (0, util_1.promisify)(redisClientPublisher.decr.bind(redisClientPublisher))(key.toLowerCase());
157
- });
119
+ async _decrement(key) {
120
+ return await (0, util_1.promisify)(redisClientPublisher.decr.bind(redisClientPublisher))(key.toLowerCase());
158
121
  }
159
- keys(pattern) {
160
- return __awaiter(this, void 0, void 0, function* () {
161
- return yield (0, util_1.promisify)(redisClientPublisher.keys.bind(redisClientPublisher))(pattern);
162
- });
122
+ async keys(pattern) {
123
+ return await (0, util_1.promisify)(redisClientPublisher.keys.bind(redisClientPublisher))(pattern);
163
124
  }
164
- emitEvent(eventName, message) {
165
- return __awaiter(this, void 0, void 0, function* () {
166
- return yield this.redisPublisher.publish(eventName, JSON.stringify(message));
167
- });
125
+ async emitEvent(eventName, message) {
126
+ return await this.redisPublisher.publish(eventName, JSON.stringify(message));
168
127
  }
169
128
  }
170
129
  exports.default = RedisService;