@tsed/bullmq 7.38.0

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 (118) hide show
  1. package/.barrelsby.json +5 -0
  2. package/README.md +180 -0
  3. package/coverage/clover.xml +180 -0
  4. package/coverage/coverage-final.json +5 -0
  5. package/coverage/coverage-summary.json +6 -0
  6. package/coverage/lcov-report/Job.ts.html +136 -0
  7. package/coverage/lcov-report/base.css +224 -0
  8. package/coverage/lcov-report/block-navigation.js +87 -0
  9. package/coverage/lcov-report/decorators/Job.ts.html +136 -0
  10. package/coverage/lcov-report/decorators/index.html +116 -0
  11. package/coverage/lcov-report/dispatchers/JobDispatcher.ts.html +148 -0
  12. package/coverage/lcov-report/dispatchers/index.html +116 -0
  13. package/coverage/lcov-report/favicon.png +0 -0
  14. package/coverage/lcov-report/index.html +161 -0
  15. package/coverage/lcov-report/prettify.css +1 -0
  16. package/coverage/lcov-report/prettify.js +2 -0
  17. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  18. package/coverage/lcov-report/sorter.js +196 -0
  19. package/coverage/lcov-report/src/BullMQModule.ts.html +361 -0
  20. package/coverage/lcov-report/src/config/config.ts.html +142 -0
  21. package/coverage/lcov-report/src/config/index.html +116 -0
  22. package/coverage/lcov-report/src/decorators/Job.ts.html +136 -0
  23. package/coverage/lcov-report/src/decorators/index.html +116 -0
  24. package/coverage/lcov-report/src/dispatchers/JobDispatcher.ts.html +151 -0
  25. package/coverage/lcov-report/src/dispatchers/index.html +116 -0
  26. package/coverage/lcov-report/src/index.html +116 -0
  27. package/coverage/lcov-report/src/processors/ProcessorFactory.ts.html +166 -0
  28. package/coverage/lcov-report/src/processors/index.html +116 -0
  29. package/coverage/lcov.info +245 -0
  30. package/jest.config.js +11 -0
  31. package/lib/cjs/BullMQModule.js +98 -0
  32. package/lib/cjs/BullMQModule.js.map +1 -0
  33. package/lib/cjs/config/config.js +3 -0
  34. package/lib/cjs/config/config.js.map +1 -0
  35. package/lib/cjs/contracts/JobMethods.js +3 -0
  36. package/lib/cjs/contracts/JobMethods.js.map +1 -0
  37. package/lib/cjs/contracts/JobStore.js +3 -0
  38. package/lib/cjs/contracts/JobStore.js.map +1 -0
  39. package/lib/cjs/contracts/index.js +9 -0
  40. package/lib/cjs/contracts/index.js.map +1 -0
  41. package/lib/cjs/decorators/Job.js +17 -0
  42. package/lib/cjs/decorators/Job.js.map +1 -0
  43. package/lib/cjs/decorators/JobController.js +17 -0
  44. package/lib/cjs/decorators/JobController.js.map +1 -0
  45. package/lib/cjs/decorators/index.js +8 -0
  46. package/lib/cjs/decorators/index.js.map +1 -0
  47. package/lib/cjs/dispatchers/JobDispatcher.js +27 -0
  48. package/lib/cjs/dispatchers/JobDispatcher.js.map +1 -0
  49. package/lib/cjs/dispatchers/index.js +8 -0
  50. package/lib/cjs/dispatchers/index.js.map +1 -0
  51. package/lib/cjs/index.js +13 -0
  52. package/lib/cjs/index.js.map +1 -0
  53. package/lib/cjs/package.json +3 -0
  54. package/lib/cjs/processors/ProcessorFactory.js +20 -0
  55. package/lib/cjs/processors/ProcessorFactory.js.map +1 -0
  56. package/lib/esm/BullMQModule.js +95 -0
  57. package/lib/esm/BullMQModule.js.map +1 -0
  58. package/lib/esm/config/config.js +2 -0
  59. package/lib/esm/config/config.js.map +1 -0
  60. package/lib/esm/contracts/JobMethods.js +2 -0
  61. package/lib/esm/contracts/JobMethods.js.map +1 -0
  62. package/lib/esm/contracts/JobStore.js +2 -0
  63. package/lib/esm/contracts/JobStore.js.map +1 -0
  64. package/lib/esm/contracts/index.js +6 -0
  65. package/lib/esm/contracts/index.js.map +1 -0
  66. package/lib/esm/decorators/JobController.js +13 -0
  67. package/lib/esm/decorators/JobController.js.map +1 -0
  68. package/lib/esm/decorators/index.js +5 -0
  69. package/lib/esm/decorators/index.js.map +1 -0
  70. package/lib/esm/dispatchers/JobDispatcher.js +24 -0
  71. package/lib/esm/dispatchers/JobDispatcher.js.map +1 -0
  72. package/lib/esm/dispatchers/index.js +5 -0
  73. package/lib/esm/dispatchers/index.js.map +1 -0
  74. package/lib/esm/index.js +10 -0
  75. package/lib/esm/index.js.map +1 -0
  76. package/lib/esm/package.json +3 -0
  77. package/lib/tsconfig.esm.tsbuildinfo +1 -0
  78. package/lib/tsconfig.tsbuildinfo +1 -0
  79. package/lib/types/BullMQModule.d.ts +14 -0
  80. package/lib/types/config/config.d.ts +15 -0
  81. package/lib/types/contracts/JobMethods.d.ts +3 -0
  82. package/lib/types/contracts/JobStore.d.ts +6 -0
  83. package/lib/types/contracts/index.d.ts +5 -0
  84. package/lib/types/decorators/Job.d.ts +2 -0
  85. package/lib/types/decorators/JobController.d.ts +2 -0
  86. package/lib/types/decorators/index.d.ts +4 -0
  87. package/lib/types/dispatchers/JobDispatcher.d.ts +9 -0
  88. package/lib/types/dispatchers/index.d.ts +4 -0
  89. package/lib/types/index.d.ts +9 -0
  90. package/lib/types/processors/ProcessorFactory.d.ts +7 -0
  91. package/package.json +51 -0
  92. package/src/BullMQModule.js +149 -0
  93. package/src/BullMQModule.spec.js +236 -0
  94. package/src/BullMQModule.spec.ts +184 -0
  95. package/src/BullMQModule.ts +93 -0
  96. package/src/config/config.js +2 -0
  97. package/src/config/config.ts +19 -0
  98. package/src/contracts/JobMethods.js +2 -0
  99. package/src/contracts/JobMethods.ts +3 -0
  100. package/src/contracts/JobStore.js +2 -0
  101. package/src/contracts/JobStore.ts +7 -0
  102. package/src/contracts/index.js +21 -0
  103. package/src/contracts/index.ts +6 -0
  104. package/src/decorators/Job.js +18 -0
  105. package/src/decorators/JobController.js +18 -0
  106. package/src/decorators/JobController.spec.ts +50 -0
  107. package/src/decorators/JobController.ts +17 -0
  108. package/src/decorators/index.js +20 -0
  109. package/src/decorators/index.ts +5 -0
  110. package/src/dispatchers/JobDispatcher.js +72 -0
  111. package/src/dispatchers/JobDispatcher.spec.js +98 -0
  112. package/src/dispatchers/JobDispatcher.spec.ts +52 -0
  113. package/src/dispatchers/JobDispatcher.ts +22 -0
  114. package/src/dispatchers/index.js +20 -0
  115. package/src/dispatchers/index.ts +5 -0
  116. package/src/index.ts +10 -0
  117. package/tsconfig.esm.json +39 -0
  118. package/tsconfig.json +39 -0
