@clipboard-health/mongo-jobs 1.6.27 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -254,9 +254,9 @@ export class EmailServiceJob implements HandlerInterface<EmailServiceJobData> {
|
|
|
254
254
|
|
|
255
255
|
```ts
|
|
256
256
|
// All of these work, regardless of whether you registered a class or instance
|
|
257
|
-
await backgroundJobs.enqueue(EmailServiceJob, data); // By class
|
|
258
|
-
await backgroundJobs.enqueue(emailServiceJobInstance, data); // By instance
|
|
259
|
-
await backgroundJobs.enqueue("EmailServiceJob", data); // By name
|
|
257
|
+
await backgroundJobs.enqueue(EmailServiceJob, data); // By class (type inferred)
|
|
258
|
+
await backgroundJobs.enqueue(emailServiceJobInstance, data); // By instance (type inferred)
|
|
259
|
+
await backgroundJobs.enqueue<EmailServiceJobData>("EmailServiceJob", data); // By name (explicit generic required)
|
|
260
260
|
```
|
|
261
261
|
|
|
262
262
|
The enqueued class/instance/name is only used to look up the registered handler. The **registered** instance is always used for execution, not the instance passed to `enqueue()`.
|
|
@@ -313,9 +313,10 @@ await backgroundJobs.enqueue(
|
|
|
313
313
|
|
|
314
314
|
```ts
|
|
315
315
|
import { backgroundJobs } from "./jobsRegistry";
|
|
316
|
+
import type { MyJobData } from "./myJob";
|
|
316
317
|
|
|
317
|
-
// Enqueue by job name
|
|
318
|
-
await backgroundJobs.enqueue("MyJob", { userId: "123", action: "process" });
|
|
318
|
+
// Enqueue by job name requires explicit generic for type safety
|
|
319
|
+
await backgroundJobs.enqueue<MyJobData>("MyJob", { userId: "123", action: "process" });
|
|
319
320
|
```
|
|
320
321
|
|
|
321
322
|
</embedex>
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@clipboard-health/mongo-jobs",
|
|
3
3
|
"description": "MongoDB-powered background jobs.",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.7.1",
|
|
5
5
|
"bugs": "https://github.com/ClipboardHealth/core-utils/issues",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"cron-parser": "5.4.0",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"tslib": "2.8.1"
|
|
10
10
|
},
|
|
11
11
|
"devDependencies": {
|
|
12
|
-
"@clipboard-health/util-ts": "4.6.
|
|
12
|
+
"@clipboard-health/util-ts": "4.6.29",
|
|
13
13
|
"@opentelemetry/api": "1.9.0",
|
|
14
14
|
"mongodb": "6.20.0",
|
|
15
15
|
"mongoose": "8.21.0"
|
|
@@ -7,6 +7,11 @@ import { type AnyHandlerClassOrInstance, type InstantiableHandlerClassOrInstance
|
|
|
7
7
|
import { Worker, type WorkerOptions } from "./internal/worker";
|
|
8
8
|
import { type BackgroundJobType } from "./job";
|
|
9
9
|
import { type ScheduleType } from "./schedule";
|
|
10
|
+
/**
|
|
11
|
+
* Helper type that forces explicit generic when using string handlers.
|
|
12
|
+
* Produces an error tuple when T is unknown (no generic provided).
|
|
13
|
+
*/
|
|
14
|
+
type StringHandlerData<T> = unknown extends T ? [error: "Explicit generic required: use enqueue<YourDataType>('handler-name', data)"] : T;
|
|
10
15
|
export interface ConstructorOptions {
|
|
11
16
|
logger?: Logger;
|
|
12
17
|
dbConnection?: mongoose.Connection;
|
|
@@ -26,7 +31,8 @@ export declare class BackgroundJobs {
|
|
|
26
31
|
constructor(options?: ConstructorOptions);
|
|
27
32
|
register<T>(handlerClassOrInstance: InstantiableHandlerClassOrInstance<T>, group: string): void;
|
|
28
33
|
registerCron<T>(handlerClassOrInstance: InstantiableHandlerClassOrInstance<T>, options: RegisterCronOptions<T>): Promise<void>;
|
|
29
|
-
enqueue<T>(
|
|
34
|
+
enqueue<T>(handler: string, data: NoInfer<StringHandlerData<T>>, options?: EnqueueOptions): Promise<BackgroundJobType<T> | undefined>;
|
|
35
|
+
enqueue<T>(handler: AnyHandlerClassOrInstance<T>, data: T, options?: EnqueueOptions): Promise<BackgroundJobType<T> | undefined>;
|
|
30
36
|
removeCron(scheduleName: string): Promise<void>;
|
|
31
37
|
start(groups: string[], workerOptions?: WorkerOptions): Promise<void>;
|
|
32
38
|
buildWorker(groups: string[], workerOptions: WorkerOptions): Worker;
|
|
@@ -57,3 +63,4 @@ export declare class BackgroundJobs {
|
|
|
57
63
|
**/
|
|
58
64
|
cancel(jobIds: string[], options?: SessionOptions): Promise<void>;
|
|
59
65
|
}
|
|
66
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backgroundJobs.js","sourceRoot":"","sources":["../../../../../packages/mongo-jobs/src/lib/backgroundJobs.ts"],"names":[],"mappings":";;;;AAAA,gEAAgC;AAEhC,0CAAiE;AACjE,8DAImC;AAEnC,gDAA2F;AAC3F,kDAI6B;AAC7B,8CAA+D;AAC/D,+BAA6F;AAC7F,yCAAmF;
|
|
1
|
+
{"version":3,"file":"backgroundJobs.js","sourceRoot":"","sources":["../../../../../packages/mongo-jobs/src/lib/backgroundJobs.ts"],"names":[],"mappings":"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"}
|