@volontariapp/workers 0.1.0-snap-a134190 → 0.1.0-snap-8452a68

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 (49) hide show
  1. package/dist/core/base.worker.d.ts +11 -0
  2. package/dist/core/base.worker.d.ts.map +1 -0
  3. package/dist/core/base.worker.js +32 -0
  4. package/dist/core/base.worker.js.map +1 -0
  5. package/dist/core/base.worker.unit.spec.d.ts +2 -0
  6. package/dist/core/base.worker.unit.spec.d.ts.map +1 -0
  7. package/dist/core/base.worker.unit.spec.js +110 -0
  8. package/dist/core/base.worker.unit.spec.js.map +1 -0
  9. package/dist/index.d.ts +4 -2
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +2 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/interfaces/bull-config.interface.d.ts +23 -0
  14. package/dist/interfaces/bull-config.interface.d.ts.map +1 -0
  15. package/dist/interfaces/bull-config.interface.js +2 -0
  16. package/dist/interfaces/bull-config.interface.js.map +1 -0
  17. package/dist/interfaces/index.d.ts +3 -0
  18. package/dist/interfaces/index.d.ts.map +1 -0
  19. package/dist/interfaces/index.js +2 -0
  20. package/dist/interfaces/index.js.map +1 -0
  21. package/dist/interfaces/worker-app-config.interface.d.ts +6 -0
  22. package/dist/interfaces/worker-app-config.interface.d.ts.map +1 -0
  23. package/dist/interfaces/worker-app-config.interface.js +2 -0
  24. package/dist/interfaces/worker-app-config.interface.js.map +1 -0
  25. package/dist/types/index.d.ts +2 -0
  26. package/dist/types/index.d.ts.map +1 -0
  27. package/dist/types/index.js +2 -0
  28. package/dist/types/index.js.map +1 -0
  29. package/dist/types/job.types.d.ts +4 -0
  30. package/dist/types/job.types.d.ts.map +1 -0
  31. package/dist/types/job.types.js +2 -0
  32. package/dist/types/job.types.js.map +1 -0
  33. package/dist/utils/bull-config.utils.d.ts +4 -0
  34. package/dist/utils/bull-config.utils.d.ts.map +1 -0
  35. package/dist/utils/bull-config.utils.js +20 -0
  36. package/dist/utils/bull-config.utils.js.map +1 -0
  37. package/dist/utils/index.d.ts +2 -0
  38. package/dist/utils/index.d.ts.map +1 -0
  39. package/dist/utils/index.js +2 -0
  40. package/dist/utils/index.js.map +1 -0
  41. package/package.json +19 -4
  42. package/dist/base.worker.d.ts +0 -14
  43. package/dist/base.worker.d.ts.map +0 -1
  44. package/dist/base.worker.js +0 -51
  45. package/dist/base.worker.js.map +0 -1
  46. package/dist/types/worker-config.types.d.ts +0 -14
  47. package/dist/types/worker-config.types.d.ts.map +0 -1
  48. package/dist/types/worker-config.types.js +0 -2
  49. package/dist/types/worker-config.types.js.map +0 -1
