@campxdev/server-shared 1.6.49 → 1.6.50

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 (68) hide show
  1. package/dist/data-imports-manager/data-import-manager.module.js +5 -5
  2. package/dist/index.d.ts +2 -2
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +2 -2
  5. package/dist/index.js.map +1 -1
  6. package/dist/sqs-queues/constants/message-queue.constants.d.ts +3 -0
  7. package/dist/sqs-queues/constants/message-queue.constants.d.ts.map +1 -0
  8. package/dist/sqs-queues/constants/message-queue.constants.js +6 -0
  9. package/dist/sqs-queues/constants/message-queue.constants.js.map +1 -0
  10. package/dist/sqs-queues/decorators/message-queue.decorator.d.ts +4 -0
  11. package/dist/sqs-queues/decorators/message-queue.decorator.d.ts.map +1 -0
  12. package/dist/sqs-queues/decorators/message-queue.decorator.js +10 -0
  13. package/dist/sqs-queues/decorators/message-queue.decorator.js.map +1 -0
  14. package/dist/sqs-queues/index.d.ts +6 -0
  15. package/dist/sqs-queues/index.d.ts.map +1 -0
  16. package/dist/{task-queue → sqs-queues}/index.js +5 -5
  17. package/dist/sqs-queues/index.js.map +1 -0
  18. package/dist/sqs-queues/message-queue.module.d.ts +7 -0
  19. package/dist/sqs-queues/message-queue.module.d.ts.map +1 -0
  20. package/dist/sqs-queues/message-queue.module.js +60 -0
  21. package/dist/sqs-queues/message-queue.module.js.map +1 -0
  22. package/dist/sqs-queues/services/message-queue.handler.d.ts +17 -0
  23. package/dist/sqs-queues/services/message-queue.handler.d.ts.map +1 -0
  24. package/dist/sqs-queues/services/message-queue.handler.js +194 -0
  25. package/dist/sqs-queues/services/message-queue.handler.js.map +1 -0
  26. package/dist/sqs-queues/services/message-queue.service.d.ts +8 -0
  27. package/dist/sqs-queues/services/message-queue.service.d.ts.map +1 -0
  28. package/dist/{task-queue/task-queue.service.js → sqs-queues/services/message-queue.service.js} +12 -15
  29. package/dist/sqs-queues/services/message-queue.service.js.map +1 -0
  30. package/dist/sqs-queues/types/message-queue.types.d.ts +57 -0
  31. package/dist/sqs-queues/types/message-queue.types.d.ts.map +1 -0
  32. package/dist/sqs-queues/types/message-queue.types.js +9 -0
  33. package/dist/sqs-queues/types/message-queue.types.js.map +1 -0
  34. package/dist/sqs-queues/utils/message-queue.utils.d.ts +16 -0
  35. package/dist/sqs-queues/utils/message-queue.utils.d.ts.map +1 -0
  36. package/dist/sqs-queues/utils/message-queue.utils.js +68 -0
  37. package/dist/sqs-queues/utils/message-queue.utils.js.map +1 -0
  38. package/package.json +5 -3
  39. package/dist/task-queue/index.d.ts +0 -6
  40. package/dist/task-queue/index.d.ts.map +0 -1
  41. package/dist/task-queue/index.js.map +0 -1
  42. package/dist/task-queue/task-queue-manager.service.d.ts +0 -24
  43. package/dist/task-queue/task-queue-manager.service.d.ts.map +0 -1
  44. package/dist/task-queue/task-queue-manager.service.js +0 -322
  45. package/dist/task-queue/task-queue-manager.service.js.map +0 -1
  46. package/dist/task-queue/task-queue.constants.d.ts +0 -3
  47. package/dist/task-queue/task-queue.constants.d.ts.map +0 -1
  48. package/dist/task-queue/task-queue.constants.js +0 -6
  49. package/dist/task-queue/task-queue.constants.js.map +0 -1
  50. package/dist/task-queue/task-queue.decorator.d.ts +0 -3
  51. package/dist/task-queue/task-queue.decorator.d.ts.map +0 -1
  52. package/dist/task-queue/task-queue.decorator.js +0 -11
  53. package/dist/task-queue/task-queue.decorator.js.map +0 -1
  54. package/dist/task-queue/task-queue.module.d.ts +0 -7
  55. package/dist/task-queue/task-queue.module.d.ts.map +0 -1
  56. package/dist/task-queue/task-queue.module.js +0 -60
  57. package/dist/task-queue/task-queue.module.js.map +0 -1
  58. package/dist/task-queue/task-queue.service.d.ts +0 -12
  59. package/dist/task-queue/task-queue.service.d.ts.map +0 -1
  60. package/dist/task-queue/task-queue.service.js.map +0 -1
  61. package/dist/task-queue/task-queue.types.d.ts +0 -42
  62. package/dist/task-queue/task-queue.types.d.ts.map +0 -1
  63. package/dist/task-queue/task-queue.types.js +0 -3
  64. package/dist/task-queue/task-queue.types.js.map +0 -1
  65. package/dist/task-queue/task-queue.values.d.ts +0 -9
  66. package/dist/task-queue/task-queue.values.d.ts.map +0 -1
  67. package/dist/task-queue/task-queue.values.js +0 -59
  68. package/dist/task-queue/task-queue.values.js.map +0 -1
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.disableQueueExecutionType = exports.defaultProducerMessageFormatter = exports.defaultConsumerMessageFormatter = exports.producerJSONMessageFormatter = exports.consumerJSONMessageFormatter = void 0;
4
+ const request_store_1 = require("../../request-store");
5
+ const message_queue_types_1 = require("../types/message-queue.types");
6
+ function consumerJSONMessageFormatter(message) {
7
+ let body = {};
8
+ try {
9
+ body = JSON.parse(message.Body);
10
+ }
11
+ catch (error) {
12
+ console.error('error', error);
13
+ }
14
+ return body;
15
+ }
16
+ exports.consumerJSONMessageFormatter = consumerJSONMessageFormatter;
17
+ function producerJSONMessageFormatter(message) {
18
+ return message;
19
+ }
20
+ exports.producerJSONMessageFormatter = producerJSONMessageFormatter;
21
+ async function defaultConsumerMessageFormatter(message, sharedService) {
22
+ let body = {};
23
+ try {
24
+ body = JSON.parse(message.Body);
25
+ }
26
+ catch (error) {
27
+ console.error('error', error);
28
+ }
29
+ if (body.tenantDetails)
30
+ (0, request_store_1.setTenantDetails)(body.tenantDetails);
31
+ if (body.institution)
32
+ (0, request_store_1.setInstitution)(body.institution);
33
+ if (body.userData)
34
+ (0, request_store_1.setUserData)(body.userData);
35
+ if (body.evaluatorData)
36
+ (0, request_store_1.setEvaluatorData)(body.evaluatorData);
37
+ if (body.leadData)
38
+ (0, request_store_1.setLeadData)(body.leadData);
39
+ if (body?.tenantDetails?.id) {
40
+ const dataSource = await sharedService.getTenantRootConnection(body.tenantDetails.id);
41
+ (0, request_store_1.setTenantDataSource)(dataSource);
42
+ }
43
+ return body.messageBody;
44
+ }
45
+ exports.defaultConsumerMessageFormatter = defaultConsumerMessageFormatter;
46
+ function defaultProducerMessageFormatter(message) {
47
+ const body = {
48
+ tenantDetails: (0, request_store_1.getTenantDetailsIfExists)(),
49
+ institution: (0, request_store_1.getInstitutionOrFail)(),
50
+ userData: (0, request_store_1.getUserData)(),
51
+ evaluatorData: (0, request_store_1.getEvaluatorData)(),
52
+ leadData: (0, request_store_1.getLeadData)(),
53
+ messageBody: message || {},
54
+ };
55
+ return body;
56
+ }
57
+ exports.defaultProducerMessageFormatter = defaultProducerMessageFormatter;
58
+ function disableQueueExecutionType(disable) {
59
+ return (target) => {
60
+ if (!disable)
61
+ return target;
62
+ if (!target)
63
+ return [message_queue_types_1.QueueExecutionType.SEND];
64
+ return target.filter((type) => type !== message_queue_types_1.QueueExecutionType.RECEIVE);
65
+ };
66
+ }
67
+ exports.disableQueueExecutionType = disableQueueExecutionType;
68
+ //# sourceMappingURL=message-queue.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-queue.utils.js","sourceRoot":"","sources":["../../../src/sqs-queues/utils/message-queue.utils.ts"],"names":[],"mappings":";;;AACA,uDAY6B;AAE7B,sEAAkE;AAElE,SAAgB,4BAA4B,CAAC,OAAgB;IAC3D,IAAI,IAAI,GAAwB,EAAE,CAAC;IACnC,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AATD,oEASC;AAED,SAAgB,4BAA4B,CAAC,OAAe;IAC1D,OAAO,OAAO,CAAC;AACjB,CAAC;AAFD,oEAEC;AAEM,KAAK,UAAU,+BAA+B,CACnD,OAAgB,EAChB,aAA4B;IAE5B,IAAI,IAAI,GAAwB,EAAE,CAAC;IACnC,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,IAAI,CAAC,aAAa;QAAE,IAAA,gCAAgB,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7D,IAAI,IAAI,CAAC,WAAW;QAAE,IAAA,8BAAc,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,IAAI,IAAI,CAAC,QAAQ;QAAE,IAAA,2BAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,IAAI,CAAC,aAAa;QAAE,IAAA,gCAAgB,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7D,IAAI,IAAI,CAAC,QAAQ;QAAE,IAAA,2BAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE9C,IAAI,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACtF,IAAA,mCAAmB,EAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,IAAI,CAAC,WAAW,CAAC;AAC1B,CAAC;AAvBD,0EAuBC;AAED,SAAgB,+BAA+B,CAAC,OAAe;IAC7D,MAAM,IAAI,GAAG;QACX,aAAa,EAAE,IAAA,wCAAwB,GAAE;QACzC,WAAW,EAAE,IAAA,oCAAoB,GAAE;QACnC,QAAQ,EAAE,IAAA,2BAAW,GAAE;QACvB,aAAa,EAAE,IAAA,gCAAgB,GAAE;QACjC,QAAQ,EAAE,IAAA,2BAAW,GAAE;QACvB,WAAW,EAAE,OAAO,IAAI,EAAE;KAC3B,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC;AAXD,0EAWC;AAED,SAAgB,yBAAyB,CAAC,OAAgB;IACxD,OAAO,CAAC,MAA6B,EAAE,EAAE;QACvC,IAAI,CAAC,OAAO;YAAE,OAAO,MAAM,CAAC;QAE5B,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,wCAAkB,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,wCAAkB,CAAC,OAAO,CAAC,CAAC;IACtE,CAAC,CAAC;AACJ,CAAC;AAPD,8DAOC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@campxdev/server-shared",
3
- "version": "1.6.49",
3
+ "version": "1.6.50",
4
4
  "description": "Campx server shared files",
