@clipboard-health/mongo-jobs 1.6.27 → 1.7.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.
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 (when handler is already registered)
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.6.27",
4
+ "version": "1.7.0",
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.27",
12
+ "@clipboard-health/util-ts": "4.6.28",
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>(handlerClassOrInstance: string | AnyHandlerClassOrInstance<T>, data: T, options?: EnqueueOptions): Promise<BackgroundJobType<T> | undefined>;
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":"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"}
1
+ {"version":3,"file":"backgroundJobs.js","sourceRoot":"","sources":["../../../../../packages/mongo-jobs/src/lib/backgroundJobs.ts"],"names":[],"mappings":"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"}