@@ -0,0 +1,11 @@
1
+ import { WorkerHost } from '@nestjs/bullmq';
2
+ import { Logger } from '@volontariapp/logger';
3
+ import type { Job } from 'bullmq';
4
+ import type { JobMessagingType, JobRegistry } from '@volontariapp/messaging';
5
+ export declare abstract class BaseWorker<K extends JobMessagingType> extends WorkerHost {
6
+ protected readonly logger: Logger;
7
+ protected readonly workerId: string;
8
+ process(job: Job<JobRegistry[K], void, K>, _token?: string): Promise<void>;
9
+ protected abstract processJob(job: Job<JobRegistry[K], void, K>): Promise<void>;
10
+ }
11
+ //# sourceMappingURL=base.worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.worker.d.ts","sourceRoot":"","sources":["../../src/core/base.worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE7E,8BAAsB,UAAU,CAAC,CAAC,SAAS,gBAAgB,CAAE,SAAQ,UAAU;IAC7E,SAAS,CAAC,QAAQ,CAAC,MAAM,SAAkD;IAC3E,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAc;IAE3C,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBhF,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAChF"}
@@ -0,0 +1,32 @@
1
+ import { WorkerHost } from '@nestjs/bullmq';
2
+ import { Logger } from '@volontariapp/logger';
3
+ import { hostname } from 'node:os';
4
+ export class BaseWorker extends WorkerHost {
5
+ logger = new Logger({ context: this.constructor.name });
6
+ workerId = hostname();
7
+ async process(job, _token) {
8
+ this.logger.info('Processing job', {
9
+ jobId: job.id,
10
+ type: job.name,
11
+ workerId: this.workerId,
12
+ });
13
+ try {
14
+ await this.processJob(job);
15
+ this.logger.info('Job completed', {
16
+ jobId: job.id,
17
+ type: job.name,
18
+ workerId: this.workerId,
19
+ });
20
+ }
21
+ catch (error) {
22
+ this.logger.error('Job failed', {
23
+ jobId: job.id,
24
+ type: job.name,
25
+ workerId: this.workerId,
26
+ error,
27
+ });
28
+ throw error;
29
+ }
30
+ }
31
+ }
32
+ //# sourceMappingURL=base.worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.worker.js","sourceRoot":"","sources":["../../src/core/base.worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAInC,MAAM,OAAgB,UAAuC,SAAQ,UAAU;IAC1D,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IACxD,QAAQ,GAAW,QAAQ,EAAE,CAAC;IAEjD,KAAK,CAAC,OAAO,CAAC,GAAiC,EAAE,MAAe;QAC9D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACjC,KAAK,EAAE,GAAG,CAAC,EAAE;YACb,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE;gBAChC,KAAK,EAAE,GAAG,CAAC,EAAE;gBACb,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE;gBAC9B,KAAK,EAAE,GAAG,CAAC,EAAE;gBACb,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK;aACN,CAAC,CAAC;YACH,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CAGF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=base.worker.unit.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.worker.unit.spec.d.ts","sourceRoot":"","sources":["../../src/core/base.worker.unit.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,110 @@
1
+ import { describe, it, expect, beforeEach, jest } from '@jest/globals';
2
+ const mockInfo = jest.fn();
3
+ const mockError = jest.fn();
4
+ jest.unstable_mockModule('@nestjs/bullmq', () => ({
5
+ WorkerHost: class WorkerHost {
6
+ },
7
+ }));
8
+ jest.unstable_mockModule('@volontariapp/logger', () => ({
9
+ Logger: jest.fn().mockImplementation(() => ({
10
+ info: mockInfo,
11
+ error: mockError,
12
+ })),
13
+ }));
14
+ const { BaseWorker } = await import('./base.worker.js');
15
+ const { JobMessagingType } = await import('@volontariapp/messaging');
16
+ class TestWorker extends BaseWorker {
17
+ processJob = jest.fn();
18
+ }
19
+ describe('BaseWorker', () => {
20
+ let worker;
21
+ let mockJob;
22
+ beforeEach(() => {
23
+ jest.clearAllMocks();
24
+ worker = new TestWorker();
25
+ mockJob = {
26
+ id: 'job-123',
27
+ name: JobMessagingType.SEND_WELCOME_EMAIL,
28
+ };
29
+ });
30
+ describe('process — success', () => {
31
+ it('should call processJob with the job', async () => {
32
+ worker.processJob.mockResolvedValue(undefined);
33
+ await worker.process(mockJob);
34
+ expect(worker.processJob).toHaveBeenCalledTimes(1);
35
+ expect(worker.processJob).toHaveBeenCalledWith(mockJob);
36
+ });
37
+ it('should log "Processing job" before execution', async () => {
38
+ worker.processJob.mockResolvedValue(undefined);
39
+ await worker.process(mockJob);
40
+ expect(mockInfo).toHaveBeenNthCalledWith(1, 'Processing job', {
41
+ jobId: 'job-123',
42
+ type: JobMessagingType.SEND_WELCOME_EMAIL,
43
+ workerId: expect.any(String),
44
+ });
45
+ });
46
+ it('should log "Job completed" after execution', async () => {
47
+ worker.processJob.mockResolvedValue(undefined);
48
+ await worker.process(mockJob);
49
+ expect(mockInfo).toHaveBeenCalledTimes(2);
50
+ expect(mockInfo).toHaveBeenNthCalledWith(2, 'Job completed', {
51
+ jobId: 'job-123',
52
+ type: JobMessagingType.SEND_WELCOME_EMAIL,
53
+ workerId: expect.any(String),
54
+ });
55
+ });
56
+ it('should not call logger.error on success', async () => {
57
+ worker.processJob.mockResolvedValue(undefined);
58
+ await worker.process(mockJob);
59
+ expect(mockError).not.toHaveBeenCalled();
60
+ });
61
+ it('should ignore the optional token parameter', async () => {
62
+ worker.processJob.mockResolvedValue(undefined);
63
+ await worker.process(mockJob, 'some-bullmq-token');
64
+ expect(worker.processJob).toHaveBeenCalledWith(mockJob);
65
+ });
66
+ });
67
+ describe('process — failure', () => {
68
+ it('should re-throw the error thrown by processJob', async () => {
69
+ const error = new Error('Processing failed');
70
+ worker.processJob.mockRejectedValue(error);
71
+ await expect(worker.process(mockJob)).rejects.toThrow(error);
72
+ });
73
+ it('should call logger.error with job metadata and the error', async () => {
74
+ const error = new Error('Processing failed');
75
+ worker.processJob.mockRejectedValue(error);
76
+ await expect(worker.process(mockJob)).rejects.toThrow();
77
+ expect(mockError).toHaveBeenCalledTimes(1);
78
+ expect(mockError).toHaveBeenCalledWith('Job failed', {
79
+ jobId: 'job-123',
80
+ type: JobMessagingType.SEND_WELCOME_EMAIL,
81
+ workerId: expect.any(String),
82
+ error,
83
+ });
84
+ });
85
+ it('should log "Processing job" but NOT "Job completed" on failure', async () => {
86
+ worker.processJob.mockRejectedValue(new Error('fail'));
87
+ await expect(worker.process(mockJob)).rejects.toThrow();
88
+ expect(mockInfo).toHaveBeenCalledTimes(1);
89
+ expect(mockInfo).toHaveBeenCalledWith('Processing job', expect.any(Object));
90
+ });
91
+ it('should propagate non-Error thrown values', async () => {
92
+ const thrown = 'string-error';
93
+ worker.processJob.mockRejectedValue(thrown);
94
+ await expect(worker.process(mockJob)).rejects.toBe(thrown);
95
+ expect(mockError).toHaveBeenCalledWith('Job failed', expect.objectContaining({ error: thrown }));
96
+ });
97
+ });
98
+ describe('typing', () => {
99
+ it('should pass Job typed with correct payload to processJob', async () => {
100
+ const typedJob = {
101
+ id: 'typed-job',
102
+ name: JobMessagingType.SEND_WELCOME_EMAIL,
103
+ };
104
+ worker.processJob.mockResolvedValue(undefined);
105
+ await worker.process(typedJob);
106
+ expect(worker.processJob).toHaveBeenCalledWith(typedJob);
107
+ });
108
+ });
109
+ });
110
+ //# sourceMappingURL=base.worker.unit.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.worker.unit.spec.js","sourceRoot":"","sources":["../../src/core/base.worker.unit.spec.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
- export { BaseWorker } from './base.worker.js';
2
- export type { WorkerConfig, WorkerConnectionConfig } from './types/worker-config.types.js';
1
+ export { BaseWorker } from './core/base.worker.js';
2
+ export type { JobOf } from './types/index.js';
3
+ export type { WorkerAppConfig, BullWorkerModuleConfig, BullConnectionConfig, BullDefaultJobOptions, } from './interfaces/index.js';
4
+ export { createBullConfig } from './utils/index.js';
3
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,YAAY,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EACV,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
- export { BaseWorker } from './base.worker.js';
1
+ export { BaseWorker } from './core/base.worker.js';
2
+ export { createBullConfig } from './utils/index.js';
2
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAQnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,23 @@
1
+ export interface BullConnectionConfig {
2
+ host: string;
3
+ port: number;
4
+ password: string;
5
+ db: number;
6
+ maxRetriesPerRequest: null;
7
+ enableReadyCheck: boolean;
8
+ enableOfflineQueue: boolean;
9
+ }
10
+ export interface BullDefaultJobOptions {
11
+ attempts: number;
12
+ backoff: {
13
+ type: string;
14
+ delay: number;
15
+ };
16
+ removeOnComplete: boolean;
17
+ removeOnFail: boolean;
18
+ }
19
+ export interface BullWorkerModuleConfig {
20
+ connection: BullConnectionConfig;
21
+ defaultJobOptions: BullDefaultJobOptions;
22
+ }
23
+ //# sourceMappingURL=bull-config.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bull-config.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/bull-config.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB,EAAE,IAAI,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,oBAAoB,CAAC;IACjC,iBAAiB,EAAE,qBAAqB,CAAC;CAC1C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=bull-config.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bull-config.interface.js","sourceRoot":"","sources":["../../src/interfaces/bull-config.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export type { WorkerAppConfig } from './worker-app-config.interface.js';
2
+ export type { BullWorkerModuleConfig, BullConnectionConfig, BullDefaultJobOptions, } from './bull-config.interface.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,YAAY,EACV,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import type { IRedisConfig } from '@volontariapp/config';
2
+ export interface WorkerAppConfig {
3
+ redis: IRedisConfig;
4
+ concurrency?: number;
5
+ }
6
+ //# sourceMappingURL=worker-app-config.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-app-config.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/worker-app-config.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,YAAY,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=worker-app-config.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-app-config.interface.js","sourceRoot":"","sources":["../../src/interfaces/worker-app-config.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export type { JobOf } from './job.types.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { Job } from 'bullmq';
2
+ import type { JobMessagingType, JobRegistry } from '@volontariapp/messaging';
3
+ export type JobOf<K extends JobMessagingType> = Job<JobRegistry[K], void, K>;
4
+ //# sourceMappingURL=job.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job.types.d.ts","sourceRoot":"","sources":["../../src/types/job.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE7E,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,gBAAgB,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=job.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job.types.js","sourceRoot":"","sources":["../../src/types/job.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { IRedisConfig } from '@volontariapp/config';
2
+ import type { BullWorkerModuleConfig } from '../interfaces/index.js';
3
+ export declare function createBullConfig(redis: IRedisConfig): BullWorkerModuleConfig;
4
+ //# sourceMappingURL=bull-config.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bull-config.utils.d.ts","sourceRoot":"","sources":["../../src/utils/bull-config.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,sBAAsB,CAkB5E"}
@@ -0,0 +1,20 @@
1
+ export function createBullConfig(redis) {
2
+ return {
3
+ connection: {
4
+ host: redis.host,
5
+ port: redis.port,
6
+ password: redis.password,
7
+ db: redis.db ?? 0,
8
+ maxRetriesPerRequest: null,
9
+ enableReadyCheck: false,
10
+ enableOfflineQueue: false,
11
+ },
12
+ defaultJobOptions: {
13
+ attempts: 3,
14
+ backoff: { type: 'exponential', delay: 1000 },
15
+ removeOnComplete: true,
16
+ removeOnFail: false,
17
+ },
18
+ };
19
+ }
20
+ //# sourceMappingURL=bull-config.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bull-config.utils.js","sourceRoot":"","sources":["../../src/utils/bull-config.utils.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,gBAAgB,CAAC,KAAmB;IAClD,OAAO;QACL,UAAU,EAAE;YACV,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC;YACjB,oBAAoB,EAAE,IAAI;YAC1B,gBAAgB,EAAE,KAAK;YACvB,kBAAkB,EAAE,KAAK;SAC1B;QACD,iBAAiB,EAAE;YACjB,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE;YAC7C,gBAAgB,EAAE,IAAI;YACtB,YAAY,EAAE,KAAK;SACpB;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { createBullConfig } from './bull-config.utils.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { createBullConfig } from './bull-config.utils.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volontariapp/workers",
3
- "version": "0.1.0-snap-a134190",
3
+ "version": "0.1.0-snap-8452a68",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "provenance": true
@@ -9,7 +9,7 @@
9
9
  "type": "git",
