tspace-mysql 1.9.3 → 1.9.4

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 (63) hide show
  1. package/README.md +134 -17
  2. package/dist/lib/constants/index.d.ts +1 -1
  3. package/dist/lib/constants/index.js +8 -1
  4. package/dist/lib/constants/index.js.map +1 -1
  5. package/dist/lib/core/Abstracts/AbstractBuilder.d.ts +1 -1
  6. package/dist/lib/core/Abstracts/AbstractBuilder.js +1 -0
  7. package/dist/lib/core/Abstracts/AbstractBuilder.js.map +1 -1
  8. package/dist/lib/core/Blueprint.d.ts +43 -10
  9. package/dist/lib/core/Blueprint.js +43 -2
  10. package/dist/lib/core/Blueprint.js.map +1 -1
  11. package/dist/lib/core/Builder.d.ts +6 -6
  12. package/dist/lib/core/Builder.js +25 -28
  13. package/dist/lib/core/Builder.js.map +1 -1
  14. package/dist/lib/core/Contracts/Audit.d.ts +2 -2
  15. package/dist/lib/core/Contracts/Logger.d.ts +2 -2
  16. package/dist/lib/core/DB.d.ts +137 -6
  17. package/dist/lib/core/DB.js +153 -30
  18. package/dist/lib/core/DB.js.map +1 -1
  19. package/dist/lib/core/Driver/index.d.ts +1 -0
  20. package/dist/lib/core/Driver/index.js +11 -0
  21. package/dist/lib/core/Driver/index.js.map +1 -1
  22. package/dist/lib/core/Driver/mariadb/MariadbDriver.d.ts +3 -0
  23. package/dist/lib/core/Driver/mariadb/MariadbDriver.js +17 -2
  24. package/dist/lib/core/Driver/mariadb/MariadbDriver.js.map +1 -1
  25. package/dist/lib/core/Driver/mongodb/MongodbDriver.d.ts +3 -0
  26. package/dist/lib/core/Driver/mongodb/MongodbDriver.js +4 -1
  27. package/dist/lib/core/Driver/mongodb/MongodbDriver.js.map +1 -1
  28. package/dist/lib/core/Driver/mysql/MysqlDriver.d.ts +3 -0
  29. package/dist/lib/core/Driver/mysql/MysqlDriver.js +32 -2
  30. package/dist/lib/core/Driver/mysql/MysqlDriver.js.map +1 -1
  31. package/dist/lib/core/Driver/postgres/PostgresDriver.d.ts +3 -0
  32. package/dist/lib/core/Driver/postgres/PostgresDriver.js +21 -4
  33. package/dist/lib/core/Driver/postgres/PostgresDriver.js.map +1 -1
  34. package/dist/lib/core/Driver/sqlite/SqliteDriver.d.ts +3 -0
  35. package/dist/lib/core/Driver/sqlite/SqliteDriver.js +10 -1
  36. package/dist/lib/core/Driver/sqlite/SqliteDriver.js.map +1 -1
  37. package/dist/lib/core/Model.d.ts +331 -29
  38. package/dist/lib/core/Model.js +329 -19
  39. package/dist/lib/core/Model.js.map +1 -1
  40. package/dist/lib/core/Pool.js +6 -0
  41. package/dist/lib/core/Pool.js.map +1 -1
  42. package/dist/lib/core/{Queue.d.ts → Queue/index.d.ts} +115 -111
  43. package/dist/lib/core/Queue/index.js +283 -0
  44. package/dist/lib/core/Queue/index.js.map +1 -0
  45. package/dist/lib/core/Queue/types.d.ts +40 -0
  46. package/dist/lib/core/Queue/types.js +3 -0
  47. package/dist/lib/core/Queue/types.js.map +1 -0
  48. package/dist/lib/core/Queue/worker.d.ts +103 -0
  49. package/dist/lib/core/{Queue.js → Queue/worker.js} +251 -310
  50. package/dist/lib/core/Queue/worker.js.map +1 -0
  51. package/dist/lib/core/Repository.d.ts +40 -20
  52. package/dist/lib/core/Repository.js +35 -14
  53. package/dist/lib/core/Repository.js.map +1 -1
  54. package/dist/lib/core/UtilityTypes.d.ts +7 -3
  55. package/dist/lib/core/UtilityTypes.js.map +1 -1
  56. package/dist/lib/types/decorator/index.d.ts +3 -0
  57. package/dist/lib/types/index.d.ts +17 -16
  58. package/dist/lib/types/repository/index.d.ts +3 -3
  59. package/dist/lib/utils/index.d.ts +10 -5
  60. package/dist/lib/utils/index.js +42 -9
  61. package/dist/lib/utils/index.js.map +1 -1
  62. package/package.json +3 -5
  63. package/dist/lib/core/Queue.js.map +0 -1
