pg-boss 11.1.1 → 12.0.0-beta1

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
@@ -82,9 +82,9 @@ To run the test suite, linter and code coverage:
82
82
  npm run cover
83
83
  ```
84
84
 
85
- The test suite will try and create a new database named pgboss. The [config.json](https://github.com/timgit/pg-boss/test/config.json) file has the default credentials to connect to postgres.
85
+ The test suite will try and create a new database named pgboss. The [config.json](https://github.com/timgit/pg-boss/blob/master/test/config.json) file has the default credentials to connect to postgres.
86
86
 
87
- The [Docker Compose](https://github.com/timgit/pg-boss/docker-compose.yaml) file can be used to start a local postgres instance for testing:
87
+ The [Docker Compose](https://github.com/timgit/pg-boss/blob/master/docker-compose.yaml) file can be used to start a local postgres instance for testing:
88
88
 
89
89
  ```bash
90
90
  docker compose up
@@ -0,0 +1,269 @@
1
+ import EventEmitter from "node:events";
2
+
3
+ //#region src/types.d.ts
4
+ type JobStates = {
5
+ created: 'created';
6
+ retry: 'retry';
7
+ active: 'active';
8
+ completed: 'completed';
9
+ cancelled: 'cancelled';
10
+ failed: 'failed';
11
+ };
12
+ type QueuePolicies = {
13
+ standard: 'standard';
14
+ short: 'short';
15
+ singleton: 'singleton';
16
+ stately: 'stately';
17
+ };
18
+ interface IDatabase {
19
+ executeSql(text: string, values?: unknown[]): Promise<{
20
+ rows: any[];
21
+ }>;
22
+ }
23
+ interface DatabaseOptions {
24
+ application_name?: string;
25
+ database?: string;
26
+ user?: string;
27
+ password?: string | (() => string) | (() => Promise<string>);
28
+ host?: string;
29
+ port?: number;
30
+ schema?: string;
31
+ ssl?: any;
32
+ connectionString?: string;
33
+ max?: number;
34
+ db?: IDatabase;
35
+ }
36
+ interface SchedulingOptions {
37
+ schedule?: boolean;
38
+ clockMonitorIntervalSeconds?: number;
39
+ cronWorkerIntervalSeconds?: number;
40
+ cronMonitorIntervalSeconds?: number;
41
+ }
42
+ interface MaintenanceOptions {
43
+ supervise?: boolean;
44
+ migrate?: boolean;
45
+ warningSlowQuerySeconds?: number;
46
+ warningQueueSize?: number;
47
+ superviseIntervalSeconds?: number;
48
+ maintenanceIntervalSeconds?: number;
49
+ queueCacheIntervalSeconds?: number;
50
+ monitorIntervalSeconds?: number;
51
+ }
52
+ interface ConstructorOptions extends DatabaseOptions, SchedulingOptions, MaintenanceOptions {}
53
+ interface QueueOptions {
54
+ expireInSeconds?: number;
55
+ retentionSeconds?: number;
56
+ deleteAfterSeconds?: number;
57
+ retryLimit?: number;
58
+ retryDelay?: number;
59
+ retryBackoff?: boolean;
60
+ retryDelayMax?: number;
61
+ }
62
+ interface JobOptions {
63
+ id?: string;
64
+ priority?: number;
65
+ startAfter?: number | string | Date;
66
+ singletonKey?: string;
67
+ singletonSeconds?: number;
68
+ singletonNextSlot?: boolean;
69
+ keepUntil?: number | string | Date;
70
+ }
71
+ interface ConnectionOptions {
72
+ db?: IDatabase;
73
+ }
74
+ type InsertOptions = ConnectionOptions;
75
+ type SendOptions = JobOptions & QueueOptions & ConnectionOptions;
76
+ type QueuePolicy = 'standard' | 'short' | 'singleton' | 'stately' | 'exclusive';
77
+ interface Queue extends QueueOptions {
78
+ name: string;
79
+ policy?: QueuePolicy;
80
+ partition?: boolean;
81
+ deadLetter?: string;
82
+ warningQueueSize?: number;
83
+ }
84
+ interface QueueResult extends Queue {
85
+ deferredCount: number;
86
+ queuedCount: number;
87
+ activeCount: number;
88
+ totalCount: number;
89
+ table: string;
90
+ createdOn: Date;
91
+ updatedOn: Date;
92
+ singletonsActive: string[] | null;
93
+ }
94
+ type ScheduleOptions = SendOptions & {
95
+ tz?: string;
96
+ key?: string;
97
+ };
98
+ interface JobPollingOptions {
99
+ pollingIntervalSeconds?: number;
100
+ }
101
+ interface JobFetchOptions {
102
+ includeMetadata?: boolean;
103
+ priority?: boolean;
104
+ batchSize?: number;
105
+ ignoreStartAfter?: boolean;
106
+ }
107
+ type WorkOptions = JobFetchOptions & JobPollingOptions;
108
+ type FetchOptions = JobFetchOptions & ConnectionOptions;
109
+ interface WorkHandler<ReqData> {
110
+ (job: Job<ReqData>[]): Promise<any>;
111
+ }
112
+ interface WorkWithMetadataHandler<ReqData> {
113
+ (job: JobWithMetadata<ReqData>[]): Promise<any>;
114
+ }
115
+ interface Request {
116
+ name: string;
117
+ data?: object;
118
+ options?: SendOptions;
119
+ }
120
+ interface Schedule {
121
+ name: string;
122
+ key: string;
123
+ cron: string;
124
+ timezone: string;
125
+ data?: object;
126
+ options?: SendOptions;
127
+ }
128
+ interface Job<T = object> {
129
+ id: string;
130
+ name: string;
131
+ data: T;
132
+ expireInSeconds: number;
133
+ }
134
+ interface JobWithMetadata<T = object> extends Job<T> {
135
+ priority: number;
136
+ state: 'created' | 'retry' | 'active' | 'completed' | 'cancelled' | 'failed';
137
+ retryLimit: number;
138
+ retryCount: number;
139
+ retryDelay: number;
140
+ retryBackoff: boolean;
141
+ retryDelayMax?: number;
142
+ startAfter: Date;
143
+ startedOn: Date;
144
+ singletonKey: string | null;
145
+ singletonOn: Date | null;
146
+ expireInSeconds: number;
147
+ deleteAfterSeconds: number;
148
+ createdOn: Date;
149
+ completedOn: Date | null;
150
+ keepUntil: Date;
151
+ policy: QueuePolicy;
152
+ deadLetter: string;
153
+ output: object;
154
+ }
155
+ interface JobInsert<T = object> {
156
+ id?: string;
157
+ data?: T;
158
+ priority?: number;
159
+ retryLimit?: number;
160
+ retryDelay?: number;
161
+ retryBackoff?: boolean;
162
+ retryDelayMax?: number;
163
+ startAfter?: Date | number | string;
164
+ singletonKey?: string;
165
+ singletonSeconds?: number;
166
+ expireInSeconds?: number;
167
+ deleteAfterSeconds?: number;
168
+ retentionSeconds?: number;
169
+ }
170
+ type WorkerState = 'created' | 'active' | 'stopping' | 'stopped';
171
+ interface WipData {
172
+ id: string;
173
+ name: string;
174
+ options: WorkOptions;
175
+ state: WorkerState;
176
+ count: number;
177
+ createdOn: number;
178
+ lastFetchedOn: number | null;
179
+ lastJobStartedOn: number | null;
180
+ lastJobEndedOn: number | null;
181
+ lastJobDuration: number | null;
182
+ lastError: object | null;
183
+ lastErrorOn: number | null;
184
+ }
185
+ interface StopOptions {
186
+ close?: boolean;
187
+ graceful?: boolean;
188
+ timeout?: number;
189
+ wait?: boolean;
190
+ }
191
+ interface OffWorkOptions {
192
+ id: string;
193
+ }
194
+ type UpdateQueueOptions = Omit<Queue, 'name' | 'partition' | 'policy'>;
195
+ interface Warning {
196
+ message: string;
197
+ data: object;
198
+ }
199
+ interface CommandResponse {}
200
+ type PgBossEventMap = {
201
+ error: [error: Error];
202
+ warning: [warning: Warning];
203
+ wip: [data: WipData[]];
204
+ stopped: [];
205
+ };
206
+ //#endregion
207
+ //#region src/index.d.ts
208
+ declare class PgBoss extends EventEmitter<PgBossEventMap> {
209
+ #private;
210
+ constructor(connectionString: string);
211
+ constructor(options: ConstructorOptions);
212
+ static getConstructionPlans(schema?: string): string;
213
+ static getMigrationPlans(schema?: string, version?: number): string;
214
+ static getRollbackPlans(schema?: string, version?: number): string;
215
+ static states: JobStates;
216
+ static policies: QueuePolicies;
217
+ start(): Promise<this>;
218
+ stop(options?: StopOptions): Promise<void>;
219
+ send(request: Request): Promise<string | null>;
220
+ send(name: string, data?: object, options?: SendOptions): Promise<string | null>;
221
+ sendAfter(name: string, data: object, options: SendOptions, date: Date): Promise<string | null>;
222
+ sendAfter(name: string, data: object, options: SendOptions, dateString: string): Promise<string | null>;
223
+ sendAfter(name: string, data: object, options: SendOptions, seconds: number): Promise<string | null>;
224
+ sendThrottled(name: string, data: object, options: SendOptions, seconds: number, key?: string): Promise<string | null>;
225
+ sendDebounced(name: string, data: object, options: SendOptions, seconds: number, key?: string): Promise<string | null>;
226
+ insert(name: string, jobs: JobInsert[], options?: InsertOptions): Promise<string[] | null>;
227
+ fetch<T>(name: string, options: FetchOptions & {
228
+ includeMetadata: true;
229
+ }): Promise<JobWithMetadata<T>[]>;
230
+ fetch<T>(name: string, options?: FetchOptions): Promise<Job<T>[]>;
231
+ work<ReqData>(name: string, handler: WorkHandler<ReqData>): Promise<string>;
232
+ work<ReqData>(name: string, options: WorkOptions & {
233
+ includeMetadata: true;
234
+ }, handler: WorkWithMetadataHandler<ReqData>): Promise<string>;
235
+ work<ReqData>(name: string, options: WorkOptions, handler: WorkHandler<ReqData>): Promise<string>;
236
+ offWork(name: string): Promise<void>;
237
+ offWork(options: OffWorkOptions): Promise<void>;
238
+ notifyWorker(workerId: string): void;
239
+ subscribe(event: string, name: string): Promise<void>;
240
+ unsubscribe(event: string, name: string): Promise<void>;
241
+ publish(event: string, data?: object, options?: SendOptions): Promise<void>;
242
+ cancel(name: string, id: string | string[], options?: ConnectionOptions): Promise<CommandResponse>;
243
+ resume(name: string, id: string | string[], options?: ConnectionOptions): Promise<CommandResponse>;
244
+ retry(name: string, id: string | string[], options?: ConnectionOptions): Promise<CommandResponse>;
245
+ deleteJob(name: string, id: string | string[], options?: ConnectionOptions): Promise<CommandResponse>;
246
+ deleteQueuedJobs(name: string): Promise<void>;
247
+ deleteStoredJobs(name: string): Promise<void>;
248
+ deleteAllJobs(name: string): Promise<void>;
249
+ complete(name: string, id: string | string[], data?: object, options?: ConnectionOptions): Promise<CommandResponse>;
250
+ fail(name: string, id: string | string[], data?: object, options?: ConnectionOptions): Promise<CommandResponse>;
251
+ getJobById<T>(name: string, id: string, options?: ConnectionOptions): Promise<JobWithMetadata<T> | null>;
252
+ createQueue(name: string, options?: Omit<Queue, 'name'>): Promise<void>;
253
+ updateQueue(name: string, options?: UpdateQueueOptions): Promise<void>;
254
+ deleteQueue(name: string): Promise<void>;
255
+ getQueues(names?: string[]): Promise<QueueResult[]>;
256
+ getQueue(name: string): Promise<QueueResult | null>;
257
+ getQueueStats(name: string): Promise<QueueResult>;
258
+ supervise(name?: string): Promise<void>;
259
+ isInstalled(): Promise<boolean>;
260
+ schemaVersion(): Promise<number | null>;
261
+ schedule(name: string, cron: string, data?: object, options?: ScheduleOptions): Promise<void>;
262
+ unschedule(name: string, key?: string): Promise<void>;
263
+ getSchedules(name?: string, key?: string): Promise<Schedule[]>;
264
+ getDb(): IDatabase;
265
+ }
266
+ declare const states: JobStates, policies: QueuePolicies, getConstructionPlans: typeof PgBoss.getConstructionPlans, getMigrationPlans: typeof PgBoss.getMigrationPlans, getRollbackPlans: typeof PgBoss.getRollbackPlans;
267
+ //#endregion
268
+ export { type ConnectionOptions, type ConstructorOptions, type IDatabase as Db, type FetchOptions, type Job, type JobFetchOptions, type JobInsert, type JobPollingOptions, type JobStates, type JobWithMetadata, type MaintenanceOptions, type OffWorkOptions, PgBoss, PgBoss as default, type Queue, type QueuePolicies, type QueueResult, type Request, type Schedule, type ScheduleOptions, type SchedulingOptions, type StopOptions, type WipData, type WorkHandler, type WorkOptions, type WorkWithMetadataHandler, getConstructionPlans, getMigrationPlans, getRollbackPlans, policies, states };
269
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}