10
10
  "url": "git+https://github.com/Volontariapp/npm-packages.git"
11
11
  },
12
- "description": "",
12
+ "description": "Abstract BullMQ worker base for Volontariapp NestJS workers",
13
13
  "license": "UNLICENSED",
14
14
  "type": "module",
15
15
  "main": "./dist/index.js",
@@ -30,14 +30,29 @@
30
30
  "prepublishOnly": "yarn build",
31
31
  "build": "tsc -p tsconfig.json",
32
32
  "lint": "eslint src/",
33
- "test": "echo \"No tests yet\""
33
+ "test": "node --experimental-vm-modules $(yarn bin jest)",
34
+ "test:coverage": "node --experimental-vm-modules $(yarn bin jest) --coverage --coverageReporters=\"text\" --coverageReporters=\"json-summary\" --coverageReporters=\"lcov\"",
35
+ "test:watch": "node --experimental-vm-modules $(yarn bin jest) --watch"
34
36
  },
35
37
  "dependencies": {
38
+ "@volontariapp/config": "3.0.0",
36
39
  "@volontariapp/logger": "0.2.3",
37
- "bullmq": "^5.76.5"
40
+ "@volontariapp/messaging": "1.1.0"
41
+ },
42
+ "peerDependencies": {
43
+ "@nestjs/bullmq": "^11.0.0",
44
+ "@nestjs/common": "^11.0.0",
45
+ "bullmq": "^5.0.0"
38
46
  },
