nmtjs 0.16.1 → 0.17.0-beta.2

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 (224) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +41 -1
  3. package/dist/index.d.ts +22 -161
  4. package/dist/index.js +24 -53
  5. package/dist/index.js.map +1 -1
  6. package/package.json +11 -63
  7. package/src/index.ts +71 -91
  8. package/bin/cli.js +0 -2
  9. package/dist/cli.d.ts +0 -1
  10. package/dist/cli.js +0 -137
  11. package/dist/cli.js.map +0 -1
  12. package/dist/codegen.d.ts +0 -5
  13. package/dist/codegen.js +0 -18
  14. package/dist/codegen.js.map +0 -1
  15. package/dist/config.d.ts +0 -47
  16. package/dist/config.js +0 -16
  17. package/dist/config.js.map +0 -1
  18. package/dist/entrypoints/cli.d.ts +0 -1
  19. package/dist/entrypoints/cli.js +0 -12
  20. package/dist/entrypoints/cli.js.map +0 -1
  21. package/dist/entrypoints/main.d.ts +0 -5
  22. package/dist/entrypoints/main.js +0 -248
  23. package/dist/entrypoints/main.js.map +0 -1
  24. package/dist/entrypoints/thread.d.ts +0 -16
  25. package/dist/entrypoints/thread.js +0 -182
  26. package/dist/entrypoints/thread.js.map +0 -1
  27. package/dist/entrypoints/worker.d.ts +0 -9
  28. package/dist/entrypoints/worker.js +0 -143
  29. package/dist/entrypoints/worker.js.map +0 -1
  30. package/dist/resolver.d.ts +0 -2
  31. package/dist/resolver.js +0 -7
  32. package/dist/resolver.js.map +0 -1
  33. package/dist/runtime/application/index.d.ts +0 -1
  34. package/dist/runtime/application/index.js +0 -2
  35. package/dist/runtime/application/index.js.map +0 -1
  36. package/dist/runtime/constants.d.ts +0 -8
  37. package/dist/runtime/constants.js +0 -5
  38. package/dist/runtime/constants.js.map +0 -1
  39. package/dist/runtime/enums.d.ts +0 -10
  40. package/dist/runtime/enums.js +0 -13
  41. package/dist/runtime/enums.js.map +0 -1
  42. package/dist/runtime/hooks.d.ts +0 -1
  43. package/dist/runtime/hooks.js +0 -2
  44. package/dist/runtime/hooks.js.map +0 -1
  45. package/dist/runtime/index.d.ts +0 -28
  46. package/dist/runtime/index.js +0 -29
  47. package/dist/runtime/index.js.map +0 -1
  48. package/dist/runtime/injectables.d.ts +0 -69
  49. package/dist/runtime/injectables.js +0 -40
  50. package/dist/runtime/injectables.js.map +0 -1
  51. package/dist/runtime/jobs/job.d.ts +0 -146
  52. package/dist/runtime/jobs/job.js +0 -89
  53. package/dist/runtime/jobs/job.js.map +0 -1
  54. package/dist/runtime/jobs/manager.d.ts +0 -131
  55. package/dist/runtime/jobs/manager.js +0 -309
  56. package/dist/runtime/jobs/manager.js.map +0 -1
  57. package/dist/runtime/jobs/router.d.ts +0 -296
  58. package/dist/runtime/jobs/router.js +0 -458
  59. package/dist/runtime/jobs/router.js.map +0 -1
  60. package/dist/runtime/jobs/runner.d.ts +0 -103
  61. package/dist/runtime/jobs/runner.js +0 -425
  62. package/dist/runtime/jobs/runner.js.map +0 -1
  63. package/dist/runtime/jobs/step.d.ts +0 -26
  64. package/dist/runtime/jobs/step.js +0 -18
  65. package/dist/runtime/jobs/step.js.map +0 -1
  66. package/dist/runtime/jobs/types.d.ts +0 -86
  67. package/dist/runtime/jobs/types.js +0 -5
  68. package/dist/runtime/jobs/types.js.map +0 -1
  69. package/dist/runtime/metrics/metric.d.ts +0 -8
  70. package/dist/runtime/metrics/metric.js +0 -11
  71. package/dist/runtime/metrics/metric.js.map +0 -1
  72. package/dist/runtime/metrics/registry.d.ts +0 -3
  73. package/dist/runtime/metrics/registry.js +0 -5
  74. package/dist/runtime/metrics/registry.js.map +0 -1
  75. package/dist/runtime/metrics/server.d.ts +0 -7
  76. package/dist/runtime/metrics/server.js +0 -53
  77. package/dist/runtime/metrics/server.js.map +0 -1
  78. package/dist/runtime/plugin.d.ts +0 -2
  79. package/dist/runtime/plugin.js +0 -2
  80. package/dist/runtime/plugin.js.map +0 -1
  81. package/dist/runtime/runtime.d.ts +0 -27
  82. package/dist/runtime/runtime.js +0 -77
  83. package/dist/runtime/runtime.js.map +0 -1
  84. package/dist/runtime/scheduler/index.d.ts +0 -22
  85. package/dist/runtime/scheduler/index.js +0 -20
  86. package/dist/runtime/scheduler/index.js.map +0 -1
  87. package/dist/runtime/server/applications.d.ts +0 -91
  88. package/dist/runtime/server/applications.js +0 -171
  89. package/dist/runtime/server/applications.js.map +0 -1
  90. package/dist/runtime/server/config.d.ts +0 -148
  91. package/dist/runtime/server/config.js +0 -33
  92. package/dist/runtime/server/config.js.map +0 -1
  93. package/dist/runtime/server/environment.d.ts +0 -43
  94. package/dist/runtime/server/environment.js +0 -33
  95. package/dist/runtime/server/environment.js.map +0 -1
  96. package/dist/runtime/server/error-policy.d.ts +0 -62
  97. package/dist/runtime/server/error-policy.js +0 -73
  98. package/dist/runtime/server/error-policy.js.map +0 -1
  99. package/dist/runtime/server/hmr-coordinator.d.ts +0 -37
  100. package/dist/runtime/server/hmr-coordinator.js +0 -94
  101. package/dist/runtime/server/hmr-coordinator.js.map +0 -1
  102. package/dist/runtime/server/jobs.d.ts +0 -54
  103. package/dist/runtime/server/jobs.js +0 -176
  104. package/dist/runtime/server/jobs.js.map +0 -1
  105. package/dist/runtime/server/lifecycle.d.ts +0 -85
  106. package/dist/runtime/server/lifecycle.js +0 -177
  107. package/dist/runtime/server/lifecycle.js.map +0 -1
  108. package/dist/runtime/server/managed-worker.d.ts +0 -158
  109. package/dist/runtime/server/managed-worker.js +0 -420
  110. package/dist/runtime/server/managed-worker.js.map +0 -1
  111. package/dist/runtime/server/pool-manager.d.ts +0 -85
  112. package/dist/runtime/server/pool-manager.js +0 -129
  113. package/dist/runtime/server/pool-manager.js.map +0 -1
  114. package/dist/runtime/server/proxy.d.ts +0 -21
  115. package/dist/runtime/server/proxy.js +0 -76
  116. package/dist/runtime/server/proxy.js.map +0 -1
  117. package/dist/runtime/server/server.d.ts +0 -60
  118. package/dist/runtime/server/server.js +0 -163
  119. package/dist/runtime/server/server.js.map +0 -1
  120. package/dist/runtime/server/types.d.ts +0 -31
  121. package/dist/runtime/server/types.js +0 -2
  122. package/dist/runtime/server/types.js.map +0 -1
  123. package/dist/runtime/server/worker-pool.d.ts +0 -121
  124. package/dist/runtime/server/worker-pool.js +0 -171
  125. package/dist/runtime/server/worker-pool.js.map +0 -1
  126. package/dist/runtime/store/index.d.ts +0 -3
  127. package/dist/runtime/store/index.js +0 -23
  128. package/dist/runtime/store/index.js.map +0 -1
  129. package/dist/runtime/subscription/manager.d.ts +0 -49
  130. package/dist/runtime/subscription/manager.js +0 -170
  131. package/dist/runtime/subscription/manager.js.map +0 -1
  132. package/dist/runtime/subscription/redis.d.ts +0 -18
  133. package/dist/runtime/subscription/redis.js +0 -119
  134. package/dist/runtime/subscription/redis.js.map +0 -1
  135. package/dist/runtime/types.d.ts +0 -95
  136. package/dist/runtime/types.js +0 -2
  137. package/dist/runtime/types.js.map +0 -1
  138. package/dist/runtime/workers/application.d.ts +0 -29
  139. package/dist/runtime/workers/application.js +0 -77
  140. package/dist/runtime/workers/application.js.map +0 -1
  141. package/dist/runtime/workers/base.d.ts +0 -14
  142. package/dist/runtime/workers/base.js +0 -41
  143. package/dist/runtime/workers/base.js.map +0 -1
  144. package/dist/runtime/workers/cli.d.ts +0 -1
  145. package/dist/runtime/workers/cli.js +0 -2
  146. package/dist/runtime/workers/cli.js.map +0 -1
  147. package/dist/runtime/workers/job.d.ts +0 -20
  148. package/dist/runtime/workers/job.js +0 -170
  149. package/dist/runtime/workers/job.js.map +0 -1
  150. package/dist/vite/builder.d.ts +0 -5
  151. package/dist/vite/builder.js +0 -79
  152. package/dist/vite/builder.js.map +0 -1
  153. package/dist/vite/config.d.ts +0 -28
  154. package/dist/vite/config.js +0 -22
  155. package/dist/vite/config.js.map +0 -1
  156. package/dist/vite/plugins.d.ts +0 -2
  157. package/dist/vite/plugins.js +0 -43
  158. package/dist/vite/plugins.js.map +0 -1
  159. package/dist/vite/runners/worker.d.ts +0 -3
  160. package/dist/vite/runners/worker.js +0 -34
  161. package/dist/vite/runners/worker.js.map +0 -1
  162. package/dist/vite/server.d.ts +0 -3
  163. package/dist/vite/server.js +0 -36
  164. package/dist/vite/server.js.map +0 -1
  165. package/dist/vite/servers/main.d.ts +0 -8
  166. package/dist/vite/servers/main.js +0 -24
  167. package/dist/vite/servers/main.js.map +0 -1
  168. package/dist/vite/servers/worker.d.ts +0 -13
  169. package/dist/vite/servers/worker.js +0 -124
  170. package/dist/vite/servers/worker.js.map +0 -1
  171. package/src/cli.ts +0 -162
  172. package/src/codegen.ts +0 -30
  173. package/src/config.ts +0 -69
  174. package/src/entrypoints/cli.ts +0 -13
  175. package/src/entrypoints/main.ts +0 -317
  176. package/src/entrypoints/thread.ts +0 -223
  177. package/src/entrypoints/worker.ts +0 -174
  178. package/src/resolver.ts +0 -7
  179. package/src/runtime/application/index.ts +0 -1
  180. package/src/runtime/constants.ts +0 -13
  181. package/src/runtime/enums.ts +0 -12
  182. package/src/runtime/hooks.ts +0 -1
  183. package/src/runtime/index.ts +0 -29
  184. package/src/runtime/injectables.ts +0 -101
  185. package/src/runtime/jobs/job.ts +0 -467
  186. package/src/runtime/jobs/manager.ts +0 -454
  187. package/src/runtime/jobs/router.ts +0 -967
  188. package/src/runtime/jobs/runner.ts +0 -583
  189. package/src/runtime/jobs/step.ts +0 -66
  190. package/src/runtime/jobs/types.ts +0 -116
  191. package/src/runtime/metrics/metric.ts +0 -18
  192. package/src/runtime/metrics/registry.ts +0 -11
  193. package/src/runtime/metrics/server.ts +0 -69
  194. package/src/runtime/plugin.ts +0 -2
  195. package/src/runtime/runtime.ts +0 -103
  196. package/src/runtime/scheduler/index.ts +0 -39
  197. package/src/runtime/server/applications.ts +0 -264
  198. package/src/runtime/server/config.ts +0 -199
  199. package/src/runtime/server/environment.ts +0 -71
  200. package/src/runtime/server/error-policy.ts +0 -132
  201. package/src/runtime/server/hmr-coordinator.ts +0 -116
  202. package/src/runtime/server/jobs.ts +0 -266
  203. package/src/runtime/server/lifecycle.ts +0 -234
  204. package/src/runtime/server/managed-worker.ts +0 -546
  205. package/src/runtime/server/pool-manager.ts +0 -187
  206. package/src/runtime/server/proxy.ts +0 -119
  207. package/src/runtime/server/server.ts +0 -218
  208. package/src/runtime/server/types.ts +0 -32
  209. package/src/runtime/server/worker-pool.ts +0 -275
  210. package/src/runtime/store/index.ts +0 -30
  211. package/src/runtime/subscription/manager.ts +0 -307
  212. package/src/runtime/subscription/redis.ts +0 -159
  213. package/src/runtime/types.ts +0 -84
  214. package/src/runtime/workers/application.ts +0 -133
  215. package/src/runtime/workers/base.ts +0 -65
  216. package/src/runtime/workers/cli.ts +0 -0
  217. package/src/runtime/workers/job.ts +0 -142
  218. package/src/vite/builder.ts +0 -94
  219. package/src/vite/config.ts +0 -45
  220. package/src/vite/plugins.ts +0 -53
  221. package/src/vite/runners/worker.ts +0 -55
  222. package/src/vite/server.ts +0 -55
  223. package/src/vite/servers/main.ts +0 -41
  224. package/src/vite/servers/worker.ts +0 -177