@@ -108,6 +108,12 @@ class PoolConnection {
108
108
  case "mariadb": {
109
109
  return new MariadbDriver_1.MariadbDriver(options).disconnect(this.POOL);
110
110
  }
111
+ case "mongodb": {
112
+ return new MongodbDriver_1.MongodblDriver(options).disconnect(this.POOL);
113
+ }
114
+ case "sqlite": {
115
+ return new SqliteDriver_1.SqliteDriver(options).disconnect(this.POOL);
116
+ }
111
117
  default:
112
118
  throw new Error("No default driver specified");
113
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Pool.js","sourceRoot":"","sources":["../../../src/lib/core/Pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Pool.js","sourceRoot":"","sources":["../../../src/lib/core/Pool.ts"],"names":[],"mappings":"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"}
@@ -1,110 +1,42 @@
1
- import type { T } from "./UtilityTypes";
2
- import { Blueprint } from "./Blueprint";
3
- import { Model } from "./Model";
1
+ import { T } from "..";
2
+ import { Worker } from "./worker";
3
+ import type { EventJobName, EventName, Handler, JobName, JobStatus, QueueAddOptions, QueueProcessOptions } from "./types";
4
+ /**
5
+ * Represents a job managed by the queue.
6
+ *
7
+ * @template T The type of the job payload.
8
+ */
4
9
  export type Job<T = any> = {
10
+ /** Unique identifier of the job. */
5
11
  id: number;
12
+ /** Name of the job. */
6
13
  name: string;
7
- status: 'pending' | 'active' | 'completed' | 'failed';
14
+ /** Current status of the job. */
15
+ status: JobStatus;
16
+ /** Data associated with the job. */
8
17
  payload: T;
9
18
  };
10
- type Handler = (job: Job) => any | Promise<any>;
11
- type QueueAddOptions = {
12
- delayMs?: number;
13
- priority?: number;
14
- metadata?: Record<string, any>;
15
- maxAttempts?: number;
16
- };
17
- type QueueProcessOptions = {
18
- interval?: number;
19
- concurrency?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 15 | 20 | 25 | 30;
20
- };
21
- declare const schema: {
22
- id: Blueprint<number>;
23
- uuid: Blueprint<string | null>;
24
- name: Blueprint<string>;
25
- status: Blueprint<"pending" | "active" | "completed" | "failed" | null>;
26
- priority: Blueprint<T.Default<number>>;
27
- payload: Blueprint<string | null>;
28
- result: Blueprint<string | null>;
29
- error: Blueprint<string | null>;
30
- metadata: Blueprint<string | null>;
31
- attempts: Blueprint<T.Default<number>>;
32
- max_attempts: Blueprint<T.Default<number>>;
33
- delay_ms: Blueprint<T.Default<number>>;
34
- locked_by: Blueprint<string | null>;
35
- locked_at: Blueprint<string | Date | null>;
36
- available_at: Blueprint<NonNullable<string | Date>>;
37
- completed_at: Blueprint<string | Date | null>;
38
- created_at: Blueprint<string | Date | null>;
39
- updated_at: Blueprint<string | Date | null>;
40
- };
41
- type TS = T.Schema<typeof schema>;
42
- declare class Worker extends Model<TS> {
43
- private HOSTNAME;
44
- private INSPECT_EXEC;
45
- private STOPPING;
46
- private IS_FLUSHING;
47
- private LIMIT_CONNECTIONS;
48
- private MAX_IDLE_RETRIES;
49
- private ACTIVE_JOBS;
50
- private BATCH_SIZE;
51
- private MAX_WAIT_MS;
52
- private BUFFER;
53
- private WORKER_STATE;
54
- protected boot(): void;
55
- initialize(opts?: {
56
- inspect?: boolean;
57
- flush?: boolean;
58
- hostname?: string;
59
- maxIdleRetries?: number;
60
- limitConnections?: number;
61
- }): Promise<this>;
62
- shutdown(): Promise<void>;
63
- flush(): Promise<void>;
64
- getJobOverallStats(name?: string): Promise<{
65
- total: number;
66
- completed: number;
67
- active: number;
68
- pending: number;
69
- failed: number;
70
- }>;
71
- getJobStats(name?: string): Promise<{
72
- name: string;
73
- completed: number;
74
- active: number;
75
- pending: number;
76
- failed: number;
77
- }[]>;
78
- getJobs(name?: string): Promise<{
79
- [x: string]: unknown;
80
- id: number;
81
- uuid: string | null;
82
- name: string;
83
- status: "pending" | "active" | "completed" | "failed";
84
- priority: import("../types").TDefault<number>;
85
- payload: string | null;
86
- result: string | null;
87
- error: string | null;
88
- metadata: string | null;
89
- attempts: import("../types").TDefault<number>;
90
- max_attempts: import("../types").TDefault<number>;
91
- delay_ms: import("../types").TDefault<number>;
92
- locked_by: string | null;
93
- locked_at: string | Date | null;
94
- available_at: NonNullable<string | Date>;
95
- completed_at: string | Date | null;
96
- created_at: string | Date | null;
97
- updated_at: string | Date | null;
98
- }[]>;
99
- getNames(): Promise<any[]>;
100
- add(name: string, payload: any, opts?: QueueAddOptions): Promise<void>;
101
- process(name: string, handler: Handler, opts?: QueueProcessOptions): Promise<void>;
102
- private _runJob;
103
- private _dequeueMany;
104
- private _flushBuffer;
105
- private _wakeWorker;
106
- private safeJsonParse;
107
- private safeJsonStringify;
19
+ /**
20
+ * Defines the type contract for queue events and jobs.
21
+ *
22
+ * This interface is intentionally empty and can be extended
23
+ * using TypeScript module augmentation to provide type-safe
24
+ * event and job names.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * declare module 'tspace-mysql' {
29
+ * interface QueueContract {
30
+ * events: {
31
+ * 'user.created': ['send-email', 'send-push'];
32
+ * };
33
+ *
34
+ * jobs: ['send-email', 'send-push'];
35
+ * }
36
+ * }
37
+ * ```
38
+ */
39
+ export interface QueueContract {
108
40
  }
109
41
  /**
110
42
  * Queue facade class (static API wrapper)
@@ -138,11 +70,13 @@ declare class Queue {
138
70
  /**
139
71
  * The 'start' method is used to initialize the Queue system.
140
72
  * Creates and prepares the underlying Worker instance.
73
+ *
141
74
  * @param {Object} [opts] - options (inspect, flush)
142
- * @property {boolean} opts.inspect queue work flow
143
- * @property {boolean} opts.flush remove all queue
144
- * @property {number} opts.maxIdleRetries - Maximum idle time () when no jobs are available
145
- * @property {number} opts.limitConnections - Allowed DB connections limit before pausing
75
+ * @property {boolean?} opts.inspect queue work flow
76
+ * @property {boolean?} opts.flush remove all queue
77
+ * @property {number?} opts.maxIdleRetries - Maximum idle time () when no jobs are available
78
+ * @property {boolean} [opts.poll.enabled] - Enable or disable worker job polling.
79
+ * @property {number} [opts.poll.timeout] - Polling interval in milliseconds.
146
80
  * @returns {Promise<void>}
147
81
  */
148
82
  static start(opts?: {
@@ -150,7 +84,10 @@ declare class Queue {
150
84
  flush?: boolean;
151
85
  hostname?: string;
152
86
  maxIdleRetries?: number;
153
- limitConnections?: 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | 150 | 200;
87
+ poll?: {
88
+ enabled?: boolean;
89
+ interval?: number;
90
+ };
154
91
  }): Promise<void>;
155
92
  /**
156
93
  * The 'end' method is used to shutdown the Queue system.
@@ -231,7 +168,7 @@ declare class Queue {
231
168
  * return await helloWorld(job)
232
169
  * }, { concurrency : 3 });
233
170
  */
234
- static process(name: string, handler: Handler, opts?: QueueProcessOptions): Promise<void>;
171
+ static process(name: JobName, handler: Handler, opts?: QueueProcessOptions): Promise<void>;
235
172
  /**
236
173
  * Start a worker for processing jobs of a specific name.
237
174
  *
@@ -248,12 +185,12 @@ declare class Queue {
248
185
  * return await helloWorld(job)
249
186
  * }, { concurrency : 3 });
250
187
  */
251
- static on(name: string, handler: Handler, opts?: QueueProcessOptions): Promise<void>;
188
+ static on(name: JobName, handler: Handler, opts?: QueueProcessOptions): Promise<void>;
252
189
  /**
253
190
  * Add a new job into the queue.
254
191
  *
255
192
  * @param {string} name - Queue name / job type.
256
- * @param {any} payload - Job payload data.
193
+ * @param {any} payload - Job payload data, send to process
257
194
  * @param {QueueAddOptions} [opts] - Job options (delay, priority, retry, etc.)
258
195
  * @throws {Error} If Queue is not initialized.
259
196
  * @returns {Promise<T.Result<Worker>>}
@@ -261,9 +198,76 @@ declare class Queue {
261
198
  * @example
262
199
  * ```ts
263
200
  * Queue.add("send-email", { email: "test@gmail.com" });
201
+ * Queue.add("send-email", { email: "test2@gmail.com" }, {
202
+ * metadata : 'first priority',
203
+ * priority : 9999
204
+ * delayMs : 100
205
+ * maxAttempts : 1
206
+ * });
264
207
  * ```
265
208
  */
266
- static add(name: string, payload: any, opts?: QueueAddOptions): Promise<void>;
209
+ static add(name: JobName, payload: any, opts?: QueueAddOptions): Promise<void>;
210
+ /**
211
+ * Publishes an event to all registered subscribers.
212
+ *
213
+ * Each subscriber receives the event payload as an individual job.
214
+ *
215
+ * @param event - The event name to publish.
216
+ * @param payload - The data associated with the event.
217
+ * @param {QueueAddOptions} [opts] - Job options (delay, priority, retry, etc.)
218
+ * @throws {Error} If the queue worker has not been initialized.
219
+ *
220
+ * @example
221
+ * ```ts
222
+ * Queue.publish('user.created', {
223
+ * userId: 123,
224
+ * email: 'user@example.com',
225
+ * });
226
+ *
227
+ * Queue.publish('user.created', {
228
+ * userId: 123,
229
+ * email: 'user@example.com',
230
+ * }, {
231
+ * metadata : 'first priority',
232
+ * priority : 9999
233
+ * delayMs : 100
234
+ * maxAttempts : 1
235
+ * });
236
+ * ```
237
+ */
238
+ static publish<E extends EventName>(event: E, payload: any, opts?: QueueAddOptions): Promise<void>;
239
+ /**
240
+ * Subscribes a handler to an event.
241
+ *
242
+ * The subscriber name is combined with the event name to create
243
+ * a unique job name in the format `{event}.{name}`.
244
+ *
245
+ * @param event - The event name to subscribe to.
246
+ * @param name - The unique name of the subscriber.
247
+ * @param handler - The function executed when the event is received.
248
+ * @param opts - Options controlling job processing behavior.
249
+ *
250
+ * @throws {Error} If the queue worker has not been initialized.
251
+ *
252
+ * @example
253
+ * ```ts
254
+ * await Queue.subscribe(
255
+ * 'user.created',
256
+ * 'email',
257
+ * async (job) => {
258
+ * await sendEmail(job.payload);
259
+ * },
260
+ * {
261
+ * concurrency: 5,
262
+ * }
263
+ * );
264
+ * ```
265
+ *
266
+ * @remarks
267
+ * A subscription to `user.created` with the name `email`
268
+ * creates the job queue `user.created.email`.
269
+ */
270
+ static subscribe<E extends EventName>(event: E, name: EventJobName<E>, handler: Handler, opts?: QueueProcessOptions): Promise<void>;
267
271
  }
268
272
  export { Queue };
269
273
  export default Queue;
@@ -0,0 +1,283 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Queue = void 0;
4
+ const worker_1 = require("./worker");
5
+ /**
6
+ * Queue facade class (static API wrapper)
7
+ *
8
+ * This class provides a singleton-style interface over the underlying Worker instance.
9
+ * It must be initialized before use via `Queue.start()`.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * const sendEmail = (job) => console.log('send mail :' + job.payload.email)
14
+ *
15
+ * await Queue.start({ inspect : true, flush : true // **remove all jobs });
16
+ *
17
+ * // register
18
+ * Queue.progress("send-email", async (job) => {
19
+ * return await sendEmail(job);
20
+ * }, { concurrency : 3 });
21
+ *
22
+ * // add
23
+ * Queue.add("send-email", { email: "test@gmail.com" });
24
+ *
25
+ * ```
26
+ */
27
+ class Queue {
28
+ /**
29
+ * Internal Worker instance used for all queue operations.
30
+ * @type {Worker | null}
31
+ */
32
+ static WORKER;
33
+ static MESSAGE = {
34
+ INIT_ERROR: `Queue is not initialized. Please call 'await Queue.start()' before using it.`
35
+ };
36
+ /**
37
+ * The 'start' method is used to initialize the Queue system.
38
+ * Creates and prepares the underlying Worker instance.
39
+ *
40
+ * @param {Object} [opts] - options (inspect, flush)
41
+ * @property {boolean?} opts.inspect queue work flow
42
+ * @property {boolean?} opts.flush remove all queue
43
+ * @property {number?} opts.maxIdleRetries - Maximum idle time () when no jobs are available
44
+ * @property {boolean} [opts.poll.enabled] - Enable or disable worker job polling.
45
+ * @property {number} [opts.poll.timeout] - Polling interval in milliseconds.
46
+ * @returns {Promise<void>}
47
+ */
48
+ static async start(opts = {}) {
49
+ this.WORKER = await new worker_1.Worker().initialize(opts);
50
+ return;
51
+ }
52
+ /**
53
+ * The 'end' method is used to shutdown the Queue system.
54
+ *
55
+ * @returns {Promise<void>}
56
+ */
57
+ static async end() {
58
+ if (this.WORKER == null) {
59
+ throw new Error(this.MESSAGE.INIT_ERROR);
60
+ }
61
+ await this.WORKER.shutdown();
62
+ this.WORKER = null;
63
+ return;
64
+ }
65
+ /**
66
+ * The 'flush' method is used to flush all jobs in the queue (dangerous operation).
67
+ *
68
+ * @throws {Error} If Queue is not initialized.
69
+ * @returns {Promise<void>}
70
+ */
71
+ static async flush() {
72
+ if (this.WORKER == null) {
73
+ throw new Error(this.MESSAGE.INIT_ERROR);
74
+ }
75
+ await this.WORKER.flush();
76
+ }
77
+ /**
78
+ * The 'getJobOverallStats' method is used to get aggregated queue statistics.
79
+ *
80
+ * @param {string} [name] - Optional queue name filter.
81
+ * @throws {Error} If Queue is not initialized.
82
+ * @returns {Promise<any>}
83
+ */
84
+ static async getJobOverallStats(name) {
85
+ if (this.WORKER == null) {
86
+ throw new Error(this.MESSAGE.INIT_ERROR);
87
+ }
88
+ return await this.WORKER.getJobOverallStats(name);
89
+ }
90
+ /**
91
+ * The 'getJobStats' method is used to Get jobs statistics grouped by name.
92
+ *
93
+ * @param {string} [name] - Optional queue name filter.
94
+ * @throws {Error} If Queue is not initialized.
95
+ * @returns {Promise<any>}
96
+ */
97
+ static async getJobStats(name) {
98
+ if (this.WORKER == null) {
99
+ throw new Error(this.MESSAGE.INIT_ERROR);
100
+ }
101
+ return await this.WORKER.getJobStats(name);
102
+ }
103
+ /**
104
+ * The 'getJobs' method is used to Get jobs.
105
+ *
106
+ * @param {string} [name] - Optional queue name filter.
107
+ * @throws {Error} If Queue is not initialized.
108
+ * @returns {Promise<T.Result<Worker>[]>}
109
+ */
110
+ static async getJobs(name) {
111
+ if (this.WORKER == null) {
112
+ throw new Error(this.MESSAGE.INIT_ERROR);
113
+ }
114
+ return await this.WORKER.getJobs(name);
115
+ }
116
+ /**
117
+ * Get all unique queue names.
118
+ *
119
+ * @throws {Error} If Queue is not initialized.
120
+ * @returns {Promise<string[]>}
121
+ */
122
+ static async getNames() {
123
+ if (this.WORKER == null) {
124
+ throw new Error(this.MESSAGE.INIT_ERROR);
125
+ }
126
+ return await this.WORKER.getNames();
127
+ }
128
+ /**
129
+ * Access raw Worker instance safely.
130
+ *
131
+ * @param {(worker: Worker) => any} cb - Callback with Worker instance.
132
+ * @throws {Error} If Queue is not initialized.
133
+ * @returns {Promise<Work>}
134
+ */
135
+ static async worker(cb) {
136
+ if (this.WORKER == null) {
137
+ throw new Error(this.MESSAGE.INIT_ERROR);
138
+ }
139
+ return await cb(this.WORKER);
140
+ }
141
+ /**
142
+ * Start a worker for processing jobs of a specific name.
143
+ *
144
+ * @param {string} name - Queue name to process.
145
+ * @param {Handler} handler - Job handler function.
146
+ * @param {QueueProcessOptions} [opts] - Job options (interval, concurrency)
147
+ * @throws {Error} If Queue is not initialized.
148
+ * @returns {Promise<void>}
149
+ *
150
+ * @example
151
+ * const helloWorld = (job) => console.log('hello world :' + job.id);
152
+ *
153
+ * Queue.progress("hello", async (job) => {
154
+ * return await helloWorld(job)
155
+ * }, { concurrency : 3 });
156
+ */
157
+ static async process(name, handler, opts = { interval: 1_000, concurrency: 1 }) {
158
+ if (this.WORKER == null) {
159
+ throw new Error(this.MESSAGE.INIT_ERROR);
160
+ }
161
+ return await this.WORKER.process(name, handler, opts);
162
+ }
163
+ /**
164
+ * Start a worker for processing jobs of a specific name.
165
+ *
166
+ * @param {string} name - Queue name to process.
167
+ * @param {Handler} handler - Job handler function.
168
+ * @param {QueueProcessOptions} [opts] - Job options (interval, concurrency)
169
+ * @throws {Error} If Queue is not initialized.
170
+ * @returns {Promise<void>}
171
+ *
172
+ * @example
173
+ * const helloWorld = (job) => console.log('hello world :' + job.id);
174
+ *
175
+ * Queue.on("hello", async (job) => {
176
+ * return await helloWorld(job)
177
+ * }, { concurrency : 3 });
178
+ */
179
+ static async on(name, handler, opts = { interval: 1_000, concurrency: 1 }) {
180
+ return await this.process(name, handler, opts);
181
+ }
182
+ /**
183
+ * Add a new job into the queue.
184
+ *
185
+ * @param {string} name - Queue name / job type.
186
+ * @param {any} payload - Job payload data, send to process
187
+ * @param {QueueAddOptions} [opts] - Job options (delay, priority, retry, etc.)
188
+ * @throws {Error} If Queue is not initialized.
189
+ * @returns {Promise<T.Result<Worker>>}
190
+ *
191
+ * @example
192
+ * ```ts
193
+ * Queue.add("send-email", { email: "test@gmail.com" });
194
+ * Queue.add("send-email", { email: "test2@gmail.com" }, {
195
+ * metadata : 'first priority',
196
+ * priority : 9999
197
+ * delayMs : 100
198
+ * maxAttempts : 1
199
+ * });
200
+ * ```
201
+ */
202
+ static async add(name, payload, opts = {}) {
203
+ if (this.WORKER == null) {
204
+ throw new Error(this.MESSAGE.INIT_ERROR);
205
+ }
206
+ await this.WORKER.add(name, payload, opts);
207
+ return;
208
+ }
209
+ /**
210
+ * Publishes an event to all registered subscribers.
211
+ *
212
+ * Each subscriber receives the event payload as an individual job.
213
+ *
214
+ * @param event - The event name to publish.
215
+ * @param payload - The data associated with the event.
216
+ * @param {QueueAddOptions} [opts] - Job options (delay, priority, retry, etc.)
217
+ * @throws {Error} If the queue worker has not been initialized.
218
+ *
219
+ * @example
220
+ * ```ts
221
+ * Queue.publish('user.created', {
222
+ * userId: 123,
223
+ * email: 'user@example.com',
224
+ * });
225
+ *
226
+ * Queue.publish('user.created', {
227
+ * userId: 123,
228
+ * email: 'user@example.com',
229
+ * }, {
230
+ * metadata : 'first priority',
231
+ * priority : 9999
232
+ * delayMs : 100
233
+ * maxAttempts : 1
234
+ * });
235
+ * ```
236
+ */
237
+ static async publish(event, payload, opts = {}) {
238
+ if (this.WORKER == null) {
239
+ throw new Error(this.MESSAGE.INIT_ERROR);
240
+ }
241
+ return await this.WORKER.publish(event, payload, opts);
242
+ }
243
+ /**
244
+ * Subscribes a handler to an event.
245
+ *
246
+ * The subscriber name is combined with the event name to create
247
+ * a unique job name in the format `{event}.{name}`.
248
+ *
249
+ * @param event - The event name to subscribe to.
250
+ * @param name - The unique name of the subscriber.
251
+ * @param handler - The function executed when the event is received.
252
+ * @param opts - Options controlling job processing behavior.
253
+ *
254
+ * @throws {Error} If the queue worker has not been initialized.
255
+ *
256
+ * @example
257
+ * ```ts
258
+ * await Queue.subscribe(
259
+ * 'user.created',
260
+ * 'email',
261
+ * async (job) => {
262
+ * await sendEmail(job.payload);
263
+ * },
264
+ * {
265
+ * concurrency: 5,
266
+ * }
267
+ * );
268
+ * ```
269
+ *
270
+ * @remarks
271
+ * A subscription to `user.created` with the name `email`
272
+ * creates the job queue `user.created.email`.
273
+ */
274
+ static async subscribe(event, name, handler, opts = { interval: 1_000, concurrency: 1 }) {
275
+ if (this.WORKER == null) {
276
+ throw new Error(this.MESSAGE.INIT_ERROR);
277
+ }
278
+ return await this.WORKER.subscribe(event, name, handler, opts);
279
+ }
280
+ }
281
+ exports.Queue = Queue;
282
+ exports.default = Queue;
283
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/core/Queue/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { Worker } from "./worker";
2
+ import type { T } from "..";
3
+ import type { Job, QueueContract } from ".";
4
+ export type JobInternal = Job & {
5
+ __job: T.Result<Worker>;
6
+ };
7
+ export type Handler = (job: Job) => any | Promise<any>;
8
+ export type State = {
9
+ handler: Handler;
10
+ idle: number;
11
+ sleeping: boolean;
12
+ running: number;
13
+ opts: Required<QueueProcessOptions>;
14
+ };
15
+ export type QueueAddOptions = {
16
+ delayMs?: number;
17
+ priority?: number;
18
+ metadata?: Record<string, any>;
19
+ maxAttempts?: number;
20
+ };
21
+ export type QueueProcessOptions = {
22
+ interval?: number;
23
+ concurrency?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 15 | 20 | 25 | 30;
24
+ };
25
+ export type BufferedJob = {
26
+ jobData: T.Result<Worker>;
27
+ resolve: (value: any) => void;
28
+ reject: (reason?: any) => void;
29
+ };
30
+ export type JobStatus = 'pending' | 'active' | 'completed' | 'failed';
31
+ type QueueEvents = QueueContract extends {
32
+ events: infer E;
33
+ } ? E : never;
34
+ type QueueJobs = QueueContract extends {
35
+ jobs: infer J;
36
+ } ? J : never;
37
+ export type EventName = QueueEvents extends Record<string, readonly string[]> ? keyof QueueEvents & string : string;
38
+ export type EventJobName<E extends EventName> = QueueEvents extends Record<string, readonly string[]> ? E extends keyof QueueEvents ? QueueEvents[E][number] extends never ? string : QueueEvents[E][number] : string : string;
39
+ export type JobName = QueueJobs extends readonly string[] ? QueueJobs[number] extends never ? string : QueueJobs[number] : string;
40
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/lib/core/Queue/types.ts"],"names":[],"mappings":""}