@wisemen/pgboss-nestjs-job 2.2.1 → 3.0.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/client/pgboss-client.config.d.ts +11 -0
- package/dist/client/pgboss-client.config.js +2 -0
- package/dist/client/pgboss-client.config.js.map +1 -0
- package/dist/client/pgboss-client.d.ts +3 -5
- package/dist/client/pgboss-client.js +7 -13
- package/dist/client/pgboss-client.js.map +1 -1
- package/dist/client/pgboss-client.module.d.ts +4 -2
- package/dist/client/pgboss-client.module.js +20 -3
- package/dist/client/pgboss-client.module.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/scheduler/pgboss-scheduler.config.d.ts +10 -0
- package/dist/scheduler/pgboss-scheduler.config.js +2 -0
- package/dist/scheduler/pgboss-scheduler.config.js.map +1 -0
- package/dist/scheduler/pgboss-scheduler.module.d.ts +4 -0
- package/dist/scheduler/pgboss-scheduler.module.js +35 -13
- package/dist/scheduler/pgboss-scheduler.module.js.map +1 -1
- package/dist/worker/pgboss-worker.config.d.ts +8 -3
- package/dist/worker/pgboss-worker.js +2 -1
- package/dist/worker/pgboss-worker.js.map +1 -1
- package/dist/worker/pgboss-worker.module.d.ts +4 -2
- package/dist/worker/pgboss-worker.module.js +35 -10
- package/dist/worker/pgboss-worker.module.js.map +1 -1
- package/package.json +4 -2
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DynamicModule, InjectionToken, OptionalFactoryDependency } from "@nestjs/common";
|
|
2
|
+
import { ConstructorOptions } from "pg-boss";
|
|
3
|
+
export type PgBossClientConfig = {
|
|
4
|
+
pgBossOptions: ConstructorOptions;
|
|
5
|
+
onClientError?: (error: Error) => Promise<void> | void;
|
|
6
|
+
};
|
|
7
|
+
export interface PgBossClientAsyncConfig {
|
|
8
|
+
imports?: Array<DynamicModule | Promise<DynamicModule>>;
|
|
9
|
+
useFactory: (...args: unknown[]) => Promise<PgBossClientConfig> | PgBossClientConfig;
|
|
10
|
+
inject?: Array<InjectionToken | OptionalFactoryDependency>;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pgboss-client.config.js","sourceRoot":"","sources":["../../lib/client/pgboss-client.config.ts"],"names":[],"mappings":""}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { type OnModuleDestroy, type OnModuleInit } from '@nestjs/common';
|
|
2
2
|
import { PgBoss } from 'pg-boss';
|
|
3
|
-
|
|
4
|
-
onClientError?: (error: Error) => Promise<void> | void;
|
|
5
|
-
}
|
|
3
|
+
import { PgBossClientConfig } from './pgboss-client.config.js';
|
|
6
4
|
export declare class PgBossClient extends PgBoss implements OnModuleInit, OnModuleDestroy {
|
|
7
|
-
private readonly
|
|
8
|
-
constructor(
|
|
5
|
+
private readonly options;
|
|
6
|
+
constructor(options: PgBossClientConfig);
|
|
9
7
|
onModuleInit(): Promise<void>;
|
|
10
8
|
onModuleDestroy(): Promise<void>;
|
|
11
9
|
}
|
|
@@ -12,22 +12,16 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
12
12
|
};
|
|
13
13
|
import { Inject, Injectable } from '@nestjs/common';
|
|
14
14
|
import { PgBoss } from 'pg-boss';
|
|
15
|
+
import { PG_BOSS_CLIENT_OPTIONS } from './pgboss-client.module.js';
|
|
15
16
|
let PgBossClient = class PgBossClient extends PgBoss {
|
|
16
|
-
|
|
17
|
-
constructor(
|
|
18
|
-
super(
|
|
19
|
-
|
|
20
|
-
password: process.env.DB_PASSWORD,
|
|
21
|
-
host: process.env.DB_HOST,
|
|
22
|
-
port: process.env.DB_PORT ? parseInt(process.env.DB_PORT) : undefined,
|
|
23
|
-
database: process.env.DB_NAME,
|
|
24
|
-
// ssl: process.env.DB_SSL === 'true' ? { rejectUnauthorized: false } : undefined
|
|
25
|
-
});
|
|
26
|
-
this.config = config;
|
|
17
|
+
options;
|
|
18
|
+
constructor(options) {
|
|
19
|
+
super(options.pgBossOptions);
|
|
20
|
+
this.options = options;
|
|
27
21
|
}
|
|
28
22
|
async onModuleInit() {
|
|
29
23
|
await this.start();
|
|
30
|
-
this.on('error', this.
|
|
24
|
+
this.on('error', this.options.onClientError ?? ((error) => { process.exit('1'); }));
|
|
31
25
|
}
|
|
32
26
|
async onModuleDestroy() {
|
|
33
27
|
await this.stop();
|
|
@@ -35,7 +29,7 @@ let PgBossClient = class PgBossClient extends PgBoss {
|
|
|
35
29
|
};
|
|
36
30
|
PgBossClient = __decorate([
|
|
37
31
|
Injectable(),
|
|
38
|
-
__param(0, Inject(
|
|
32
|
+
__param(0, Inject(PG_BOSS_CLIENT_OPTIONS)),
|
|
39
33
|
__metadata("design:paramtypes", [Object])
|
|
40
34
|
], PgBossClient);
|
|
41
35
|
export { PgBossClient };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pgboss-client.js","sourceRoot":"","sources":["../../lib/client/pgboss-client.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAA2C,MAAM,gBAAgB,CAAA;AAC5F,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"pgboss-client.js","sourceRoot":"","sources":["../../lib/client/pgboss-client.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAA2C,MAAM,gBAAgB,CAAA;AAC5F,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAI3D,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,MAAM;IAEa;IADnD,YACmD,OAA2B;QAE5E,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAFqB,YAAO,GAAP,OAAO,CAAoB;IAG9E,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;QAClB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,KAAY,EAAE,EAAE,GAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAC,CAAC,CAAC,CAAA;IACzF,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;IACnB,CAAC;CACF,CAAA;AAfY,YAAY;IADxB,UAAU,EAAE;IAGR,WAAA,MAAM,CAAC,sBAAsB,CAAC,CAAA;;GAFtB,YAAY,CAexB"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { DynamicModule } from '@nestjs/common';
|
|
2
|
-
import { PgBossClientConfig } from './pgboss-client.js';
|
|
2
|
+
import { PgBossClientAsyncConfig, PgBossClientConfig } from './pgboss-client.config.js';
|
|
3
|
+
export declare const PG_BOSS_CLIENT_OPTIONS = "PG_BOSS_CLIENT_OPTIONS";
|
|
3
4
|
export declare class PgBossClientModule {
|
|
4
|
-
static forRoot(
|
|
5
|
+
static forRoot(options: PgBossClientConfig): DynamicModule;
|
|
6
|
+
static forRootAsync(options: PgBossClientAsyncConfig): DynamicModule;
|
|
5
7
|
}
|
|
@@ -7,20 +7,37 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var PgBossClientModule_1;
|
|
8
8
|
import { Module } from '@nestjs/common';
|
|
9
9
|
import { PgBossClient } from './pgboss-client.js';
|
|
10
|
+
export const PG_BOSS_CLIENT_OPTIONS = 'PG_BOSS_CLIENT_OPTIONS';
|
|
10
11
|
let PgBossClientModule = PgBossClientModule_1 = class PgBossClientModule {
|
|
11
|
-
static forRoot(
|
|
12
|
+
static forRoot(options) {
|
|
12
13
|
return {
|
|
13
14
|
module: PgBossClientModule_1,
|
|
14
15
|
providers: [
|
|
15
16
|
{
|
|
16
|
-
provide:
|
|
17
|
-
useValue:
|
|
17
|
+
provide: PG_BOSS_CLIENT_OPTIONS,
|
|
18
|
+
useValue: options
|
|
18
19
|
},
|
|
19
20
|
PgBossClient
|
|
20
21
|
],
|
|
21
22
|
exports: [PgBossClient]
|
|
22
23
|
};
|
|
23
24
|
}
|
|
25
|
+
static forRootAsync(options) {
|
|
26
|
+
const optionsProvider = {
|
|
27
|
+
provide: PG_BOSS_CLIENT_OPTIONS,
|
|
28
|
+
useFactory: options.useFactory,
|
|
29
|
+
inject: options.inject || []
|
|
30
|
+
};
|
|
31
|
+
return {
|
|
32
|
+
module: PgBossClientModule_1,
|
|
33
|
+
imports: options.imports ?? [],
|
|
34
|
+
providers: [
|
|
35
|
+
optionsProvider,
|
|
36
|
+
PgBossClient
|
|
37
|
+
],
|
|
38
|
+
exports: [PgBossClient]
|
|
39
|
+
};
|
|
40
|
+
}
|
|
24
41
|
};
|
|
25
42
|
PgBossClientModule = PgBossClientModule_1 = __decorate([
|
|
26
43
|
Module({})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pgboss-client.module.js","sourceRoot":"","sources":["../../lib/client/pgboss-client.module.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"pgboss-client.module.js","sourceRoot":"","sources":["../../lib/client/pgboss-client.module.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAiC,MAAM,EAAuC,MAAM,gBAAgB,CAAA;AAC3G,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAIjD,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAA;AAGvD,IAAM,kBAAkB,0BAAxB,MAAM,kBAAkB;IAC7B,MAAM,CAAC,OAAO,CAAC,OAA2B;QACxC,OAAO;YACL,MAAM,EAAE,oBAAkB;YAC1B,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,sBAAsB;oBAC/B,QAAQ,EAAE,OAAO;iBAClB;gBACD,YAAY;aACb;YACD,OAAO,EAAE,CAAC,YAAY,CAAC;SACxB,CAAA;IACH,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,OAAgC;QAClD,MAAM,eAAe,GAAa;YAChC,OAAO,EAAE,sBAAsB;YAC/B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;SAC7B,CAAA;QAED,OAAO;YACL,MAAM,EAAE,oBAAkB;YAC1B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,SAAS,EAAE;gBACT,eAAe;gBACf,YAAY;aACb;YACD,OAAO,EAAE,CAAC,YAAY,CAAC;SACxB,CAAA;IACH,CAAC;CACF,CAAA;AAhCY,kBAAkB;IAD9B,MAAM,CAAC,EAAE,CAAC;GACE,kBAAkB,CAgC9B"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,5 +8,5 @@ export { BaseJob, BaseJobData } from './jobs/base-job.js';
|
|
|
8
8
|
export { JobHandler } from './jobs/job-handler.js';
|
|
9
9
|
export { PgBossSchedulerModule } from './scheduler/pgboss-scheduler.module.js';
|
|
10
10
|
export { PgBossScheduler } from './scheduler/pgboss-scheduler.service.js';
|
|
11
|
-
export { PgBossClient, PgBossClientConfig } from './client/pgboss-client.js';
|
|
12
11
|
export { PgBossClientModule } from './client/pgboss-client.module.js';
|
|
12
|
+
export { PgBossClient } from './client/pgboss-client.js';
|
package/dist/index.js
CHANGED
|
@@ -12,6 +12,6 @@ export { JobHandler } from './jobs/job-handler.js';
|
|
|
12
12
|
export { PgBossSchedulerModule } from './scheduler/pgboss-scheduler.module.js';
|
|
13
13
|
export { PgBossScheduler } from './scheduler/pgboss-scheduler.service.js';
|
|
14
14
|
// Client
|
|
15
|
-
export { PgBossClient } from './client/pgboss-client.js';
|
|
16
15
|
export { PgBossClientModule } from './client/pgboss-client.module.js';
|
|
16
|
+
export { PgBossClient } from './client/pgboss-client.js';
|
|
17
17
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAE9C,WAAW;AACX,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAA;AAEjD,gBAAgB;AAChB,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AACrE,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAA;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE1D,OAAO,EAAE,OAAO,EAAe,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,kBAAkB;AAClB,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAA;AAEzE,SAAS;AACT,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAE9C,WAAW;AACX,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAA;AAEjD,gBAAgB;AAChB,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AACrE,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAA;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE1D,OAAO,EAAE,OAAO,EAAe,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,kBAAkB;AAClB,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAA;AAEzE,SAAS;AACT,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { InjectionToken, OptionalFactoryDependency, Type } from "@nestjs/common";
|
|
2
|
+
import { DatabaseOptions } from "pg-boss/dist/types.js";
|
|
3
|
+
export type PgBossSchedulerConfig = {
|
|
4
|
+
databaseOptions: DatabaseOptions;
|
|
5
|
+
};
|
|
6
|
+
export interface PgBossSchedulerAsyncConfig {
|
|
7
|
+
imports?: Type<unknown>[];
|
|
8
|
+
useFactory: (...args: unknown[]) => Promise<PgBossSchedulerConfig> | PgBossSchedulerConfig;
|
|
9
|
+
inject?: Array<InjectionToken | OptionalFactoryDependency>;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pgboss-scheduler.config.js","sourceRoot":"","sources":["../../lib/scheduler/pgboss-scheduler.config.ts"],"names":[],"mappings":""}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
+
import { DynamicModule } from '@nestjs/common';
|
|
2
|
+
import { PgBossSchedulerAsyncConfig, PgBossSchedulerConfig } from './pgboss-scheduler.config.js';
|
|
1
3
|
export declare class PgBossSchedulerModule {
|
|
4
|
+
static forRoot(options: PgBossSchedulerConfig): DynamicModule;
|
|
5
|
+
static forRootAsync(options: PgBossSchedulerAsyncConfig): DynamicModule;
|
|
2
6
|
}
|
|
@@ -4,23 +4,45 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
+
var PgBossSchedulerModule_1;
|
|
7
8
|
import { Module } from '@nestjs/common';
|
|
8
9
|
import { PgBossClientModule } from '../client/pgboss-client.module.js';
|
|
9
10
|
import { PgBossScheduler } from './pgboss-scheduler.service.js';
|
|
10
|
-
let PgBossSchedulerModule = class PgBossSchedulerModule {
|
|
11
|
+
let PgBossSchedulerModule = PgBossSchedulerModule_1 = class PgBossSchedulerModule {
|
|
12
|
+
static forRoot(options) {
|
|
13
|
+
return {
|
|
14
|
+
module: PgBossSchedulerModule_1,
|
|
15
|
+
imports: [
|
|
16
|
+
PgBossClientModule.forRoot({
|
|
17
|
+
pgBossOptions: options.databaseOptions
|
|
18
|
+
})
|
|
19
|
+
],
|
|
20
|
+
providers: [PgBossScheduler],
|
|
21
|
+
exports: [PgBossScheduler],
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
static forRootAsync(options) {
|
|
25
|
+
return {
|
|
26
|
+
module: PgBossSchedulerModule_1,
|
|
27
|
+
imports: [
|
|
28
|
+
...(options.imports ?? []),
|
|
29
|
+
PgBossClientModule.forRootAsync({
|
|
30
|
+
useFactory: async (...args) => {
|
|
31
|
+
const opts = await options.useFactory(...args);
|
|
32
|
+
return {
|
|
33
|
+
pgBossOptions: opts.databaseOptions
|
|
34
|
+
};
|
|
35
|
+
},
|
|
36
|
+
inject: options.inject ?? []
|
|
37
|
+
})
|
|
38
|
+
],
|
|
39
|
+
providers: [PgBossScheduler],
|
|
40
|
+
exports: [PgBossScheduler],
|
|
41
|
+
};
|
|
42
|
+
}
|
|
11
43
|
};
|
|
12
|
-
PgBossSchedulerModule = __decorate([
|
|
13
|
-
Module({
|
|
14
|
-
imports: [
|
|
15
|
-
PgBossClientModule.forRoot()
|
|
16
|
-
],
|
|
17
|
-
providers: [
|
|
18
|
-
PgBossScheduler
|
|
19
|
-
],
|
|
20
|
-
exports: [
|
|
21
|
-
PgBossScheduler
|
|
22
|
-
]
|
|
23
|
-
})
|
|
44
|
+
PgBossSchedulerModule = PgBossSchedulerModule_1 = __decorate([
|
|
45
|
+
Module({})
|
|
24
46
|
], PgBossSchedulerModule);
|
|
25
47
|
export { PgBossSchedulerModule };
|
|
26
48
|
//# sourceMappingURL=pgboss-scheduler.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pgboss-scheduler.module.js","sourceRoot":"","sources":["../../lib/scheduler/pgboss-scheduler.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pgboss-scheduler.module.js","sourceRoot":"","sources":["../../lib/scheduler/pgboss-scheduler.module.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAiC,MAAM,EAAmC,MAAM,gBAAgB,CAAA;AACvG,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAGxD,IAAM,qBAAqB,6BAA3B,MAAM,qBAAqB;IAChC,MAAM,CAAC,OAAO,CAAC,OAA8B;QAC3C,OAAO;YACL,MAAM,EAAE,uBAAqB;YAC7B,OAAO,EAAE;gBACP,kBAAkB,CAAC,OAAO,CAAC;oBACzB,aAAa,EAAE,OAAO,CAAC,eAAe;iBACvC,CAAC;aACH;YACD,SAAS,EAAE,CAAC,eAAe,CAAC;YAC5B,OAAO,EAAE,CAAC,eAAe,CAAC;SAC3B,CAAA;IACH,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,OAAmC;QACrD,OAAO;YACL,MAAM,EAAE,uBAAqB;YAC7B,OAAO,EAAE;gBACP,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC1B,kBAAkB,CAAC,YAAY,CAAC;oBAC9B,UAAU,EAAE,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;wBACvC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAA;wBAC9C,OAAO;4BACL,aAAa,EAAE,IAAI,CAAC,eAAe;yBACpC,CAAA;oBACH,CAAC;oBACD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;iBAC7B,CAAC;aACH;YACD,SAAS,EAAE,CAAC,eAAe,CAAC;YAC5B,OAAO,EAAE,CAAC,eAAe,CAAC;SAC3B,CAAA;IACH,CAAC;CACF,CAAA;AAjCY,qBAAqB;IADjC,MAAM,CAAC,EAAE,CAAC;GACE,qBAAqB,CAiCjC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { Type } from "@nestjs/common";
|
|
2
|
-
import {
|
|
1
|
+
import { InjectionToken, OptionalFactoryDependency, Type } from "@nestjs/common";
|
|
2
|
+
import { DatabaseOptions } from "pg-boss/dist/types.js";
|
|
3
3
|
export interface PgBossWorkerConfig {
|
|
4
4
|
queueName: string;
|
|
5
5
|
concurrency?: number;
|
|
6
6
|
pollInterval?: number;
|
|
7
7
|
batchSize?: number;
|
|
8
8
|
fetchRefreshThreshold?: number;
|
|
9
|
-
|
|
9
|
+
databaseOptions: DatabaseOptions;
|
|
10
10
|
/**
|
|
11
11
|
* The bouncer can prevent the worker from polling for jobs.
|
|
12
12
|
* A bouncer is provided as a nestjs module with a provider for QueuBouncer.
|
|
@@ -17,3 +17,8 @@ export interface PgBossWorkerConfig {
|
|
|
17
17
|
*/
|
|
18
18
|
bouncerModule?: Type<any>;
|
|
19
19
|
}
|
|
20
|
+
export interface PgBossWorkerAsyncConfig {
|
|
21
|
+
imports?: Type<unknown>[];
|
|
22
|
+
useFactory: (...args: unknown[]) => Promise<PgBossWorkerConfig> | PgBossWorkerConfig;
|
|
23
|
+
inject?: Array<InjectionToken | OptionalFactoryDependency>;
|
|
24
|
+
}
|
|
@@ -16,6 +16,7 @@ import { PgBossClient } from '../client/pgboss-client.js';
|
|
|
16
16
|
import { JobRegistry } from '../jobs/job.registry.js';
|
|
17
17
|
import { PgBossWorkerThread } from './pgboss-worker.thread.js';
|
|
18
18
|
import { AllowBouncer, QueueBouncer } from './queue-bouncer.js';
|
|
19
|
+
import { PG_BOSS_WORKER_CONFIG } from './pgboss-worker.module.js';
|
|
19
20
|
let PgBossWorker = class PgBossWorker {
|
|
20
21
|
client;
|
|
21
22
|
jobRegistry;
|
|
@@ -109,7 +110,7 @@ let PgBossWorker = class PgBossWorker {
|
|
|
109
110
|
};
|
|
110
111
|
PgBossWorker = __decorate([
|
|
111
112
|
Injectable(),
|
|
112
|
-
__param(0, Inject(
|
|
113
|
+
__param(0, Inject(PG_BOSS_WORKER_CONFIG)),
|
|
113
114
|
__param(1, Optional()),
|
|
114
115
|
__param(1, Inject(QueueBouncer)),
|
|
115
116
|
__metadata("design:paramtypes", [Object, Object, PgBossClient,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pgboss-worker.js","sourceRoot":"","sources":["../../lib/worker/pgboss-worker.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAiC,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"pgboss-worker.js","sourceRoot":"","sources":["../../lib/worker/pgboss-worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { type DynamicModule } from '@nestjs/common';
|
|
2
|
-
import { PgBossWorkerConfig } from './pgboss-worker.config.js';
|
|
2
|
+
import { PgBossWorkerAsyncConfig, PgBossWorkerConfig } from './pgboss-worker.config.js';
|
|
3
|
+
export declare const PG_BOSS_WORKER_CONFIG = "PG_BOSS_WORKER_CONFIG";
|
|
3
4
|
export declare class PgBossWorkerModule {
|
|
4
|
-
static forRoot(
|
|
5
|
+
static forRoot(options: PgBossWorkerConfig): DynamicModule;
|
|
6
|
+
static forRootAsync(options: PgBossWorkerAsyncConfig): DynamicModule;
|
|
5
7
|
}
|
|
@@ -9,27 +9,52 @@ import { Module } from '@nestjs/common';
|
|
|
9
9
|
import { JobModule } from '../jobs/job.module.js';
|
|
10
10
|
import { PgBossClientModule } from '../client/pgboss-client.module.js';
|
|
11
11
|
import { PgBossWorker } from './pgboss-worker.js';
|
|
12
|
+
export const PG_BOSS_WORKER_CONFIG = 'PG_BOSS_WORKER_CONFIG';
|
|
12
13
|
let PgBossWorkerModule = PgBossWorkerModule_1 = class PgBossWorkerModule {
|
|
13
|
-
static forRoot(
|
|
14
|
-
|
|
14
|
+
static forRoot(options) {
|
|
15
|
+
return {
|
|
15
16
|
module: PgBossWorkerModule_1,
|
|
16
17
|
imports: [
|
|
18
|
+
PgBossClientModule.forRoot({
|
|
19
|
+
pgBossOptions: options.databaseOptions
|
|
20
|
+
}),
|
|
17
21
|
JobModule,
|
|
18
|
-
|
|
22
|
+
...(options.bouncerModule ? [options.bouncerModule] : []),
|
|
19
23
|
],
|
|
20
24
|
providers: [
|
|
21
25
|
{
|
|
22
|
-
provide:
|
|
23
|
-
useValue:
|
|
26
|
+
provide: PG_BOSS_WORKER_CONFIG,
|
|
27
|
+
useValue: options
|
|
28
|
+
},
|
|
29
|
+
PgBossWorker
|
|
30
|
+
],
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
static forRootAsync(options) {
|
|
34
|
+
return {
|
|
35
|
+
module: PgBossWorkerModule_1,
|
|
36
|
+
imports: [
|
|
37
|
+
...(options.imports ?? []),
|
|
38
|
+
PgBossClientModule.forRootAsync({
|
|
39
|
+
useFactory: async (...args) => {
|
|
40
|
+
const opts = await options.useFactory(...args);
|
|
41
|
+
return {
|
|
42
|
+
pgBossOptions: opts.databaseOptions
|
|
43
|
+
};
|
|
44
|
+
},
|
|
45
|
+
inject: options.inject ?? []
|
|
46
|
+
}),
|
|
47
|
+
JobModule,
|
|
48
|
+
],
|
|
49
|
+
providers: [
|
|
50
|
+
{
|
|
51
|
+
provide: PG_BOSS_WORKER_CONFIG,
|
|
52
|
+
useFactory: options.useFactory,
|
|
53
|
+
inject: options.inject ?? []
|
|
24
54
|
},
|
|
25
55
|
PgBossWorker
|
|
26
56
|
],
|
|
27
|
-
exports: []
|
|
28
57
|
};
|
|
29
|
-
if (config.bouncerModule) {
|
|
30
|
-
module.imports.push(config.bouncerModule);
|
|
31
|
-
}
|
|
32
|
-
return module;
|
|
33
58
|
}
|
|
34
59
|
};
|
|
35
60
|
PgBossWorkerModule = PgBossWorkerModule_1 = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pgboss-worker.module.js","sourceRoot":"","sources":["../../lib/worker/pgboss-worker.module.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"pgboss-worker.module.js","sourceRoot":"","sources":["../../lib/worker/pgboss-worker.module.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAsC,MAAM,EAAmC,MAAM,gBAAgB,CAAA;AAC5G,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGjD,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAA;AAGrD,IAAM,kBAAkB,0BAAxB,MAAM,kBAAkB;IAC7B,MAAM,CAAC,OAAO,CAAC,OAA2B;QACxC,OAAO;YACL,MAAM,EAAE,oBAAkB;YAC1B,OAAO,EAAE;gBACP,kBAAkB,CAAC,OAAO,CAAC;oBACzB,aAAa,EAAE,OAAO,CAAC,eAAe;iBACvC,CAAC;gBACF,SAAS;gBACT,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1D;YACD,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,qBAAqB;oBAC9B,QAAQ,EAAE,OAAO;iBAClB;gBACD,YAAY;aACb;SACF,CAAA;IACH,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,OAAgC;QAClD,OAAO;YACL,MAAM,EAAE,oBAAkB;YAC1B,OAAO,EAAE;gBACP,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC1B,kBAAkB,CAAC,YAAY,CAAC;oBAC9B,UAAU,EAAE,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;wBACvC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAA;wBAC9C,OAAO;4BACL,aAAa,EAAE,IAAI,CAAC,eAAe;yBACpC,CAAA;oBACH,CAAC;oBACD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;iBAC7B,CAAC;gBACF,SAAS;aACV;YACD,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,qBAAqB;oBAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;iBAC7B;gBACD,YAAY;aACb;SACF,CAAA;IACH,CAAC;CACF,CAAA;AA/CY,kBAAkB;IAD9B,MAAM,CAAC,EAAE,CAAC;GACE,kBAAkB,CA+C9B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wisemen/pgboss-nestjs-job",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -23,6 +23,9 @@
|
|
|
23
23
|
"type": "git",
|
|
24
24
|
"url": "git@github.com:wisemen-digital/node-core.git"
|
|
25
25
|
},
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"pg-boss": "^12.5.2"
|
|
28
|
+
},
|
|
26
29
|
"peerDependencies": {
|
|
27
30
|
"@nestjs/common": "^11.1.9",
|
|
28
31
|
"@nestjs/core": "^11.1.9",
|
|
@@ -31,7 +34,6 @@
|
|
|
31
34
|
"@wisemen/nestjs-typeorm": "^0.0.37",
|
|
32
35
|
"@wisemen/opentelemetry": "^0.0.6",
|
|
33
36
|
"colors": "^1.4.0",
|
|
34
|
-
"pg-boss": "^12.5.2",
|
|
35
37
|
"rxjs": "^7.8.2",
|
|
36
38
|
"typeorm": "^0.3.28"
|
|
37
39
|
},
|