@@ -0,0 +1,116 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/processors</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../prettify.css" />
9
+ <link rel="stylesheet" href="../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../index.html">All files</a> src/processors</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">55.55% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>15/27</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">75% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>3/4</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>3/3</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">55.55% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>15/27</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line medium'></div>
65
+ <div class="pad1">
66
+ <table class="coverage-summary">
67
+ <thead>
68
+ <tr>
69
+ <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
70
+ <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
71
+ <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
72
+ <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
73
+ <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
74
+ <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
75
+ <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
76
+ <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
77
+ <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
78
+ <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
79
+ </tr>
80
+ </thead>
81
+ <tbody><tr>
82
+ <td class="file medium" data-value="ProcessorFactory.ts"><a href="ProcessorFactory.ts.html">ProcessorFactory.ts</a></td>
83
+ <td data-value="55.55" class="pic medium">
84
+ <div class="chart"><div class="cover-fill" style="width: 55%"></div><div class="cover-empty" style="width: 45%"></div></div>
85
+ </td>
86
+ <td data-value="55.55" class="pct medium">55.55%</td>
87
+ <td data-value="27" class="abs medium">15/27</td>
88
+ <td data-value="75" class="pct high">75%</td>
89
+ <td data-value="4" class="abs high">3/4</td>
90
+ <td data-value="100" class="pct high">100%</td>
91
+ <td data-value="3" class="abs high">3/3</td>
92
+ <td data-value="55.55" class="pct medium">55.55%</td>
93
+ <td data-value="27" class="abs medium">15/27</td>
94
+ </tr>
95
+
96
+ </tbody>
97
+ </table>
98
+ </div>
99
+ <div class='push'></div><!-- for sticky footer -->
100
+ </div><!-- /wrapper -->
101
+ <div class='footer quiet pad2 space-top1 center small'>
102
+ Code coverage generated by
103
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
+ at Mon Oct 16 2023 08:34:11 GMT+0200 (Central European Summer Time)
105
+ </div>
106
+ <script src="../../prettify.js"></script>
107
+ <script>
108
+ window.onload = function () {
109
+ prettyPrint();
110
+ };
111
+ </script>
112
+ <script src="../../sorter.js"></script>
113
+ <script src="../../block-navigation.js"></script>
114
+ </body>
115
+ </html>
116
+
@@ -0,0 +1,245 @@
1
+ TN:
2
+ SF:src/BullMQModule.ts
3
+ FN:11,get
4
+ FN:17,$beforeInit
5
+ FN:24,buildQueues
6
+ FN:33,$onDestroy
7
+ FN:40,buildWorkers
8
+ FN:49,$onDestroy
9
+ FN:56,getJob
10
+ FN:60,onProcess
11
+ FN:15,BullMQModule
12
+ FNF:9
13
+ FNH:9
14
+ FNDA:3,get
15
+ FNDA:14,$beforeInit
16
+ FNDA:14,buildQueues
17
+ FNDA:42,$onDestroy
18
+ FNDA:14,buildWorkers
19
+ FNDA:28,$onDestroy
20
+ FNDA:3,getJob
21
+ FNDA:3,onProcess
22
+ FNDA:14,BullMQModule
23
+ DA:1,1
24
+ DA:2,1
25
+ DA:3,1
26
+ DA:4,1
27
+ DA:5,1
28
+ DA:6,1
29
+ DA:7,1
30
+ DA:8,1
31
+ DA:9,1
32
+ DA:10,1
33
+ DA:11,1
34
+ DA:12,1
35
+ DA:13,1
36
+ DA:14,1
37
+ DA:15,1
38
+ DA:16,1
39
+ DA:17,1
40
+ DA:18,14
41
+ DA:19,14
42
+ DA:20,14
43
+ DA:21,14
44
+ DA:22,14
45
+ DA:23,1
46
+ DA:24,1
47
+ DA:25,14
48
+ DA:26,42
49
+ DA:27,42
50
+ DA:28,42
51
+ DA:29,42
52
+ DA:30,42
53
+ DA:31,42
54
+ DA:32,42
55
+ DA:33,42
56
+ DA:34,42
57
+ DA:35,42
58
+ DA:36,42
59
+ DA:37,42
60
+ DA:38,14
61
+ DA:39,1
62
+ DA:40,1
63
+ DA:41,14
64
+ DA:42,28
65
+ DA:43,28
66
+ DA:44,28
67
+ DA:45,28
68
+ DA:46,28
69
+ DA:47,28
70
+ DA:48,28
71
+ DA:49,28
72
+ DA:50,28
73
+ DA:51,28
74
+ DA:52,28
75
+ DA:53,28
76
+ DA:54,14
77
+ DA:55,1
78
+ DA:56,1
79
+ DA:57,3
80
+ DA:58,3
81
+ DA:59,1
82
+ DA:60,1
83
+ DA:61,3
84
+ DA:62,3
85
+ DA:63,3
86
+ DA:64,1
87
+ DA:65,1
88
+ DA:66,1
89
+ DA:67,1
90
+ DA:68,1
91
+ DA:69,1
92
+ DA:70,2
93
+ DA:71,2
94
+ DA:72,2
95
+ DA:73,2
96
+ DA:74,2
97
+ DA:75,3
98
+ DA:76,3
99
+ DA:77,3
100
+ DA:78,3
101
+ DA:79,3
102
+ DA:80,3
103
+ DA:81,3
104
+ DA:82,1
105
+ DA:83,1
106
+ DA:84,1
107
+ DA:85,1
108
+ DA:86,1
109
+ DA:87,1
110
+ DA:88,3
111
+ DA:89,2
112
+ DA:90,2
113
+ DA:91,3
114
+ DA:92,1
115
+ LF:92
116
+ LH:92
117
+ BRDA:13,0,0,0
118
+ BRDA:15,1,0,0
119
+ BRDA:15,2,0,0
120
+ BRDA:11,3,0,3
121
+ BRDA:17,4,0,14
122
+ BRDA:21,5,0,14
123
+ BRDA:24,6,0,14
124
+ BRDA:25,7,0,42
125
+ BRDA:33,8,0,42
126
+ BRDA:40,9,0,14
127
+ BRDA:41,10,0,0
128
+ BRDA:41,11,0,28
129
+ BRDA:49,12,0,28
130
+ BRDA:56,13,0,3
131
+ BRDA:60,14,0,3
132
+ BRDA:63,15,0,1
133
+ BRDA:70,16,0,2
134
+ BRDA:81,17,0,1
135
+ BRDA:88,18,0,0
136
+ BRDA:88,19,0,2
137
+ BRDA:80,20,0,2
138
+ BRDA:15,21,0,14
139
+ BRF:22
140
+ BRH:17
141
+ end_of_record
142
+ TN:
143
+ SF:src/config/config.ts
144
+ FNF:0
145
+ FNH:0
146
+ DA:1,1
147
+ DA:2,1
148
+ DA:3,1
149
+ DA:4,1
150
+ DA:5,1
151
+ DA:6,1
152
+ DA:7,1
153
+ DA:8,1
154
+ DA:9,1
155
+ DA:10,1
156
+ DA:11,1
157
+ DA:12,1
158
+ DA:13,1
159
+ DA:14,1
160
+ DA:15,1
161
+ DA:16,1
162
+ DA:17,1
163
+ DA:18,1
164
+ DA:19,1
165
+ LF:19
166
+ LH:19
167
+ BRF:0
168
+ BRH:0
169
+ end_of_record
170
+ TN:
171
+ SF:src/decorators/Job.ts
172
+ FN:5,get
173
+ FN:5,Job
174
+ FNF:2
175
+ FNH:2
176
+ FNDA:8,get
177
+ FNDA:8,Job
178
+ DA:1,1
179
+ DA:2,1
180
+ DA:3,1
181
+ DA:4,1
182
+ DA:5,1
183
+ DA:6,8
184
+ DA:7,8
185
+ DA:8,8
186
+ DA:9,8
187
+ DA:10,8
188
+ DA:11,8
189
+ DA:12,8
190
+ DA:13,8
191
+ DA:14,8
192
+ DA:15,8
193
+ DA:16,8
194
+ DA:17,8
195
+ LF:17
196
+ LH:17
197
+ BRDA:5,0,0,8
198
+ BRDA:5,1,0,8
199
+ BRDA:14,2,0,2
200
+ BRDA:14,3,0,6
201
+ BRF:4
202
+ BRH:4
203
+ end_of_record
204
+ TN:
205
+ SF:src/dispatchers/JobDispatcher.ts
206
+ FN:7,get
207
+ FN:11,dispatch
208
+ FN:8,JobDispatcher
209
+ FNF:3
210
+ FNH:3
211
+ FNDA:32,get
212
+ FNDA:2,dispatch
213
+ FNDA:2,JobDispatcher
214
+ DA:1,1
215
+ DA:2,1
216
+ DA:3,1
217
+ DA:4,1
218
+ DA:5,1
219
+ DA:6,1
220
+ DA:7,1
221
+ DA:8,1
222
+ DA:9,1
223
+ DA:10,1
224
+ DA:11,1
225
+ DA:12,2
226
+ DA:13,2
227
+ DA:14,2
228
+ DA:15,2
229
+ DA:16,2
230
+ DA:17,1
231
+ DA:18,1
232
+ DA:19,1
233
+ DA:20,1
234
+ DA:21,1
235
+ DA:22,1
236
+ LF:22
237
+ LH:22
238
+ BRDA:8,0,0,0
239
+ BRDA:7,1,0,32
240
+ BRDA:11,2,0,2
241
+ BRDA:16,3,0,1
242
+ BRDA:8,4,0,2
243
+ BRF:5
244
+ BRH:4
245
+ end_of_record
package/jest.config.js ADDED
@@ -0,0 +1,11 @@
1
+ module.exports = {
2
+ ...require("@tsed/jest-config"),
3
+ coverageThreshold: {
4
+ global: {
5
+ branches: 81.25,
6
+ functions: 100,
7
+ lines: 100,
8
+ statements: 100
9
+ }
10
+ }
11
+ };
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BullMQModule = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@tsed/common");
6
+ const di_1 = require("@tsed/di");
7
+ const schema_1 = require("@tsed/schema");
8
+ const bullmq_1 = require("bullmq");
9
+ const uuid_1 = require("uuid");
10
+ const dispatchers_1 = require("./dispatchers");
11
+ let BullMQModule = class BullMQModule {
12
+ injector;
13
+ dispatcher;
14
+ bullmq;
15
+ constructor(injector, dispatcher) {
16
+ this.injector = injector;
17
+ this.dispatcher = dispatcher;
18
+ }
19
+ $beforeInit() {
20
+ this.buildWorkers();
21
+ this.buildQueues();
22
+ this.injector.getMany("bullmq:cron").map((job) => this.dispatcher.dispatch((0, schema_1.getComputedType)(job)));
23
+ }
24
+ buildQueues() {
25
+ this.bullmq.queues.forEach((queue) => {
26
+ this.injector
27
+ .add(`bullmq.queue.${queue}`, {
28
+ type: "bullmq:queue",
29
+ useValue: new bullmq_1.Queue(queue, {
30
+ connection: this.bullmq.connection,
31
+ defaultJobOptions: this.bullmq.defaultJobOptions
32
+ }),
33
+ hooks: {
34
+ $onDestroy: (queue) => queue.close()
35
+ }
36
+ })
37
+ .invoke(`bullmq.queue.${queue}`);
38
+ });
39
+ }
40
+ buildWorkers() {
41
+ (this.bullmq.workerQueues ?? this.bullmq.queues).forEach((queue) => {
42
+ this.injector
43
+ .add(`bullmq.worker.${queue}`, {
44
+ type: "bullmq:worker",
45
+ useValue: new bullmq_1.Worker(queue, this.onProcess.bind(this), {
46
+ connection: this.bullmq.connection
47
+ }),
48
+ hooks: {
49
+ $onDestroy: (worker) => worker.close()
50
+ }
51
+ })
52
+ .invoke(`bullmq.worker.${queue}`);
53
+ });
54
+ }
55
+ getJob(name, queueName) {
56
+ return this.injector.get(`bullmq.job.${queueName}.${name}`);
57
+ }
58
+ async onProcess(job) {
59
+ const jobService = this.getJob(job.name, job.queueName);
60
+ if (!jobService) {
61
+ this.injector.logger.warn({
62
+ event: "BULLMQ_JOB_NOT_FOUND",
63
+ message: `Job ${job.name} ${job.queueName} not found`
64
+ });
65
+ return;
66
+ }
67
+ const $ctx = new common_1.DIContext({
68
+ injector: this.injector,
69
+ logger: this.injector.logger,
70
+ id: job.id || (0, uuid_1.v4)().split("-").join("")
71
+ });
72
+ $ctx.set("BULLMQ_JOB", job);
73
+ try {
74
+ return await (0, common_1.runInContext)($ctx, () => jobService.handle(job.data, job));
75
+ }
76
+ catch (er) {
77
+ $ctx.logger.error({
78
+ event: "BULLMQ_JOB_ERROR",
79
+ message: er.message,
80
+ stack: er.stack
81
+ });
82
+ throw er;
83
+ }
84
+ finally {
85
+ await $ctx.destroy();
86
+ }
87
+ }
88
+ };
89
+ tslib_1.__decorate([
90
+ (0, di_1.Constant)("bullmq"),
91
+ tslib_1.__metadata("design:type", Object)
92
+ ], BullMQModule.prototype, "bullmq", void 0);
93
+ BullMQModule = tslib_1.__decorate([
94
+ (0, di_1.Module)(),
95
+ tslib_1.__metadata("design:paramtypes", [di_1.InjectorService, dispatchers_1.JobDispatcher])
96
+ ], BullMQModule);
97
+ exports.BullMQModule = BullMQModule;
98
+ //# sourceMappingURL=BullMQModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BullMQModule.js","sourceRoot":"","sources":["../../src/BullMQModule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=JobMethods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JobMethods.js","sourceRoot":"","sources":["../../../src/contracts/JobMethods.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=JobStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JobStore.js","sourceRoot":"","sources":["../../../src/contracts/JobStore.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ /**
3
+ * @file Automatically generated by barrelsby.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const tslib_1 = require("tslib");
7
+ tslib_1.__exportStar(require("./JobMethods"), exports);
8
+ tslib_1.__exportStar(require("./JobStore"), exports);
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contracts/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,uDAA6B;AAC7B,qDAA2B"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Job = void 0;
4
+ const core_1 = require("@tsed/core");
5
+ const di_1 = require("@tsed/di");
6
+ function Job(name, queue = "default", opts = {}) {
7
+ return (0, core_1.useDecorators)((0, core_1.StoreMerge)("bullmq", {
8
+ name,
9
+ queue,
10
+ opts
11
+ }), (0, di_1.Injectable)({
12
+ provide: `bullmq.job.${queue}.${name}`,
13
+ type: opts.repeat ? "bullmq:cron" : "bullmq:job"
14
+ }));
15
+ }
16
+ exports.Job = Job;
17
+ //# sourceMappingURL=Job.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Job.js","sourceRoot":"","sources":["../../../src/decorators/Job.ts"],"names":[],"mappings":";;;AAAA,qCAAqD;AACrD,iCAAoC;AAGpC,SAAgB,GAAG,CAAC,IAAY,EAAE,QAAgB,SAAS,EAAE,OAAoB,EAAE;IACjF,OAAO,IAAA,oBAAa,EAClB,IAAA,iBAAU,EAAC,QAAQ,EAAE;QACnB,IAAI;QACJ,KAAK;QACL,IAAI;KACL,CAAC,EACF,IAAA,eAAU,EAAC;QACT,OAAO,EAAE,cAAc,KAAK,IAAI,IAAI,EAAE;QACtC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY;KACjD,CAAC,CACH,CAAC;AACJ,CAAC;AAZD,kBAYC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JobController = void 0;
4
+ const core_1 = require("@tsed/core");
5
+ const di_1 = require("@tsed/di");
6
+ function JobController(name, queue = "default", opts = {}) {
7
+ return (0, core_1.useDecorators)((0, core_1.StoreMerge)("bullmq", {
8
+ name,
9
+ queue,
10
+ opts
11
+ }), (0, di_1.Injectable)({
12
+ provide: `bullmq.job.${queue}.${name}`,
13
+ type: opts.repeat ? "bullmq:cron" : "bullmq:job"
14
+ }));
15
+ }
16
+ exports.JobController = JobController;
17
+ //# sourceMappingURL=JobController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JobController.js","sourceRoot":"","sources":["../../../src/decorators/JobController.ts"],"names":[],"mappings":";;;AAAA,qCAAqD;AACrD,iCAAoC;AAGpC,SAAgB,aAAa,CAAC,IAAY,EAAE,QAAgB,SAAS,EAAE,OAAoB,EAAE;IAC3F,OAAO,IAAA,oBAAa,EAClB,IAAA,iBAAU,EAAC,QAAQ,EAAE;QACnB,IAAI;QACJ,KAAK;QACL,IAAI;KACL,CAAC,EACF,IAAA,eAAU,EAAC;QACT,OAAO,EAAE,cAAc,KAAK,IAAI,IAAI,EAAE;QACtC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY;KACjD,CAAC,CACH,CAAC;AACJ,CAAC;AAZD,sCAYC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ /**
3
+ * @file Automatically generated by barrelsby.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const tslib_1 = require("tslib");
7
+ tslib_1.__exportStar(require("./JobController"), exports);
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,0DAAgC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JobDispatcher = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const di_1 = require("@tsed/di");
6
+ const core_1 = require("@tsed/core");
7
+ let JobDispatcher = class JobDispatcher {
8
+ injector;
9
+ constructor(injector) {
10
+ this.injector = injector;
11
+ }
12
+ // eslint-disable-next-line require-await
13
+ async dispatch(job, payload = {}) {
14
+ const store = core_1.Store.from(job).get("bullmq");
15
+ const queue = this.injector.getMany("bullmq:queue").find((queue) => queue.name === store.queue);
16
+ if (!queue) {
17
+ throw new Error(`Queue(${store.queue}) not defined`);
18
+ }
19
+ return queue.add(store.name, payload, store.opts);
20
+ }
21
+ };
22
+ JobDispatcher = tslib_1.__decorate([
23
+ (0, di_1.Service)(),
24
+ tslib_1.__metadata("design:paramtypes", [di_1.InjectorService])
25
+ ], JobDispatcher);
26
+ exports.JobDispatcher = JobDispatcher;
27
+ //# sourceMappingURL=JobDispatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JobDispatcher.js","sourceRoot":"","sources":["../../../src/dispatchers/JobDispatcher.ts"],"names":[],"mappings":";;;;AAAA,iCAAkD;AAElD,qCAAuC;AAIhC,IAAM,aAAa,GAAnB,MAAM,aAAa;IACK;IAA7B,YAA6B,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAAG,CAAC;IAE1D,yCAAyC;IAClC,KAAK,CAAC,QAAQ,CAAuB,GAAqB,EAAE,UAAsC,EAAE;QACzG,MAAM,KAAK,GAAG,YAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAW,QAAQ,CAAC,CAAC;QAEtD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAQ,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC;QAEvG,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,KAAK,eAAe,CAAC,CAAC;SACtD;QAED,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;CACF,CAAA;AAfY,aAAa;IADzB,IAAA,YAAO,GAAE;6CAE+B,oBAAe;GAD3C,aAAa,CAezB;AAfY,sCAAa"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ /**
3
+ * @file Automatically generated by barrelsby.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const tslib_1 = require("tslib");
7
+ tslib_1.__exportStar(require("./JobDispatcher"), exports);
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dispatchers/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,0DAAgC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ /**
3
+ * @file Automatically generated by barrelsby.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const tslib_1 = require("tslib");
7
+ tslib_1.__exportStar(require("./BullMQModule"), exports);
8
+ tslib_1.__exportStar(require("./config/config"), exports);
9
+ tslib_1.__exportStar(require("./contracts/JobMethods"), exports);
10
+ tslib_1.__exportStar(require("./contracts/JobStore"), exports);
11
+ tslib_1.__exportStar(require("./decorators/JobController"), exports);
12
+ tslib_1.__exportStar(require("./dispatchers/JobDispatcher"), exports);
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,yDAA+B;AAC/B,0DAAgC;AAChC,iEAAuC;AACvC,+DAAqC;AACrC,qEAA2C;AAC3C,sEAA4C"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const di_1 = require("@tsed/di");
5
+ let ProcessorFactory = class ProcessorFactory {
6
+ injector;
7
+ constructor(injector) {
8
+ this.injector = injector;
9
+ }
10
+ build() {
11
+ // eslint-disable-next-line require-await
12
+ return;
13
+ }
14
+ };
15
+ ProcessorFactory = tslib_1.__decorate([
16
+ (0, di_1.Service)(),
17
+ tslib_1.__metadata("design:paramtypes", [di_1.InjectorService])
18
+ ], ProcessorFactory);
19
+ exports.default = ProcessorFactory;
20
+ //# sourceMappingURL=ProcessorFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProcessorFactory.js","sourceRoot":"","sources":["../../../src/processors/ProcessorFactory.ts"],"names":[],"mappings":";;;AAAA,iCAAkD;AAOnC,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IACN;IAA7B,YAA6B,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAAG,CAAC;IAEnD,KAAK;QACV,yCAAyC;QACzC,OAAQ;IACV,CAAC;CACF,CAAA;AAPoB,gBAAgB;IADpC,IAAA,YAAO,GAAE;6CAE+B,oBAAe;GADnC,gBAAgB,CAOpC;kBAPoB,gBAAgB"}