@devmoods/express-extras 0.34.0 → 0.35.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/dist/faktory.d.ts CHANGED
@@ -3,13 +3,16 @@ export interface JobsOptions {
3
3
  queueName: string;
4
4
  faktory?: typeof create;
5
5
  }
6
+ interface JobContext {
7
+ [key: string]: any;
8
+ }
6
9
  export declare function createJobs({ queueName, faktory: createFactory, }: JobsOptions): {
7
- job: <K extends Record<string, any>, T extends (input: K) => undefined | Promise<any>>(fn: T) => {
10
+ job: <K extends Record<string, any>, T extends (input: K, ctx: JobContext) => undefined | Promise<any>>(fn: T) => {
8
11
  $job: boolean;
9
12
  jobName: string;
10
13
  readonly executionCount: number;
11
14
  delay(args?: Parameters<T>[0]): Promise<`${string}-${string}-${string}-${string}-${string}`>;
12
- execute(args: Parameters<T>[0]): Promise<any>;
15
+ execute(args: Parameters<T>[0], context: JobContext): Promise<any>;
13
16
  };
14
17
  queueName: string;
15
18
  };
@@ -18,9 +21,11 @@ export interface FaktoryWorkerOptions {
18
21
  jobs: unknown[];
19
22
  queueName: string;
20
23
  faktory?: typeof create;
24
+ jobContext?: JobContext;
21
25
  }
22
26
  export declare function useJobId(): string | undefined;
23
- export declare function createFaktoryWorker({ queueName, jobs, faktory: createFactory, }: FaktoryWorkerOptions): Promise<{
27
+ export declare function createFaktoryWorker({ queueName, jobs, faktory: createFactory, jobContext, }: FaktoryWorkerOptions): Promise<{
24
28
  start(): Promise<void>;
25
29
  stop(): Promise<void>;
26
30
  }>;
31
+ export {};
package/dist/faktory.js CHANGED
@@ -39,9 +39,9 @@ export function createJobs({ queueName, faktory: createFactory = create, }) {
39
39
  }
40
40
  return jid;
41
41
  },
42
- async execute(args) {
42
+ async execute(args, context) {
43
43
  try {
44
- const result = await fn(args);
44
+ const result = await fn(args, context);
45
45
  executionCount += 1;
46
46
  return result;
47
47
  }
@@ -61,12 +61,14 @@ export function useJobId() {
61
61
  return store.get(JOB_ID);
62
62
  }
63
63
  }
64
- export async function createFaktoryWorker({ queueName, jobs, faktory: createFactory = create, }) {
64
+ export async function createFaktoryWorker({ queueName, jobs, faktory: createFactory = create, jobContext = {}, }) {
65
65
  const faktory = createFactory();
66
66
  const filter = (j) => !!Object.prototype.hasOwnProperty.call(j, '$job');
67
67
  const availableJobs = jobs.filter(filter);
68
68
  for (const job of availableJobs) {
69
- faktory.register(job.jobName, job.execute);
69
+ faktory.register(job.jobName, (...args) => {
70
+ return job.execute(...args, jobContext);
71
+ });
70
72
  }
71
73
  return {
72
74
  async start() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devmoods/express-extras",
3
- "version": "0.34.0",
3
+ "version": "0.35.0",
4
4
  "description": "Kubernetes-ready utilities for rapid Node.js application development",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",