tspace-mysql 1.9.0 → 1.9.1
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 +4357 -133
- package/dist/lib/config/index.d.ts +2 -2
- package/dist/lib/config/index.js +24 -16
- package/dist/lib/config/index.js.map +1 -1
- package/dist/lib/constants/index.d.ts +10 -1
- package/dist/lib/constants/index.js +11 -2
- package/dist/lib/constants/index.js.map +1 -1
- package/dist/lib/core/Abstracts/AbstractBuilder.d.ts +11 -7
- package/dist/lib/core/Abstracts/AbstractBuilder.js +11 -13
- package/dist/lib/core/Abstracts/AbstractBuilder.js.map +1 -1
- package/dist/lib/core/Abstracts/AbstractDB.d.ts +4 -1
- package/dist/lib/core/Abstracts/AbstractDB.js.map +1 -1
- package/dist/lib/core/Abstracts/AbstractView.js.map +1 -1
- package/dist/lib/core/Blueprint.d.ts +30 -10
- package/dist/lib/core/Blueprint.js +39 -14
- package/dist/lib/core/Blueprint.js.map +1 -1
- package/dist/lib/core/Builder.d.ts +263 -9
- package/dist/lib/core/Builder.js +610 -347
- package/dist/lib/core/Builder.js.map +1 -1
- package/dist/lib/core/Cache/DBCache.js +19 -20
- package/dist/lib/core/Cache/DBCache.js.map +1 -1
- package/dist/lib/core/Cache/MemoryCache.js +3 -3
- package/dist/lib/core/Cache/MemoryCache.js.map +1 -1
- package/dist/lib/core/Cache/RedisCache.js +27 -17
- package/dist/lib/core/Cache/RedisCache.js.map +1 -1
- package/dist/lib/core/Cache/index.js +5 -4
- package/dist/lib/core/Cache/index.js.map +1 -1
- package/dist/lib/core/Contracts/AlterTable.d.ts +152 -0
- package/dist/lib/core/Contracts/AlterTable.js +243 -0
- package/dist/lib/core/Contracts/AlterTable.js.map +1 -0
- package/dist/lib/core/Contracts/Audit.js +2 -5
- package/dist/lib/core/Contracts/Audit.js.map +1 -1
- package/dist/lib/core/DB.d.ts +101 -9
- package/dist/lib/core/DB.js +168 -29
- package/dist/lib/core/DB.js.map +1 -1
- package/dist/lib/core/Decorator.d.ts +144 -16
- package/dist/lib/core/Decorator.js +156 -14
- package/dist/lib/core/Decorator.js.map +1 -1
- package/dist/lib/core/Driver/index.d.ts +43 -9
- package/dist/lib/core/Driver/index.js +9 -7
- package/dist/lib/core/Driver/index.js.map +1 -1
- package/dist/lib/core/Driver/mariadb/MariadbDriver.js +74 -27
- package/dist/lib/core/Driver/mariadb/MariadbDriver.js.map +1 -1
- package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.d.ts +45 -9
- package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.js +165 -21
- package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.js.map +1 -1
- package/dist/lib/core/Driver/mongodb/MongodbDriver.d.ts +24 -0
- package/dist/lib/core/Driver/mongodb/MongodbDriver.js +255 -0
- package/dist/lib/core/Driver/mongodb/MongodbDriver.js.map +1 -0
- package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.d.ts +141 -0
- package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.js +563 -0
- package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.js.map +1 -0
- package/dist/lib/core/Driver/mysql/MysqlDriver.js +105 -95
- package/dist/lib/core/Driver/mysql/MysqlDriver.js.map +1 -1
- package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.d.ts +45 -9
- package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.js +165 -21
- package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.js.map +1 -1
- package/dist/lib/core/Driver/postgres/PostgresDriver.js +97 -72
- package/dist/lib/core/Driver/postgres/PostgresDriver.js.map +1 -1
- package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.d.ts +50 -9
- package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.js +296 -41
- package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.js.map +1 -1
- package/dist/lib/core/Driver/sqlite/SqliteDriver.d.ts +20 -0
- package/dist/lib/core/Driver/sqlite/SqliteDriver.js +192 -0
- package/dist/lib/core/Driver/sqlite/SqliteDriver.js.map +1 -0
- package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.d.ts +144 -0
- package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.js +689 -0
- package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.js.map +1 -0
- package/dist/lib/core/JoinModel.js +2 -2
- package/dist/lib/core/JoinModel.js.map +1 -1
- package/dist/lib/core/Meta.d.ts +17 -11
- package/dist/lib/core/Meta.js +25 -19
- package/dist/lib/core/Meta.js.map +1 -1
- package/dist/lib/core/Model.d.ts +450 -108
- package/dist/lib/core/Model.js +1031 -587
- package/dist/lib/core/Model.js.map +1 -1
- package/dist/lib/{tools/index.d.ts → core/Package.d.ts} +11 -3
- package/dist/lib/{tools/index.js → core/Package.js} +20 -7
- package/dist/lib/core/Package.js.map +1 -0
- package/dist/lib/core/Pool.js +42 -30
- package/dist/lib/core/Pool.js.map +1 -1
- package/dist/lib/core/Queue.d.ts +240 -0
- package/dist/lib/core/Queue.js +686 -0
- package/dist/lib/core/Queue.js.map +1 -0
- package/dist/lib/core/RelationManager.js +27 -25
- package/dist/lib/core/RelationManager.js.map +1 -1
- package/dist/lib/core/Repository.d.ts +73 -207
- package/dist/lib/core/Repository.js +120 -235
- package/dist/lib/core/Repository.js.map +1 -1
- package/dist/lib/core/Schema.d.ts +218 -0
- package/dist/lib/core/Schema.js +370 -65
- package/dist/lib/core/Schema.js.map +1 -1
- package/dist/lib/core/StateManager.d.ts +25 -12
- package/dist/lib/core/StateManager.js +10 -5
- package/dist/lib/core/StateManager.js.map +1 -1
- package/dist/lib/core/UtilityTypes.d.ts +85 -56
- package/dist/lib/core/UtilityTypes.js.map +1 -1
- package/dist/lib/core/index.d.ts +4 -0
- package/dist/lib/core/index.js +6 -2
- package/dist/lib/core/index.js.map +1 -1
- package/dist/lib/types/decorator/index.d.ts +1 -1
- package/dist/lib/types/index.d.ts +69 -22
- package/dist/lib/types/repository/index.d.ts +68 -37
- package/dist/lib/utils/index.d.ts +11 -1
- package/dist/lib/utils/index.js +58 -2
- package/dist/lib/utils/index.js.map +1 -1
- package/package.json +14 -6
- package/dist/lib/tools/index.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
declare class
|
|
1
|
+
declare class Package {
|
|
2
2
|
static import(name: string): any;
|
|
3
3
|
static get fs(): {
|
|
4
4
|
existsSync: (v: string) => any;
|
|
@@ -15,6 +15,14 @@ declare class Tool {
|
|
|
15
15
|
static get dotenv(): {
|
|
16
16
|
config: (options?: Record<string, any>) => any;
|
|
17
17
|
};
|
|
18
|
+
static get redis(): {
|
|
19
|
+
createClient: ({ url, socket }: {
|
|
20
|
+
url: string;
|
|
21
|
+
socket?: {
|
|
22
|
+
reconnectStrategy: () => boolean;
|
|
23
|
+
};
|
|
24
|
+
}) => any;
|
|
25
|
+
};
|
|
18
26
|
}
|
|
19
|
-
export {
|
|
20
|
-
export default
|
|
27
|
+
export { Package };
|
|
28
|
+
export default Package;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
class
|
|
3
|
+
exports.Package = void 0;
|
|
4
|
+
class Package {
|
|
5
5
|
static import(name) {
|
|
6
6
|
try {
|
|
7
7
|
return require(name);
|
|
8
8
|
}
|
|
9
9
|
catch (err) {
|
|
10
|
-
throw new Error(`The package '${name}'
|
|
10
|
+
throw new Error(`The package '${name}' caused by '${err.message}'. Please try installing the package using : npm install ${name} --save`);
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
static get fs() {
|
|
@@ -48,10 +48,23 @@ class Tool {
|
|
|
48
48
|
};
|
|
49
49
|
}
|
|
50
50
|
catch (err) {
|
|
51
|
-
throw new Error(`The package 'dotenv'
|
|
51
|
+
throw new Error(`The package 'dotenv' caused by '${err.message}'. Please try installing the package using : npm install dotenv --save`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
static get redis() {
|
|
55
|
+
try {
|
|
56
|
+
const redis = require('redis'); // redis@5.6.0+
|
|
57
|
+
return {
|
|
58
|
+
createClient: ({ url, socket }) => {
|
|
59
|
+
return redis.createClient({ url, socket });
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
throw new Error(`The package 'redis' caused by '${err.message}'. Please try installing the package using : npm install redis@5.6.0 --save`);
|
|
52
65
|
}
|
|
53
66
|
}
|
|
54
67
|
}
|
|
55
|
-
exports.
|
|
56
|
-
exports.default =
|
|
57
|
-
//# sourceMappingURL=
|
|
68
|
+
exports.Package = Package;
|
|
69
|
+
exports.default = Package;
|
|
70
|
+
//# sourceMappingURL=Package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Package.js","sourceRoot":"","sources":["../../../src/lib/core/Package.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/core/Pool.js
CHANGED
|
@@ -34,10 +34,12 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.Pool = exports.loadOptionsEnv = exports.PoolConnection = void 0;
|
|
37
|
-
const
|
|
37
|
+
const Package_1 = require("../core/Package");
|
|
38
38
|
const MysqlDriver_1 = require("./Driver/mysql/MysqlDriver");
|
|
39
39
|
const PostgresDriver_1 = require("./Driver/postgres/PostgresDriver");
|
|
40
40
|
const MariadbDriver_1 = require("./Driver/mariadb/MariadbDriver");
|
|
41
|
+
const MongodbDriver_1 = require("./Driver/mongodb/MongodbDriver");
|
|
42
|
+
const SqliteDriver_1 = require("./Driver/sqlite/SqliteDriver");
|
|
41
43
|
const config_1 = __importStar(require("../config"));
|
|
42
44
|
Object.defineProperty(exports, "loadOptionsEnv", { enumerable: true, get: function () { return config_1.loadOptionsEnv; } });
|
|
43
45
|
class PoolConnection {
|
|
@@ -75,10 +77,18 @@ class PoolConnection {
|
|
|
75
77
|
this.POOL = new PostgresDriver_1.PostgresDriver(options).connect();
|
|
76
78
|
break;
|
|
77
79
|
}
|
|
78
|
-
case
|
|
80
|
+
case "mariadb": {
|
|
79
81
|
this.POOL = new MariadbDriver_1.MariadbDriver(options).connect();
|
|
80
82
|
break;
|
|
81
83
|
}
|
|
84
|
+
case "mongodb": {
|
|
85
|
+
this.POOL = new MongodbDriver_1.MongodblDriver(options).connect();
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
case "sqlite": {
|
|
89
|
+
this.POOL = new SqliteDriver_1.SqliteDriver(options).connect();
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
82
92
|
default:
|
|
83
93
|
throw new Error("No default driver specified");
|
|
84
94
|
}
|
|
@@ -91,11 +101,11 @@ class PoolConnection {
|
|
|
91
101
|
case "mysql2": {
|
|
92
102
|
return new MysqlDriver_1.MysqlDriver(options).disconnect(this.POOL);
|
|
93
103
|
}
|
|
94
|
-
case
|
|
95
|
-
case
|
|
104
|
+
case "pg":
|
|
105
|
+
case "postgres": {
|
|
96
106
|
return new PostgresDriver_1.PostgresDriver(options).disconnect(this.POOL);
|
|
97
107
|
}
|
|
98
|
-
case
|
|
108
|
+
case "mariadb": {
|
|
99
109
|
return new MariadbDriver_1.MariadbDriver(options).disconnect(this.POOL);
|
|
100
110
|
}
|
|
101
111
|
default:
|
|
@@ -107,17 +117,19 @@ class PoolConnection {
|
|
|
107
117
|
return this.CLUSTER;
|
|
108
118
|
}
|
|
109
119
|
const options = Object.fromEntries(this.OPTIONS);
|
|
110
|
-
const parseList = (value) => String(value)
|
|
120
|
+
const parseList = (value) => String(value)
|
|
121
|
+
.split(",")
|
|
122
|
+
.map((v) => v.trim());
|
|
111
123
|
const getValue = (arr, index) => arr[index] != null ? arr[index] : arr[arr.length - 1];
|
|
112
124
|
const hostList = parseList(options.host);
|
|
113
125
|
const hosts = [];
|
|
114
126
|
const types = [];
|
|
115
127
|
hostList.forEach((h, i) => {
|
|
116
|
-
let type = i === 0 ?
|
|
128
|
+
let type = i === 0 ? "master" : "slave";
|
|
117
129
|
let host = h;
|
|
118
|
-
if (h.includes(
|
|
119
|
-
const [_t, _h] = h.split(
|
|
120
|
-
type = _t ===
|
|
130
|
+
if (h.includes("@")) {
|
|
131
|
+
const [_t, _h] = h.split("@");
|
|
132
|
+
type = _t === "master" ? "master" : "slave";
|
|
121
133
|
host = _h;
|
|
122
134
|
}
|
|
123
135
|
hosts.push(host);
|
|
@@ -125,70 +137,70 @@ class PoolConnection {
|
|
|
125
137
|
});
|
|
126
138
|
const usernames = parseList(options.user);
|
|
127
139
|
const passwords = parseList(options.password);
|
|
128
|
-
const ports = parseList(options.port).map(v => +v);
|
|
140
|
+
const ports = parseList(options.port).map((v) => +v);
|
|
129
141
|
const writerOptions = hosts
|
|
130
142
|
.map((host, i) => {
|
|
131
|
-
if (types[i] !==
|
|
143
|
+
if (types[i] !== "master")
|
|
132
144
|
return null;
|
|
133
145
|
return {
|
|
134
146
|
host,
|
|
135
147
|
port: getValue(ports, i),
|
|
136
148
|
username: getValue(usernames, i),
|
|
137
|
-
password: getValue(passwords, i)
|
|
149
|
+
password: getValue(passwords, i),
|
|
138
150
|
};
|
|
139
151
|
})
|
|
140
152
|
.filter(Boolean);
|
|
141
153
|
const writers = writerOptions.map((opt, i) => {
|
|
142
154
|
return {
|
|
143
155
|
pool: {
|
|
144
|
-
type:
|
|
156
|
+
type: "master",
|
|
145
157
|
node: +i + 1,
|
|
146
158
|
host: opt.host,
|
|
147
159
|
port: opt.port,
|
|
148
|
-
username: opt.username
|
|
160
|
+
username: opt.username,
|
|
149
161
|
},
|
|
150
162
|
...new PoolConnection().connect({
|
|
151
163
|
...options,
|
|
152
|
-
...opt
|
|
153
|
-
})
|
|
164
|
+
...opt,
|
|
165
|
+
}),
|
|
154
166
|
};
|
|
155
167
|
});
|
|
156
168
|
const readerOptions = hosts
|
|
157
169
|
.map((host, i) => {
|
|
158
|
-
if (types[i] !==
|
|
170
|
+
if (types[i] !== "slave")
|
|
159
171
|
return null;
|
|
160
172
|
return {
|
|
161
173
|
host,
|
|
162
174
|
port: getValue(ports, i),
|
|
163
175
|
username: getValue(usernames, i),
|
|
164
|
-
password: getValue(passwords, i)
|
|
176
|
+
password: getValue(passwords, i),
|
|
165
177
|
};
|
|
166
178
|
})
|
|
167
179
|
.filter(Boolean);
|
|
168
180
|
const readers = readerOptions.map((opt, i) => {
|
|
169
181
|
return {
|
|
170
182
|
pool: {
|
|
171
|
-
type:
|
|
183
|
+
type: "slave",
|
|
172
184
|
node: +i + 1,
|
|
173
185
|
host: opt.host,
|
|
174
186
|
port: opt.port,
|
|
175
|
-
username: opt.username
|
|
187
|
+
username: opt.username,
|
|
176
188
|
},
|
|
177
189
|
...new PoolConnection().connect({
|
|
178
190
|
...options,
|
|
179
|
-
...opt
|
|
180
|
-
})
|
|
191
|
+
...opt,
|
|
192
|
+
}),
|
|
181
193
|
};
|
|
182
194
|
});
|
|
183
195
|
if (!writers.length) {
|
|
184
|
-
throw new Error(
|
|
196
|
+
throw new Error("[DB_CLUSTER] Cluster mode requires at least one writer node. Please check your configuration.");
|
|
185
197
|
}
|
|
186
198
|
if (!readers.length) {
|
|
187
|
-
throw new Error(
|
|
199
|
+
throw new Error("[DB_CLUSTER] Cluster mode requires at least one reader node. Please check your configuration.");
|
|
188
200
|
}
|
|
189
201
|
this.CLUSTER = {
|
|
190
202
|
masters: writers,
|
|
191
|
-
slaves: readers
|
|
203
|
+
slaves: readers,
|
|
192
204
|
};
|
|
193
205
|
return this.CLUSTER;
|
|
194
206
|
}
|
|
@@ -203,7 +215,7 @@ class PoolConnection {
|
|
|
203
215
|
password: String(config_1.default.PASSWORD),
|
|
204
216
|
// ------------------ custom ----------------------------
|
|
205
217
|
driver: String(config_1.default.DRIVER ?? "mysql2"),
|
|
206
|
-
cluster: Boolean(config_1.default.CLUSTER ?? false)
|
|
218
|
+
cluster: Boolean(config_1.default.CLUSTER ?? false),
|
|
207
219
|
}));
|
|
208
220
|
}
|
|
209
221
|
_loadOptions() {
|
|
@@ -224,11 +236,11 @@ class PoolConnection {
|
|
|
224
236
|
* charset =
|
|
225
237
|
* }
|
|
226
238
|
*/
|
|
227
|
-
const dbOptionsPath =
|
|
228
|
-
const dbOptionsExists =
|
|
239
|
+
const dbOptionsPath = Package_1.Package.path.join(Package_1.Package.path.resolve(), "db.tspace");
|
|
240
|
+
const dbOptionsExists = Package_1.Package.fs.existsSync(dbOptionsPath);
|
|
229
241
|
if (!dbOptionsExists)
|
|
230
242
|
return this._defaultOptions();
|
|
231
|
-
const dbOptions =
|
|
243
|
+
const dbOptions = Package_1.Package.fs.readFileSync(dbOptionsPath, "utf8");
|
|
232
244
|
const options = this._convertStringToObject(dbOptions);
|
|
233
245
|
if (options == null)
|
|
234
246
|
return this._defaultOptions();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pool.js","sourceRoot":"","sources":["../../../src/lib/core/Pool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"Pool.js","sourceRoot":"","sources":["../../../src/lib/core/Pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import type { T } from "./UtilityTypes";
|
|
2
|
+
import { Blueprint } from "./Blueprint";
|
|
3
|
+
import { Model } from "./Model";
|
|
4
|
+
export type Job<T = any> = {
|
|
5
|
+
id: number;
|
|
6
|
+
name: string;
|
|
7
|
+
status: 'pending' | 'active' | 'completed' | 'failed';
|
|
8
|
+
payload: T;
|
|
9
|
+
};
|
|
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">;
|
|
26
|
+
priority: Blueprint<number>;
|
|
27
|
+
payload: Blueprint<string | null>;
|
|
28
|
+
result: Blueprint<string | null>;
|
|
29
|
+
error: Blueprint<string | null>;
|
|
30
|
+
metadata: Blueprint<string | null>;
|
|
31
|
+
attempts: Blueprint<number>;
|
|
32
|
+
max_attempts: Blueprint<number>;
|
|
33
|
+
locked_by: Blueprint<string | null>;
|
|
34
|
+
locked_at: Blueprint<string | Date | null>;
|
|
35
|
+
available_at: Blueprint<string | Date>;
|
|
36
|
+
completed_at: Blueprint<string | Date | null>;
|
|
37
|
+
created_at: Blueprint<string | Date | null>;
|
|
38
|
+
updated_at: Blueprint<string | Date | null>;
|
|
39
|
+
};
|
|
40
|
+
type TS = T.Schema<typeof schema>;
|
|
41
|
+
declare class Worker extends Model<TS> {
|
|
42
|
+
private HOSTNAME;
|
|
43
|
+
private INSPECT_EXEC;
|
|
44
|
+
private STOPPING;
|
|
45
|
+
private IS_FLUSHING;
|
|
46
|
+
private LIMIT_CONNECTIONS;
|
|
47
|
+
private MAX_IDLE_RETRIES;
|
|
48
|
+
private ACTIVE_JOBS;
|
|
49
|
+
private BATCH_SIZE;
|
|
50
|
+
private MAX_WAIT_MS;
|
|
51
|
+
private BUFFER;
|
|
52
|
+
private WORKER_STATE;
|
|
53
|
+
protected boot(): void;
|
|
54
|
+
initialize(opts?: {
|
|
55
|
+
inspect?: boolean;
|
|
56
|
+
flush?: boolean;
|
|
57
|
+
hostname?: string;
|
|
58
|
+
maxIdleRetries?: number;
|
|
59
|
+
limitConnections?: number;
|
|
60
|
+
}): Promise<this>;
|
|
61
|
+
shutdown(): Promise<void>;
|
|
62
|
+
flush(): Promise<void>;
|
|
63
|
+
getJobOverallStats(name?: string): Promise<{
|
|
64
|
+
total: number;
|
|
65
|
+
completed: number;
|
|
66
|
+
active: number;
|
|
67
|
+
pending: number;
|
|
68
|
+
failed: number;
|
|
69
|
+
}>;
|
|
70
|
+
getJobStats(name?: string): Promise<{
|
|
71
|
+
name: string;
|
|
72
|
+
completed: number;
|
|
73
|
+
active: number;
|
|
74
|
+
pending: number;
|
|
75
|
+
failed: number;
|
|
76
|
+
}[]>;
|
|
77
|
+
getNames(): Promise<any[]>;
|
|
78
|
+
add(name: string, payload: any, opts?: QueueAddOptions): Promise<void>;
|
|
79
|
+
process(name: string, handler: Handler, opts?: QueueProcessOptions): Promise<void>;
|
|
80
|
+
private _runJob;
|
|
81
|
+
private _waitForSafeConnections;
|
|
82
|
+
private _dequeueMany;
|
|
83
|
+
private _flushBuffer;
|
|
84
|
+
private _wakeWorker;
|
|
85
|
+
private safeJsonParse;
|
|
86
|
+
private safeJsonStringify;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Queue facade class (static API wrapper)
|
|
90
|
+
*
|
|
91
|
+
* This class provides a singleton-style interface over the underlying Worker instance.
|
|
92
|
+
* It must be initialized before use via `Queue.start()`.
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```ts
|
|
96
|
+
* const sendEmail = (job) => console.log('send mail :' + job.payload.email)
|
|
97
|
+
*
|
|
98
|
+
* await Queue.start({ inspect : true, flush : true // **remove all jobs });
|
|
99
|
+
*
|
|
100
|
+
* // register
|
|
101
|
+
* Queue.progress("send-email", async (job) => {
|
|
102
|
+
* return await sendEmail(job);
|
|
103
|
+
* }, { concurrency : 3 });
|
|
104
|
+
*
|
|
105
|
+
* // add
|
|
106
|
+
* Queue.add("send-email", { email: "test@gmail.com" });
|
|
107
|
+
*
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
declare class Queue {
|
|
111
|
+
/**
|
|
112
|
+
* Internal Worker instance used for all queue operations.
|
|
113
|
+
* @type {Worker | null}
|
|
114
|
+
*/
|
|
115
|
+
private static WORKER;
|
|
116
|
+
private static MESSAGE;
|
|
117
|
+
/**
|
|
118
|
+
* The 'start' method is used to initialize the Queue system.
|
|
119
|
+
* Creates and prepares the underlying Worker instance.
|
|
120
|
+
* @param {Object} [opts] - options (inspect, flush)
|
|
121
|
+
* @property {boolean} opts.inspect queue work flow
|
|
122
|
+
* @property {boolean} opts.flush remove all queue
|
|
123
|
+
* @property {number} opts.maxIdleRetries - Maximum idle time () when no jobs are available
|
|
124
|
+
* @property {number} opts.limitConnections - Allowed DB connections limit before pausing
|
|
125
|
+
* @returns {Promise<void>}
|
|
126
|
+
*/
|
|
127
|
+
static start(opts?: {
|
|
128
|
+
inspect?: boolean;
|
|
129
|
+
flush?: boolean;
|
|
130
|
+
hostname?: string;
|
|
131
|
+
maxIdleRetries?: number;
|
|
132
|
+
limitConnections?: 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | 150 | 200;
|
|
133
|
+
}): Promise<void>;
|
|
134
|
+
/**
|
|
135
|
+
* The 'end' method is used to shutdown the Queue system.
|
|
136
|
+
*
|
|
137
|
+
* @returns {Promise<void>}
|
|
138
|
+
*/
|
|
139
|
+
static end(): Promise<void>;
|
|
140
|
+
/**
|
|
141
|
+
* The 'flush' method is used to flush all jobs in the queue (dangerous operation).
|
|
142
|
+
*
|
|
143
|
+
* @throws {Error} If Queue is not initialized.
|
|
144
|
+
* @returns {Promise<void>}
|
|
145
|
+
*/
|
|
146
|
+
static flush(): Promise<void>;
|
|
147
|
+
/**
|
|
148
|
+
* The 'getJobOverallStats' method is used to get aggregated queue statistics.
|
|
149
|
+
*
|
|
150
|
+
* @param {string} [name] - Optional queue name filter.
|
|
151
|
+
* @throws {Error} If Queue is not initialized.
|
|
152
|
+
* @returns {Promise<any>}
|
|
153
|
+
*/
|
|
154
|
+
static getJobOverallStats(name?: string): Promise<{
|
|
155
|
+
total: number;
|
|
156
|
+
completed: number;
|
|
157
|
+
active: number;
|
|
158
|
+
pending: number;
|
|
159
|
+
failed: number;
|
|
160
|
+
}>;
|
|
161
|
+
/**
|
|
162
|
+
* The 'getJobStats' method is used to Get jobs statistics grouped by name.
|
|
163
|
+
*
|
|
164
|
+
* @param {string} [name] - Optional queue name filter.
|
|
165
|
+
* @throws {Error} If Queue is not initialized.
|
|
166
|
+
* @returns {Promise<Record<string,any>>}
|
|
167
|
+
*/
|
|
168
|
+
static getJobStats(name?: string): Promise<{
|
|
169
|
+
completed: number;
|
|
170
|
+
active: number;
|
|
171
|
+
pending: number;
|
|
172
|
+
failed: number;
|
|
173
|
+
}[]>;
|
|
174
|
+
/**
|
|
175
|
+
* Get all unique queue names.
|
|
176
|
+
*
|
|
177
|
+
* @throws {Error} If Queue is not initialized.
|
|
178
|
+
* @returns {Promise<string[]>}
|
|
179
|
+
*/
|
|
180
|
+
static getNames(): Promise<string[]>;
|
|
181
|
+
/**
|
|
182
|
+
* Access raw Worker instance safely.
|
|
183
|
+
*
|
|
184
|
+
* @param {(worker: Worker) => any} cb - Callback with Worker instance.
|
|
185
|
+
* @throws {Error} If Queue is not initialized.
|
|
186
|
+
* @returns {Promise<Work>}
|
|
187
|
+
*/
|
|
188
|
+
static worker(cb: (worker: Worker) => any): Promise<Worker>;
|
|
189
|
+
/**
|
|
190
|
+
* Start a worker for processing jobs of a specific name.
|
|
191
|
+
*
|
|
192
|
+
* @param {string} name - Queue name to process.
|
|
193
|
+
* @param {Handler} handler - Job handler function.
|
|
194
|
+
* @param {QueueProcessOptions} [opts] - Job options (interval, concurrency)
|
|
195
|
+
* @throws {Error} If Queue is not initialized.
|
|
196
|
+
* @returns {Promise<void>}
|
|
197
|
+
*
|
|
198
|
+
* @example
|
|
199
|
+
* const helloWorld = (job) => console.log('hello world :' + job.id);
|
|
200
|
+
*
|
|
201
|
+
* Queue.progress("hello", async (job) => {
|
|
202
|
+
* return await helloWorld(job)
|
|
203
|
+
* }, { concurrency : 3 });
|
|
204
|
+
*/
|
|
205
|
+
static process(name: string, handler: Handler, opts?: QueueProcessOptions): Promise<void>;
|
|
206
|
+
/**
|
|
207
|
+
* Start a worker for processing jobs of a specific name.
|
|
208
|
+
*
|
|
209
|
+
* @param {string} name - Queue name to process.
|
|
210
|
+
* @param {Handler} handler - Job handler function.
|
|
211
|
+
* @param {QueueProcessOptions} [opts] - Job options (interval, concurrency)
|
|
212
|
+
* @throws {Error} If Queue is not initialized.
|
|
213
|
+
* @returns {Promise<void>}
|
|
214
|
+
*
|
|
215
|
+
* @example
|
|
216
|
+
* const helloWorld = (job) => console.log('hello world :' + job.id);
|
|
217
|
+
*
|
|
218
|
+
* Queue.on("hello", async (job) => {
|
|
219
|
+
* return await helloWorld(job)
|
|
220
|
+
* }, { concurrency : 3 });
|
|
221
|
+
*/
|
|
222
|
+
static on(name: string, handler: Handler, opts?: QueueProcessOptions): Promise<void>;
|
|
223
|
+
/**
|
|
224
|
+
* Add a new job into the queue.
|
|
225
|
+
*
|
|
226
|
+
* @param {string} name - Queue name / job type.
|
|
227
|
+
* @param {any} payload - Job payload data.
|
|
228
|
+
* @param {QueueAddOptions} [opts] - Job options (delay, priority, retry, etc.)
|
|
229
|
+
* @throws {Error} If Queue is not initialized.
|
|
230
|
+
* @returns {Promise<T.Result<Worker>>}
|
|
231
|
+
*
|
|
232
|
+
* @example
|
|
233
|
+
* ```ts
|
|
234
|
+
* Queue.add("send-email", { email: "test@gmail.com" });
|
|
235
|
+
* ```
|
|
236
|
+
*/
|
|
237
|
+
static add(name: string, payload: any, opts?: QueueAddOptions): Promise<void>;
|
|
238
|
+
}
|
|
239
|
+
export { Queue };
|
|
240
|
+
export default Queue;
|