5
5
  "main": "dist/index.js",
6
6
  "license": "MIT",
@@ -24,7 +24,7 @@
24
24
  "@aws-sdk/client-cloudwatch": "^3.509.0",
25
25
  "@aws-sdk/client-cloudwatch-logs": "^3.511.0",
26
26
  "@aws-sdk/client-s3": "^3.490.0",
27
- "@aws-sdk/client-sqs": "^3.547.0",
27
+ "@aws-sdk/client-sqs": "^3.693.0",
28
28
  "@golevelup/nestjs-discovery": "^4.0.1",
29
29
  "@nestjs/common": "^10.3.0",
30
30
  "@nestjs/config": "^3.1.1",
@@ -35,6 +35,7 @@
35
35
  "bcrypt": "^5.1.1",
36
36
  "class-transformer": "^0.5.1",
37
37
  "class-validator": "^0.14.1",
38
+ "deepmerge": "^4.3.1",
38
39
  "joi": "^17.11.0",
39
40
  "jsonwebtoken": "^9.0.2",
40
41
  "lodash": "^4.17.21",
@@ -43,7 +44,8 @@
43
44
  "mysql2": "^3.7.0",
44
45
  "reflect-metadata": "^0.1.12",
45
46
  "rxjs": "^7.8.1",
46
- "sqs-consumer": "^10.3.0",
47
+ "sqs-consumer": "^11.2.0",
48
+ "sqs-producer": "^6.0.1",
47
49
  "typeorm": "^0.3.19",