39
47
  "devDependencies": {
48
+ "@jest/globals": "^30.3.0",
49
+ "@nestjs/bullmq": "^11.0.0",
50
+ "@nestjs/common": "^11.0.0",
51
+ "@types/jest": "^30.0.0",
40
52
  "@types/node": "^24.0.0",
53
+ "bullmq": "^5.76.5",
54
+ "jest": "^30.3.0",
55
+ "ts-jest": "^29.4.6",
41
56
  "typescript": "5.7.3"
42
57
  }
43
58
  }
@@ -1,14 +0,0 @@
1
- import { type Job } from 'bullmq';
2
- import { Logger } from '@volontariapp/logger';
3
- import type { WorkerConfig } from './types/worker-config.types.js';
4
- export declare abstract class BaseWorker<TData extends Record<string, unknown>> {
5
- protected readonly config: WorkerConfig;
6
- private readonly worker;
7
- protected readonly logger: Logger;
8
- protected readonly workerId: string;
9
- constructor(config: WorkerConfig);
10
- private registerEvents;
11
- protected abstract processJob(job: Job<TData, void>): Promise<void>;
12
- close(): Promise<void>;
13
- }
14
- //# sourceMappingURL=base.worker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.worker.d.ts","sourceRoot":"","sources":["../src/base.worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAEnE,8BAAsB,UAAU,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAKxD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY;IAJnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEL,MAAM,EAAE,YAAY;IAgBnD,OAAO,CAAC,cAAc;IA2BtB,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAE7D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B"}
@@ -1,51 +0,0 @@
1
- import { Worker } from 'bullmq';
2
- import { Logger } from '@volontariapp/logger';
3
- import { hostname } from 'node:os';
4
- export class BaseWorker {
5
- config;
6
- worker;
7
- logger;
8
- workerId;
9
- constructor(config) {
10
- this.config = config;
11
- this.workerId = hostname();
12
- this.logger = new Logger({ context: this.constructor.name });
13
- this.worker = new Worker(config.queueName, (job) => this.processJob(job), {
14
- connection: config.connection,
15
- concurrency: config.concurrency ?? 1,
16
- });
17
- this.registerEvents();
18
- }
19
- registerEvents() {
20
- this.worker.on('completed', (job) => {
21
- this.logger.info(`Job completed`, {
22
- jobId: job.id,
23
- jobName: job.name,
24
- workerId: this.workerId,
25
- });
26
- });
27
- this.worker.on('failed', (job, error) => {
28
- this.logger.error(`Job failed`, {
29
- jobId: job?.id,
30
- jobName: job?.name,
31
- workerId: this.workerId,
32
- error,
33
- });
34
- });
35
- this.worker.on('error', (error) => {
36
- this.logger.error(`Worker error`, {
37
- workerId: this.workerId,
38
- queue: this.config.queueName,
39
- error,
40
- });
41
- });
42
- }
43
- async close() {
44
- this.logger.info(`Worker closing`, {
45
- workerId: this.workerId,
46
- queue: this.config.queueName,
47
- });
48
- await this.worker.close();
49
- }
50
- }
51
- //# sourceMappingURL=base.worker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.worker.js","sourceRoot":"","sources":["../src/base.worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAY,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,MAAM,OAAgB,UAAU;IAKC;IAJd,MAAM,CAAsB;IAC1B,MAAM,CAAS;IACf,QAAQ,CAAS;IAEpC,YAA+B,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;QACjD,IAAI,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAE7D,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CACtB,MAAM,CAAC,SAAS,EAChB,CAAC,GAAqB,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAC/C;YACE,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,CAAC;SACrC,CACF,CAAC;QAEF,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,GAAqB,EAAE,EAAE;YACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE;gBAChC,KAAK,EAAE,GAAG,CAAC,EAAE;gBACb,OAAO,EAAE,GAAG,CAAC,IAAI;gBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAiC,EAAE,KAAY,EAAE,EAAE;YAC3E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE;gBAC9B,KAAK,EAAE,GAAG,EAAE,EAAE;gBACd,OAAO,EAAE,GAAG,EAAE,IAAI;gBAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK;aACN,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE;gBAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK;aACN,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAID,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;SAC7B,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;CACF"}
@@ -1,14 +0,0 @@
1
- export interface WorkerConnectionConfig {
2
- host: string;
3
- port: number;
4
- db?: number;
5
- maxRetriesPerRequest?: number | null;
6
- enableReadyCheck?: boolean;
7
- enableOfflineQueue?: boolean;
8
- }
9
- export interface WorkerConfig {
10
- queueName: string;
11
- concurrency?: number;
12
- connection: WorkerConnectionConfig;
13
- }
14
- //# sourceMappingURL=worker-config.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker-config.types.d.ts","sourceRoot":"","sources":["../../src/types/worker-config.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,sBAAsB,CAAC;CACpC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=worker-config.types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker-config.types.js","sourceRoot":"","sources":["../../src/types/worker-config.types.ts"],"names":[],"mappings":""}