@@ -1,458 +0,0 @@
1
- import { createProcedure, createRouter } from '@nmtjs/application';
2
- import { CoreInjectables } from '@nmtjs/core';
3
- import { t } from '@nmtjs/type';
4
- import { jobManager } from '../injectables.js';
5
- // ============================================================================
6
- // Schemas
7
- // ============================================================================
8
- /** Input schema for list operation */
9
- const listInputSchema = t.object({
10
- page: t.number().optional(),
11
- limit: t.number().optional(),
12
- status: t.array(t.string()).optional(),
13
- });
14
- /** Input schema for get operation */
15
- const getInputSchema = t.object({ id: t.string() });
16
- /** Output schema for add operation */
17
- const addOutputSchema = t.object({ id: t.string(), name: t.string() });
18
- /** Input schema for retry operation */
19
- const retryInputSchema = t.object({
20
- id: t.string(),
21
- clearState: t.boolean().optional(),
22
- });
23
- /** Input schema for cancel/remove operations */
24
- const idInputSchema = t.object({ id: t.string() });
25
- /** Output schema for info operation */
26
- const infoOutputSchema = t.object({
27
- name: t.string(),
28
- steps: t.array(t.object({
29
- label: t.string().optional(),
30
- conditional: t.boolean(),
31
- parallel: t.boolean(),
32
- })),
33
- });
34
- /** Schema for step result entry */
35
- const stepResultEntrySchema = t
36
- .object({
37
- data: t.record(t.string(), t.any()).nullable(),
38
- startedAt: t.number(),
39
- completedAt: t.number(),
40
- duration: t.number(),
41
- })
42
- .nullable();
43
- /** Creates JobProgressCheckpoint schema for a specific job */
44
- function createJobProgressCheckpointSchema(job) {
45
- return t.object({
46
- stepIndex: t.number(),
47
- stepLabel: t.string().optional(),
48
- result: t.record(t.string(), t.any()),
49
- stepResults: t.array(stepResultEntrySchema),
50
- progress: job.progress,
51
- });
52
- }
53
- /** JobItem schema for list/get responses - typed per job */
54
- function createJobItemSchema(job) {
55
- return t.object({
56
- id: t.string(),
57
- name: t.string(),
58
- queue: t.string(),
59
- data: job.input,
60
- output: job.output.nullish(),
61
- status: t.string(),
62
- priority: t.number().optional(),
63
- progress: createJobProgressCheckpointSchema(job).optional(),
64
- attempts: t.number(),
65
- startedAt: t.number().optional(),
66
- completedAt: t.number().optional(),
67
- error: t.string().optional(),
68
- stacktrace: t.array(t.string()).nullable(),
69
- });
70
- }
71
- /** Creates list output schema for a specific job */
72
- function createListOutputSchema(job) {
73
- return t.object({
74
- items: t.array(createJobItemSchema(job)),
75
- page: t.number(),
76
- limit: t.number(),
77
- pages: t.number(),
78
- total: t.number(),
79
- });
80
- }
81
- /** Creates get output schema for a specific job */
82
- function createGetOutputSchema(job) {
83
- return createJobItemSchema(job).nullable();
84
- }
85
- /** Creates add input schema for a specific job */
86
- function createAddInputSchema(job) {
87
- return t.object({
88
- data: job.input,
89
- jobId: t.string().optional(),
90
- priority: t.number().optional(),
91
- delay: t.number().optional(),
92
- });
93
- }
94
- // ============================================================================
95
- // Helpers
96
- // ============================================================================
97
- /**
98
- * Helper function to create a type-safe operation config with dependencies.
99
- * Use this when you need custom dependencies for hooks.
100
- *
101
- * @example
102
- * ```ts
103
- * add: jobOperation({
104
- * dependencies: { userService, auditLog },
105
- * beforeAdd: async (ctx, input) => {
106
- * return { ...input, createdBy: ctx.userService.getCurrentId() }
107
- * },
108
- * })
109
- * ```
110
- */
111
- export function createJobRouterOperation(config) {
112
- return config;
113
- }
114
- function createInfoProcedure(job, config = {}, shared) {
115
- const allGuards = [...(shared.guards ?? []), ...(config.guards ?? [])];
116
- const allMiddlewares = [
117
- ...(shared.middlewares ?? []),
118
- ...(config.middlewares ?? []),
119
- ];
120
- const deps = { jobManager, logger: CoreInjectables.logger };
121
- return createProcedure({
122
- output: infoOutputSchema,
123
- dependencies: { ...deps, ...(config.dependencies ?? {}) },
124
- guards: allGuards,
125
- middlewares: allMiddlewares,
126
- meta: config.meta,
127
- timeout: config.timeout,
128
- handler: (ctx) => {
129
- ctx.logger.trace({ jobName: job.options.name }, 'Getting job info');
130
- return ctx.jobManager.getInfo(job);
131
- },
132
- });
133
- }
134
- function createListProcedure(job, config = {}, shared) {
135
- const allGuards = [...(shared.guards ?? []), ...(config.guards ?? [])];
136
- const allMiddlewares = [
137
- ...(shared.middlewares ?? []),
138
- ...(config.middlewares ?? []),
139
- ];
140
- const deps = { jobManager, logger: CoreInjectables.logger };
141
- return createProcedure({
142
- input: listInputSchema,
143
- output: createListOutputSchema(job),
144
- dependencies: { ...deps, ...(config.dependencies ?? {}) },
145
- guards: allGuards,
146
- middlewares: allMiddlewares,
147
- meta: config.meta,
148
- timeout: config.timeout,
149
- handler: async (ctx, input) => {
150
- ctx.logger.trace({
151
- jobName: job.options.name,
152
- page: input.page,
153
- limit: input.limit,
154
- status: input.status,
155
- }, 'Listing jobs');
156
- const result = await ctx.jobManager.list(job, {
157
- page: input.page,
158
- limit: input.limit,
159
- status: input.status,
160
- });
161
- ctx.logger.trace({ jobName: job.options.name, total: result.total, pages: result.pages }, 'Jobs listed');
162
- return result;
163
- },
164
- });
165
- }
166
- function createGetProcedure(job, config = {}, shared) {
167
- const allGuards = [...(shared.guards ?? []), ...(config.guards ?? [])];
168
- const allMiddlewares = [
169
- ...(shared.middlewares ?? []),
170
- ...(config.middlewares ?? []),
171
- ];
172
- const deps = { jobManager, logger: CoreInjectables.logger };
173
- return createProcedure({
174
- input: getInputSchema,
175
- output: createGetOutputSchema(job),
176
- dependencies: { ...deps, ...(config.dependencies ?? {}) },
177
- guards: allGuards,
178
- middlewares: allMiddlewares,
179
- meta: config.meta,
180
- timeout: config.timeout,
181
- handler: async (ctx, input) => {
182
- ctx.logger.trace({ jobName: job.options.name, id: input.id }, 'Getting job');
183
- const result = await ctx.jobManager.get(job, input.id);
184
- ctx.logger.trace({ jobName: job.options.name, id: input.id, found: result !== null }, 'Job retrieved');
185
- return result;
186
- },
187
- });
188
- }
189
- function createAddProcedure(job, config = {}, shared) {
190
- const allGuards = [...(shared.guards ?? []), ...(config.guards ?? [])];
191
- const allMiddlewares = [
192
- ...(shared.middlewares ?? []),
193
- ...(config.middlewares ?? []),
194
- ];
195
- const deps = { jobManager, logger: CoreInjectables.logger };
196
- return createProcedure({
197
- input: createAddInputSchema(job),
198
- output: addOutputSchema,
199
- dependencies: { ...deps, ...(config.dependencies ?? {}) },
200
- guards: allGuards,
201
- middlewares: allMiddlewares,
202
- meta: config.meta,
203
- timeout: config.timeout,
204
- handler: async (ctx, input) => {
205
- let jobData = input.data;
206
- ctx.logger.debug({
207
- jobName: job.options.name,
208
- jobId: input.jobId,
209
- priority: input.priority,
210
- }, 'Adding job');
211
- // Call beforeAdd hook if provided
212
- if (config.beforeAdd) {
213
- ctx.logger.trace({ jobName: job.options.name }, 'Running beforeAdd hook');
214
- jobData = await config.beforeAdd(ctx, jobData);
215
- }
216
- const queueResult = await ctx.jobManager.add(job, jobData, {
217
- jobId: input.jobId,
218
- priority: input.priority ?? config.options?.priority,
219
- delay: input.delay ?? config.options?.delay,
220
- attempts: config.options?.attempts,
221
- });
222
- const result = { id: queueResult.id, name: queueResult.name };
223
- ctx.logger.info({ jobName: job.options.name, id: result.id }, 'Job added');
224
- // Call afterAdd hook if provided
225
- if (config.afterAdd) {
226
- ctx.logger.trace({ jobName: job.options.name, id: result.id }, 'Running afterAdd hook');
227
- await config.afterAdd(ctx, result, jobData);
228
- }
229
- return result;
230
- },
231
- });
232
- }
233
- function createRetryProcedure(job, config = {}, shared) {
234
- const allGuards = [...(shared.guards ?? []), ...(config.guards ?? [])];
235
- const allMiddlewares = [
236
- ...(shared.middlewares ?? []),
237
- ...(config.middlewares ?? []),
238
- ];
239
- const deps = { jobManager, logger: CoreInjectables.logger };
240
- return createProcedure({
241
- input: retryInputSchema,
242
- dependencies: { ...deps, ...(config.dependencies ?? {}) },
243
- guards: allGuards,
244
- middlewares: allMiddlewares,
245
- meta: config.meta,
246
- timeout: config.timeout,
247
- handler: async (ctx, input) => {
248
- const clearState = input.clearState ?? config.clearState;
249
- ctx.logger.debug({ jobName: job.options.name, id: input.id, clearState }, 'Retrying job');
250
- // Call beforeRetry hook if provided
251
- if (config.beforeRetry) {
252
- ctx.logger.trace({ jobName: job.options.name, id: input.id }, 'Running beforeRetry hook');
253
- await config.beforeRetry(ctx, { id: input.id, clearState });
254
- }
255
- await ctx.jobManager.retry(job, input.id, { clearState });
256
- ctx.logger.trace({ jobName: job.options.name, id: input.id }, 'Job retried');
257
- // Call afterRetry hook if provided
258
- if (config.afterRetry) {
259
- ctx.logger.trace({ jobName: job.options.name, id: input.id }, 'Running afterRetry hook');
260
- await config.afterRetry(ctx, { id: input.id, clearState });
261
- }
262
- },
263
- });
264
- }
265
- function createCancelProcedure(job, config = {}, shared) {
266
- const allGuards = [...(shared.guards ?? []), ...(config.guards ?? [])];
267
- const allMiddlewares = [
268
- ...(shared.middlewares ?? []),
269
- ...(config.middlewares ?? []),
270
- ];
271
- const deps = { jobManager, logger: CoreInjectables.logger };
272
- return createProcedure({
273
- input: idInputSchema,
274
- dependencies: { ...deps, ...(config.dependencies ?? {}) },
275
- guards: allGuards,
276
- middlewares: allMiddlewares,
277
- meta: config.meta,
278
- timeout: config.timeout,
279
- handler: async (ctx, input) => {
280
- ctx.logger.debug({ jobName: job.options.name, id: input.id }, 'Canceling job');
281
- // Call beforeCancel hook if provided
282
- if (config.beforeCancel) {
283
- ctx.logger.trace({ jobName: job.options.name, id: input.id }, 'Running beforeCancel hook');
284
- await config.beforeCancel(ctx, { id: input.id });
285
- }
286
- await ctx.jobManager.cancel(job, input.id);
287
- ctx.logger.info({ jobName: job.options.name, id: input.id }, 'Job canceled');
288
- // Call afterCancel hook if provided
289
- if (config.afterCancel) {
290
- ctx.logger.trace({ jobName: job.options.name, id: input.id }, 'Running afterCancel hook');
291
- await config.afterCancel(ctx, { id: input.id });
292
- }
293
- },
294
- });
295
- }
296
- function createRemoveProcedure(job, config = {}, shared) {
297
- const allGuards = [...(shared.guards ?? []), ...(config.guards ?? [])];
298
- const allMiddlewares = [
299
- ...(shared.middlewares ?? []),
300
- ...(config.middlewares ?? []),
301
- ];
302
- const deps = { jobManager, logger: CoreInjectables.logger };
303
- return createProcedure({
304
- input: idInputSchema,
305
- dependencies: { ...deps, ...(config.dependencies ?? {}) },
306
- guards: allGuards,
307
- middlewares: allMiddlewares,
308
- meta: config.meta,
309
- timeout: config.timeout,
310
- handler: async (ctx, input) => {
311
- ctx.logger.trace({ jobName: job.options.name, id: input.id }, 'Removing job');
312
- // Call beforeRemove hook if provided
313
- if (config.beforeRemove) {
314
- ctx.logger.trace({ jobName: job.options.name, id: input.id }, 'Running beforeRemove hook');
315
- await config.beforeRemove(ctx, { id: input.id });
316
- }
317
- await ctx.jobManager.remove(job, input.id);
318
- ctx.logger.info({ jobName: job.options.name, id: input.id }, 'Job removed');
319
- // Call afterRemove hook if provided
320
- if (config.afterRemove) {
321
- ctx.logger.trace({ jobName: job.options.name, id: input.id }, 'Running afterRemove hook');
322
- await config.afterRemove(ctx, { id: input.id });
323
- }
324
- },
325
- });
326
- }
327
- // ============================================================================
328
- // Main router factory
329
- // ============================================================================
330
- /**
331
- * Merge default operations with job-specific overrides
332
- */
333
- function mergeOperations(defaults = {}, overrides = {}) {
334
- const result = {};
335
- const ops = [
336
- 'info',
337
- 'list',
338
- 'get',
339
- 'add',
340
- 'retry',
341
- 'cancel',
342
- 'remove',
343
- ];
344
- for (const op of ops) {
345
- const override = overrides[op];
346
- const defaultOp = defaults[op];
347
- if (override === false) {
348
- result[op] = false;
349
- }
350
- else if (override !== undefined) {
351
- // Override provided - use it (merged with default base config if both are objects)
352
- if (defaultOp &&
353
- defaultOp !== false &&
354
- typeof override === 'object') {
355
- result[op] = {
356
- ...defaultOp,
357
- ...override,
358
- guards: [
359
- ...(defaultOp.guards ?? []),
360
- ...(override.guards ?? []),
361
- ],
362
- middlewares: [
363
- ...(defaultOp.middlewares ?? []),
364
- ...(override.middlewares ?? []),
365
- ],
366
- meta: [
367
- ...(defaultOp.meta ?? []),
368
- ...(override.meta ?? []),
369
- ],
370
- };
371
- }
372
- else {
373
- result[op] = override;
374
- }
375
- }
376
- else if (defaultOp !== undefined) {
377
- result[op] = defaultOp;
378
- }
379
- // else: undefined = use default behavior (enabled with empty config)
380
- }
381
- return result;
382
- }
383
- /**
384
- * Creates a router with CRUD-like operations for multiple jobs.
385
- *
386
- * @example
387
- * ```ts
388
- * const jobsRouter = createJobsRouter({
389
- * jobs: [userJob, emailJob] as const,
390
- * guards: [authGuard],
391
- * defaults: {
392
- * list: {},
393
- * get: {},
394
- * add: {},
395
- * retry: { guards: [adminGuard] },
396
- * cancel: { guards: [adminGuard] },
397
- * remove: false,
398
- * },
399
- * overrides: {
400
- * userProcessing: {
401
- * add: jobOperation({
402
- * dependencies: { userService },
403
- * beforeAdd: async (ctx, input) => ({
404
- * ...input,
405
- * userId: ctx.userService.getCurrentId(),
406
- * }),
407
- * }),
408
- * },
409
- * },
410
- * })
411
- *
412
- * // Use in your router
413
- * createRouter({
414
- * routes: {
415
- * jobs: jobsRouter,
416
- * }
417
- * })
418
- * ```
419
- */
420
- export function createJobsRouter(options) {
421
- const { jobs, guards: sharedGuards = [], middlewares: sharedMiddlewares = [], meta = [], defaults = {}, overrides = {}, } = options;
422
- const routes = {};
423
- const shared = { guards: sharedGuards, middlewares: sharedMiddlewares };
424
- for (const jobName in jobs) {
425
- const job = jobs[jobName];
426
- const jobOverrides = overrides[jobName] ?? {};
427
- // Merge defaults with job-specific overrides
428
- const operations = mergeOperations(defaults, jobOverrides);
429
- const jobRoutes = {};
430
- // Generate each enabled operation
431
- if (operations.info !== false) {
432
- jobRoutes.info = createInfoProcedure(job, operations.info, shared);
433
- }
434
- if (operations.list !== false) {
435
- jobRoutes.list = createListProcedure(job, operations.list, shared);
436
- }
437
- if (operations.get !== false) {
438
- jobRoutes.get = createGetProcedure(job, operations.get, shared);
439
- }
440
- if (operations.add !== false) {
441
- jobRoutes.add = createAddProcedure(job, operations.add, shared);
442
- }
443
- if (operations.retry !== false) {
444
- jobRoutes.retry = createRetryProcedure(job, operations.retry, shared);
445
- }
446
- if (operations.cancel !== false) {
447
- jobRoutes.cancel = createCancelProcedure(job, operations.cancel, shared);
448
- }
449
- if (operations.remove !== false) {
450
- jobRoutes.remove = createRemoveProcedure(job, operations.remove, shared);
451
- }
452
- // Create router for this job (named by job name)
453
- routes[jobName] = createRouter({ routes: jobRoutes });
454
- }
455
- // Return router containing all job routers
456
- return createRouter({ routes, meta });
457
- }
458
- //# sourceMappingURL=router.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/runtime/jobs/router.ts"],"names":[],"mappings":"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"}
@@ -1,103 +0,0 @@
1
- import type { LifecycleHooks } from '@nmtjs/application';
2
- import type { Container, Logger, LoggingOptions } from '@nmtjs/core';
3
- import type { Job } from 'bullmq';
4
- import type { AnyJob } from './job.ts';
5
- import type { AnyJobStep } from './step.ts';
6
- import type { JobExecutionContext, StepResultEntry } from './types.ts';
7
- export type JobRunnerOptions = {
8
- logging?: LoggingOptions;
9
- };
10
- export type { StepResultEntry } from './types.ts';
11
- export interface JobRunnerRunOptions {
12
- signal: AbortSignal;
13
- result: Record<string, unknown>;
14
- stepResults: StepResultEntry[];
15
- currentStepIndex: number;
16
- progress: Record<string, unknown>;
17
- }
18
- export interface JobRunnerRunBeforeStepParams<Options extends JobRunnerRunOptions> {
19
- job: AnyJob;
20
- step: AnyJobStep;
21
- stepIndex: number;
22
- result: Record<string, unknown>;
23
- stepResults: StepResultEntry[];
24
- options: Options;
25
- }
26
- export interface JobRunnerRunAfterStepParams<Options extends JobRunnerRunOptions> extends JobRunnerRunBeforeStepParams<Options> {
27
- stepResult: StepResultEntry;
28
- }
29
- /** Context for saveProgress function - contains mutable state references */
30
- export interface SaveProgressContext<Options extends JobRunnerRunOptions = JobRunnerRunOptions> {
31
- job: AnyJob;
32
- progress: Record<string, unknown>;
33
- result: Record<string, unknown>;
34
- stepResults: StepResultEntry[] | null;
35
- currentStepIndex: number;
36
- options: Options | null;
37
- }
38
- export declare class JobRunner<RunOptions extends JobRunnerRunOptions = JobRunnerRunOptions> {
39
- protected runtime: {
40
- logger: Logger;
41
- container: Container;
42
- lifecycleHooks: LifecycleHooks;
43
- };
44
- logger: Logger;
45
- constructor(runtime: {
46
- logger: Logger;
47
- container: Container;
48
- lifecycleHooks: LifecycleHooks;
49
- });
50
- get container(): Container;
51
- /**
52
- * Creates a function that saves the current job progress state.
53
- * Override in subclasses to implement actual persistence.
54
- */
55
- protected createSaveProgressFn(_context: SaveProgressContext<RunOptions>): () => Promise<void>;
56
- /**
57
- * Creates the current job info object.
58
- * Override in subclasses to include additional info (e.g., BullMQ job ID).
59
- */
60
- protected createJobInfo(job: AnyJob, _options: Partial<RunOptions>): JobExecutionContext;
61
- runJob<T extends AnyJob>(job: T, data: any, options?: Partial<RunOptions>): Promise<T['_']['output']>;
62
- protected runStep(params: {
63
- job: AnyJob;
64
- step: AnyJobStep;
65
- stepIndex: number;
66
- result: Record<string, unknown>;
67
- resultSnapshot: Record<string, unknown>;
68
- decodedInput: Record<string, unknown>;
69
- progress: Record<string, unknown>;
70
- stepResults: StepResultEntry[];
71
- options: RunOptions;
72
- jobDependencyContext: any;
73
- jobData: unknown;
74
- container: Container;
75
- applyResult: boolean;
76
- }): Promise<Record<string, unknown> | null>;
77
- protected nextStepIndex(stepResults: StepResultEntry[]): number;
78
- protected beforeStep(params: JobRunnerRunBeforeStepParams<RunOptions>): Promise<void>;
79
- protected afterStep(params: JobRunnerRunAfterStepParams<RunOptions>): Promise<void>;
80
- }
81
- export declare class ApplicationWorkerJobRunner extends JobRunner<JobRunnerRunOptions & {
82
- queueJob: Job;
83
- }> {
84
- protected runtime: {
85
- logger: Logger;
86
- container: Container;
87
- lifecycleHooks: LifecycleHooks;
88
- };
89
- constructor(runtime: {
90
- logger: Logger;
91
- container: Container;
92
- lifecycleHooks: LifecycleHooks;
93
- });
94
- protected createJobInfo(job: AnyJob, options: Partial<JobRunnerRunOptions & {
95
- queueJob: Job;
96
- }>): JobExecutionContext;
97
- protected createSaveProgressFn(context: SaveProgressContext<JobRunnerRunOptions & {
98
- queueJob: Job;
99
- }>): () => Promise<void>;
100
- protected afterStep(params: JobRunnerRunAfterStepParams<JobRunnerRunOptions & {
101
- queueJob: Job;
102
- }>): Promise<void>;
103
- }