48
50
  "typeorm-naming-strategies": "^4.1.0",
49
51
  "ulidx": "^2.2.1",
@@ -1,6 +0,0 @@
1
- export * from './task-queue.decorator';
2
- export * from './task-queue.module';
3
- export * from './task-queue.service';
4
- export * from './task-queue.types';
5
- export * from './task-queue.values';
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/task-queue/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/task-queue/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,sDAAoC;AACpC,uDAAqC;AACrC,qDAAmC;AACnC,sDAAoC"}
@@ -1,24 +0,0 @@
1
- import { DiscoveryService } from '@golevelup/nestjs-discovery';
2
- import { OnModuleDestroy, OnModuleInit } from '@nestjs/common';
3
- import { TaskQueueOptions } from './task-queue.types';
4
- export declare class TaskQueueManagerService implements OnModuleInit, OnModuleDestroy {
5
- private readonly options;
6
- private readonly discoveryService;
7
- private readonly queues;
8
- private readonly tasks;
9
- private preMessageHandlers;
10
- constructor(options: TaskQueueOptions, discoveryService: DiscoveryService);
11
- onModuleInit(): Promise<void>;
12
- onModuleDestroy(): Promise<void>;
13
- private initSqsClient;
14
- private createQueue;
15
- private getBatchSize;
16
- private processMessage;
17
- emit(taskName: string, messageBody: Record<string, any>): Promise<void>;
18
- emitToQueue(props: {
19
- queueKey: string;
20
- taskName: string;
21
- messageBody: Record<string, any>;
22
- }): Promise<void>;
23
- }
24
- //# sourceMappingURL=task-queue-manager.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-queue-manager.service.d.ts","sourceRoot":"","sources":["../../src/task-queue/task-queue-manager.service.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAGL,eAAe,EACf,YAAY,EAEb,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EAML,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAoB5B,qBACa,uBAAwB,YAAW,YAAY,EAAE,eAAe;IAM7C,OAAO,CAAC,QAAQ,CAAC,OAAO;IACpD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IANnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;IAC1D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkC;IACxD,OAAO,CAAC,kBAAkB,CAAqB;gBAGA,OAAO,EAAE,gBAAgB,EACrD,gBAAgB,EAAE,gBAAgB;IAG/C,YAAY;IA0GZ,eAAe;IAUrB,OAAO,CAAC,aAAa;YAYP,WAAW;IAmEzB,OAAO,CAAC,YAAY;YAON,cAAc;IAuEtB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAavD,WAAW,CAAC,KAAK,EAAE;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAClC;CA+CF"}
@@ -1,322 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.TaskQueueManagerService = void 0;
16
- const client_sqs_1 = require("@aws-sdk/client-sqs");
17
- const nestjs_discovery_1 = require("@golevelup/nestjs-discovery");
18
- const common_1 = require("@nestjs/common");
19
- const lodash_1 = require("lodash");
20
- const sqs_consumer_1 = require("sqs-consumer");
21
- const utils_1 = require("../utils");
22
- const task_queue_constants_1 = require("./task-queue.constants");
23
- const task_queue_values_1 = require("./task-queue.values");
24
- const defaultExecutionTypes = [task_queue_values_1.QueueExecutionType.RECEIVE, task_queue_values_1.QueueExecutionType.SEND];
25
- let TaskQueueManagerService = class TaskQueueManagerService {
26
- constructor(options, discoveryService) {
27
- this.options = options;
28
- this.discoveryService = discoveryService;
29
- this.queues = new Map();
30
- this.tasks = new Map();
31
- }
32
- async onModuleInit() {
33
- this.preMessageHandlers = this.options.preMessageHandlers || (0, task_queue_values_1.defaultPreMessageHandlers)();
34
- /**
35
- * Queue keys should be unique
36
- * Validate the queue keys and throw an error if duplicate keys are found
37
- */
38
- const allKeys = this.options.queues.map((v) => v.key);
39
- const duplicateKeys = allKeys.filter((v, i) => allKeys.indexOf(v) !== i);
40
- if (duplicateKeys.length) {
41
- throw new Error(`Duplicate queue keys found: ${duplicateKeys.join(', ')}`);
42
- }
43
- /**
44
- * Get all the task handlers and their respective details
45
- */
46
- const taskHandlers = await this.discoveryService.providerMethodsWithMetaAtKey(task_queue_constants_1.TASK_QUEUE_EXECUTION_METHOD);
47
- const taskValues = taskHandlers.map((t) => ({
48
- taskName: t.meta.taskName,
49
- queueKey: t.meta.queueKey,
50
- taskFn: t.discoveredMethod.handler.bind(t.discoveredMethod.parentClass.instance),
51
- }));
52
- /**
53
- * Task names should be unique
54
- * Validate the task names and throw an error if duplicate task names are found
55
- */
56
- const taskNames = taskValues.map((t) => t.taskName);
57
- const duplicateTaskNames = taskNames.filter((v, i) => taskNames.indexOf(v) !== i);
58
- if (duplicateTaskNames.length) {
59
- throw new Error(`Duplicate task found: ${duplicateTaskNames.join(', ')}`);
60
- }
61
- /**
62
- * Validating the tasks
63
- * - Queue which is associated with the task should be registered
64
- * - Queue should be configured for receiving messages if the task handler is registered
65
- */
66
- const queueMap = (0, lodash_1.keyBy)(this.options.queues, (v) => v.key);
67
- for (const task of taskValues) {
68
- const queue = queueMap[task.queueKey];
69
- if (!queue) {
70
- throw new Error(`Queue: ${task.queueKey} associated with task: ${task.taskName}, is not registered`);
71
- }
72
- if (queue.executionTypes && !queue.executionTypes.includes(task_queue_values_1.QueueExecutionType.RECEIVE)) {
73
- throw new Error(`Queue: ${task.queueKey} associated with task: ${task.taskName}, is not configured for receiving messages`);
74
- }
75
- this.tasks.set(task.taskName, task);
76
- }
77
- /**
78
- * Validating the queues
79
- * - Queue should have at least one task associated with it if it is configured for receiving messages
80
- * - Queue should have only one task associated with it if it is configured as singleTaskQueue
81
- * - Usually for single task queues, no task details are associated in the SQS Message
82
- */
83
- const tasksMap = (0, lodash_1.groupBy)(taskValues, (t) => t.queueKey);
84
- for (const queue of this.options.queues) {
85
- const tasks = tasksMap[queue.key] || [];
86
- const executionTypes = queue.executionTypes || defaultExecutionTypes;
87
- if (executionTypes.includes(task_queue_values_1.QueueExecutionType.RECEIVE) && !tasks.length) {
88
- throw new Error(`Queue: ${queue.key} is configured for receiving messages but no tasks are associated with it`);
89
- }
90
- if (executionTypes.includes(task_queue_values_1.QueueExecutionType.RECEIVE) &&
91
- queue.singleTaskQueue &&
92
- tasks.length > 1) {
93
- throw new Error(`Queue: ${queue.key} is configured as singleTaskQueue but has more than one task associated with it`);
94
- }
95
- }
96
- for (const queue of this.options.queues) {
97
- const tasks = tasksMap[queue.key] || [];
98
- await this.createQueue(queue, tasks);
99
- }
100
- if (this.options.globalConfig?.disableQueue)
101
- return;
102
- for (const queue of this.queues.values()) {
103
- if (queue.taskQueue.config?.disableQueue)
104
- continue;
105
- const executionTypes = queue.taskQueue.executionTypes || defaultExecutionTypes;
106
- if (executionTypes.includes(task_queue_values_1.QueueExecutionType.RECEIVE)) {
107
- const consumer = queue.consumer;
108
- if (!consumer.status.isRunning) {
109
- consumer.start();
110
- }
111
- }
112
- }
113
- }
114
- async onModuleDestroy() {
115
- for (const queue of this.queues.values()) {
116
- const consumer = queue.consumer;
117
- if (consumer.status.isRunning) {
118
- consumer.stop();
119
- }
120
- }
121
- }
122
- initSqsClient(details) {
123
- details = details || this.options.globalConfig?.sqsDetails;
124
- return new client_sqs_1.SQSClient({
125
- region: details?.region,
126
- credentials: {
127
- accessKeyId: details?.accessKeyId,
128
- secretAccessKey: details?.secretAccessKey,
129
- },
130
- });
131
- }
132
- async createQueue(taskQueue, tasks) {
133
- if (this.queues.has(taskQueue.key))
134
- return;
135
- let queueUrl;
136
- const getCommand = new client_sqs_1.GetQueueUrlCommand({
137
- QueueName: taskQueue.queueName,
138
- });
139
- const sqsClient = this.initSqsClient(taskQueue.config?.sqsDetails);
140
- try {
141
- const result = await sqsClient.send(getCommand);
142
- queueUrl = result.QueueUrl;
143
- }
144
- catch (err) {
145
- const errorCode = err['Code'];
146
- if (errorCode !== 'AWS.SimpleQueueService.NonExistentQueue') {
147
- throw err;
148
- }
149
- if (taskQueue.config?.disableAutoCreateQueue) {
150
- throw new Error(`There is no SQS queue with name: ${taskQueue.queueName}`);
151
- }
152
- const createCommand = new client_sqs_1.CreateQueueCommand({
153
- QueueName: taskQueue.queueName,
154
- Attributes: {
155
- ...(taskQueue.queueName.endsWith('.fifo') && {
156
- FifoQueue: 'true',
157
- }),
158
- },
159
- });
160
- try {
161
- const result = await sqsClient.send(createCommand);
162
- queueUrl = result.QueueUrl;
163
- }
164
- catch (err) {
165
- throw err;
166
- }
167
- }
168
- if (!queueUrl) {
169
- throw new Error('Error creating queue');
170
- }
171
- const consumer = sqs_consumer_1.Consumer.create({
172
- queueUrl: queueUrl,
173
- sqs: sqsClient,
174
- batchSize: this.getBatchSize(taskQueue.config?.batchSize),
175
- handleMessage: async (message) => {
176
- const queueDetails = this.queues.get(taskQueue.key);
177
- await this.processMessage(message, queueDetails);
178
- },
179
- messageAttributeNames: ['taskName'],
180
- });
181
- this.queues.set(taskQueue.key, {
182
- queueName: taskQueue.queueName,
183
- queueUrl,
184
- consumer,
185
- taskQueue,
186
- sqsClient,
187
- tasks,
188
- });
189
- }
190
- getBatchSize(value) {
191
- if (!value)
192
- return 10;
193
- if (value < 1)
194
- return 1;
195
- if (value > 10)
196
- return 10;
197
- return value;
198
- }
199
- async processMessage(message, queue) {
200
- let task = null;
201
- /**
202
- * If singleTaskQueue is enabled, then the task details are not associated with the message
203
- * The task details are fetched from the first task in the queue
204
- */
205
- if (queue.taskQueue.singleTaskQueue) {
206
- task = queue.tasks[0];
207
- }
208
- /**
209
- * If singleTaskQueue is not enabled, then the task details are associated with the message
210
- * The task details are fetched from the message attributes
211
- */
212
- if (!queue.taskQueue.singleTaskQueue) {
213
- message.MessageAttributes = message.MessageAttributes || {};
214
- const taskName = message.MessageAttributes.taskName?.StringValue;
215
- if (!taskName) {
216
- throw new Error('Task name not found in message attributes');
217
- }
218
- task = this.tasks.get(taskName);
219
- }
220
- /**
221
- * If task details are not found, then throw an error
222
- */
223
- if (!task) {
224
- throw new Error('Task details not found');
225
- }
226
- const changeVisibility = async () => {
227
- const changeMessageVisibilityCommand = new client_sqs_1.ChangeMessageVisibilityCommand({
228
- QueueUrl: queue.queueUrl,
229
- ReceiptHandle: message.ReceiptHandle,
230
- VisibilityTimeout: 60,
231
- });
232
- try {
233
- await queue.sqsClient.send(changeMessageVisibilityCommand);
234
- console.log('Visibility timeout updated successfully');
235
- }
236
- catch (err) {
237
- console.log('error updating Visibility timeout', err);
238
- }
239
- };
240
- await changeVisibility();
241
- const timer = setInterval(changeVisibility, 1000 * 50);
242
- let body = {};
243
- try {
244
- body = JSON.parse(message.Body);
245
- }
246
- catch (error) {
247
- console.error('error', error);
248
- }
249
- try {
250
- if (queue.taskQueue.disablePreProcessFn) {
251
- await task.taskFn(body);
252
- }
253
- else {
254
- await this.preMessageHandlers.preProcessMessageFn(body, task.taskFn);
255
- }
256
- }
257
- catch (error) {
258
- console.error('error', error);
259
- throw error;
260
- }
261
- finally {
262
- clearInterval(timer);
263
- }
264
- }
265
- async emit(taskName, messageBody) {
266
- const task = this.tasks.get(taskName);
267
- if (!task) {
268
- throw new common_1.UnprocessableEntityException(`Task ${taskName} not found`);
269
- }
270
- return this.emitToQueue({
271
- queueKey: task.queueKey,
272
- taskName,
273
- messageBody,
274
- });
275
- }
276
- async emitToQueue(props) {
277
- const { queueKey, taskName, messageBody } = props;
278
- const body = this.preMessageHandlers.preSendMessageFn(messageBody);
279
- // Check the size of the body
280
- if (JSON.stringify(body).length > 216 * 1024) {
281
- throw new common_1.UnprocessableEntityException('Message body too large');
282
- }
283
- const queue = this.queues.get(queueKey);
284
- if (!queue) {
285
- console.error('Queue not found', queueKey);
286
- throw new common_1.UnprocessableEntityException('Task queue not found');
287
- }
288
- if (queue.taskQueue.executionTypes &&
289
- !queue.taskQueue.executionTypes.includes(task_queue_values_1.QueueExecutionType.SEND)) {
290
- throw new common_1.UnprocessableEntityException('This Task queue is not configured for sending messages');
291
- }
292
- const isFifoQueue = queue.queueName.endsWith('.fifo');
293
- const command = new client_sqs_1.SendMessageCommand({
294
- QueueUrl: queue.queueUrl,
295
- MessageBody: JSON.stringify(body),
296
- ...(isFifoQueue && {
297
- MessageGroupId: (0, utils_1.generateId)(),
298
- MessageDeduplicationId: (0, utils_1.generateId)(),
299
- }),
300
- MessageAttributes: {
301
- taskName: {
302
- DataType: 'String',
303
- StringValue: taskName,
304
- },
305
- },
306
- });
307
- try {
308
- await queue.sqsClient.send(command);
309
- }
310
- catch (err) {
311
- console.error('Error sending message to SQS', err);
312
- throw new common_1.UnprocessableEntityException('Error sending to queue');
313
- }
314
- }
315
- };
316
- exports.TaskQueueManagerService = TaskQueueManagerService;
317
- exports.TaskQueueManagerService = TaskQueueManagerService = __decorate([
318
- (0, common_1.Injectable)(),
319
- __param(0, (0, common_1.Inject)(task_queue_constants_1.TASK_QUEUE_OPTIONS)),
320
- __metadata("design:paramtypes", [Object, nestjs_discovery_1.DiscoveryService])
321
- ], TaskQueueManagerService);
322
- //# sourceMappingURL=task-queue-manager.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-queue-manager.service.js","sourceRoot":"","sources":["../../src/task-queue/task-queue-manager.service.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export declare const TASK_QUEUE_EXECUTION_METHOD: unique symbol;
2
- export declare const TASK_QUEUE_OPTIONS: unique symbol;
3
- //# sourceMappingURL=task-queue.constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-queue.constants.d.ts","sourceRoot":"","sources":["../../src/task-queue/task-queue.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,eAA4C,CAAC;AACrF,eAAO,MAAM,kBAAkB,eAAmC,CAAC"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TASK_QUEUE_OPTIONS = exports.TASK_QUEUE_EXECUTION_METHOD = void 0;
4
- exports.TASK_QUEUE_EXECUTION_METHOD = Symbol.for('TASK_QUEUE_EXECUTION_METHOD');
5
- exports.TASK_QUEUE_OPTIONS = Symbol.for('TASK_QUEUE_OPTIONS');
6
- //# sourceMappingURL=task-queue.constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-queue.constants.js","sourceRoot":"","sources":["../../src/task-queue/task-queue.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,2BAA2B,GAAG,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;AACxE,QAAA,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- import { TASK_QUEUE_EXECUTION_METHOD } from './task-queue.constants';
2
- export declare const OnTaskQueueEvent: (taskName: string, queueKey: string) => import("@nestjs/common").CustomDecorator<typeof TASK_QUEUE_EXECUTION_METHOD>;
3
- //# sourceMappingURL=task-queue.decorator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-queue.decorator.d.ts","sourceRoot":"","sources":["../../src/task-queue/task-queue.decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAGrE,eAAO,MAAM,gBAAgB,aAAc,MAAM,YAAY,MAAM,iFAGlE,CAAC"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OnTaskQueueEvent = void 0;
4
- const common_1 = require("@nestjs/common");
5
- const task_queue_constants_1 = require("./task-queue.constants");
6
- const OnTaskQueueEvent = (taskName, queueKey) => {
7
- const value = { taskName, queueKey };
8
- return (0, common_1.SetMetadata)(task_queue_constants_1.TASK_QUEUE_EXECUTION_METHOD, value);
9
- };
10
- exports.OnTaskQueueEvent = OnTaskQueueEvent;
11
- //# sourceMappingURL=task-queue.decorator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-queue.decorator.js","sourceRoot":"","sources":["../../src/task-queue/task-queue.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAC7C,iEAAqE;AAG9D,MAAM,gBAAgB,GAAG,CAAC,QAAgB,EAAE,QAAgB,EAAE,EAAE;IACrE,MAAM,KAAK,GAAqB,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACvD,OAAO,IAAA,oBAAW,EAAC,kDAA2B,EAAE,KAAK,CAAC,CAAC;AACzD,CAAC,CAAC;AAHW,QAAA,gBAAgB,oBAG3B"}
@@ -1,7 +0,0 @@
1
- import { DynamicModule } from '@nestjs/common';
2
- import { TaskQueueAsyncOptions, TaskQueueOptions } from './task-queue.types';
3
- export declare class TaskQueueModule {
4
- static forRoot(props: TaskQueueOptions): DynamicModule;
5
- static forRootAsync(props: TaskQueueAsyncOptions): DynamicModule;
6
- }
7
- //# sourceMappingURL=task-queue.module.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-queue.module.d.ts","sourceRoot":"","sources":["../../src/task-queue/task-queue.module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAkB,MAAM,gBAAgB,CAAC;AAI/D,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE7E,qBAMa,eAAe;IAC1B,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa;IAiBtD,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,qBAAqB,GAAG,aAAa;CAiBjE"}
@@ -1,60 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var TaskQueueModule_1;
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.TaskQueueModule = void 0;
11
- const nestjs_discovery_1 = require("@golevelup/nestjs-discovery");
12
- const common_1 = require("@nestjs/common");
13
- const task_queue_manager_service_1 = require("./task-queue-manager.service");
14
- const task_queue_constants_1 = require("./task-queue.constants");
15
- const task_queue_service_1 = require("./task-queue.service");
16
- let TaskQueueModule = TaskQueueModule_1 = class TaskQueueModule {
17
- static forRoot(props) {
18
- return {
19
- global: true,
20
- module: TaskQueueModule_1,
21
- imports: [nestjs_discovery_1.DiscoveryModule],
22
- providers: [
23
- {
24
- provide: task_queue_constants_1.TASK_QUEUE_OPTIONS,
25
- useValue: props,
26
- },
27
- task_queue_manager_service_1.TaskQueueManagerService,
28
- task_queue_service_1.TaskQueueService,
29
- ],
30
- exports: [task_queue_service_1.TaskQueueService],
31
- };
32
- }
33
- static forRootAsync(props) {
34
- return {
35
- global: true,
36
- module: TaskQueueModule_1,
37
- imports: [nestjs_discovery_1.DiscoveryModule, ...(props.imports || [])],
38
- providers: [
39
- {
40
- provide: task_queue_constants_1.TASK_QUEUE_OPTIONS,
41
- useFactory: props.useFactory,
42
- inject: props.inject,
43
- },
44
- task_queue_manager_service_1.TaskQueueManagerService,
45
- task_queue_service_1.TaskQueueService,
46
- ],
47
- exports: [task_queue_service_1.TaskQueueService],
48
- };
49
- }
50
- };
51
- exports.TaskQueueModule = TaskQueueModule;
52
- exports.TaskQueueModule = TaskQueueModule = TaskQueueModule_1 = __decorate([
53
- (0, common_1.Global)(),
54
- (0, common_1.Module)({
55
- imports: [nestjs_discovery_1.DiscoveryModule],
56
- providers: [task_queue_manager_service_1.TaskQueueManagerService, task_queue_service_1.TaskQueueService],
57
- exports: [task_queue_service_1.TaskQueueService],
58
- })
59
- ], TaskQueueModule);
60
- //# sourceMappingURL=task-queue.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-queue.module.js","sourceRoot":"","sources":["../../src/task-queue/task-queue.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,kEAA8D;AAC9D,2CAA+D;AAC/D,6EAAuE;AACvE,iEAA4D;AAC5D,6DAAwD;AASjD,IAAM,eAAe,uBAArB,MAAM,eAAe;IAC1B,MAAM,CAAC,OAAO,CAAC,KAAuB;QACpC,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,iBAAe;YACvB,OAAO,EAAE,CAAC,kCAAe,CAAC;YAC1B,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,yCAAkB;oBAC3B,QAAQ,EAAE,KAAK;iBAChB;gBACD,oDAAuB;gBACvB,qCAAgB;aACjB;YACD,OAAO,EAAE,CAAC,qCAAgB,CAAC;SAC5B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,KAA4B;QAC9C,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,iBAAe;YACvB,OAAO,EAAE,CAAC,kCAAe,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YACpD,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,yCAAkB;oBAC3B,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB;gBACD,oDAAuB;gBACvB,qCAAgB;aACjB;YACD,OAAO,EAAE,CAAC,qCAAgB,CAAC;SAC5B,CAAC;IACJ,CAAC;CACF,CAAA;AAnCY,0CAAe;0BAAf,eAAe;IAN3B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,kCAAe,CAAC;QAC1B,SAAS,EAAE,CAAC,oDAAuB,EAAE,qCAAgB,CAAC;QACtD,OAAO,EAAE,CAAC,qCAAgB,CAAC;KAC5B,CAAC;GACW,eAAe,CAmC3B"}
@@ -1,12 +0,0 @@
1
- import { TaskQueueManagerService } from './task-queue-manager.service';
2
- export declare class TaskQueueService {
3
- private readonly manager;
4
- constructor(manager: TaskQueueManagerService);
5
- emit(taskName: string, messageBody: Record<string, any>): Promise<void>;
6
- emitToQueue(props: {
7
- queueKey: string;
8
- taskName: string;
9
- messageBody: Record<string, any>;
10
- }): Promise<void>;
11
- }
12
- //# sourceMappingURL=task-queue.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-queue.service.d.ts","sourceRoot":"","sources":["../../src/task-queue/task-queue.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,qBACa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,uBAAuB;IAEvD,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAIvD,WAAW,CAAC,KAAK,EAAE;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAClC;CAGF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-queue.service.js","sourceRoot":"","sources":["../../src/task-queue/task-queue.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6EAAuE;AAGhE,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YAA6B,OAAgC;QAAhC,YAAO,GAAP,OAAO,CAAyB;IAAG,CAAC;IAEjE,KAAK,CAAC,IAAI,CAAC,QAAgB,EAAE,WAAgC;QAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAIjB;QACC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;CACF,CAAA;AAdY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAE2B,oDAAuB;GADlD,gBAAgB,CAc5B"}