@volontariapp/workers 0.1.0-snap-b032dae → 0.1.0-snap-ab1d04b

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 (37) 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/index.d.ts +4 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +2 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/interfaces/bull-config.interface.d.ts +23 -0
  10. package/dist/interfaces/bull-config.interface.d.ts.map +1 -0
  11. package/dist/interfaces/bull-config.interface.js +2 -0
  12. package/dist/interfaces/bull-config.interface.js.map +1 -0
  13. package/dist/interfaces/index.d.ts +3 -0
  14. package/dist/interfaces/index.d.ts.map +1 -0
  15. package/dist/interfaces/index.js +2 -0
  16. package/dist/interfaces/index.js.map +1 -0
  17. package/dist/interfaces/worker-app-config.interface.d.ts +6 -0
  18. package/dist/interfaces/worker-app-config.interface.d.ts.map +1 -0
  19. package/dist/interfaces/worker-app-config.interface.js +2 -0
  20. package/dist/interfaces/worker-app-config.interface.js.map +1 -0
  21. package/dist/types/index.d.ts +2 -0
  22. package/dist/types/index.d.ts.map +1 -0
  23. package/dist/types/index.js +2 -0
  24. package/dist/types/index.js.map +1 -0
  25. package/dist/types/job.types.d.ts +4 -0
  26. package/dist/types/job.types.d.ts.map +1 -0
  27. package/dist/types/job.types.js +2 -0
  28. package/dist/types/job.types.js.map +1 -0
  29. package/dist/utils/bull-config.utils.d.ts +4 -0
  30. package/dist/utils/bull-config.utils.d.ts.map +1 -0
  31. package/dist/utils/bull-config.utils.js +20 -0
  32. package/dist/utils/bull-config.utils.js.map +1 -0
  33. package/dist/utils/index.d.ts +2 -0
  34. package/dist/utils/index.d.ts.map +1 -0
  35. package/dist/utils/index.js +2 -0
  36. package/dist/utils/index.js.map +1 -0
  37. package/package.json +16 -2
@@ -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"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,5 @@
1
- export {};
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';
2
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,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 {};
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":""}
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-b032dae",
3
+ "version": "0.1.0-snap-ab1d04b",
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",
@@ -32,7 +32,21 @@
32
32
  "lint": "eslint src/",
33
33
  "test": "echo \"No tests yet\""
34
34
  },
35
+ "dependencies": {
36
+ "@volontariapp/config": "3.0.0",
37
+ "@volontariapp/logger": "0.2.3",
38
+ "@volontariapp/messaging": "1.1.0"
39
+ },
40
+ "peerDependencies": {
41
+ "@nestjs/bullmq": "^11.0.0",
42
+ "@nestjs/common": "^11.0.0",
43
+ "bullmq": "^5.0.0"
44
+ },
35
45
  "devDependencies": {
46
+ "@nestjs/bullmq": "^11.0.0",
47
+ "@nestjs/common": "^11.0.0",
48
+ "@types/node": "^24.0.0",
49
+ "bullmq": "^5.76.5",
36
50
  "typescript": "5.7.3"
37
51
  }
38
52
  }