@wikicasa-dev/node-common 4.7.11 → 5.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/examples/callpool-demo.js +14 -13
- package/dist/examples/callpool-demo.js.map +1 -1
- package/dist/examples/console-demo.js +25 -25
- package/dist/examples/console-demo.js.map +1 -1
- package/dist/src/Cache.d.ts +39 -2
- package/dist/src/Cache.js +44 -6
- package/dist/src/Cache.js.map +1 -1
- package/dist/src/CacheES.d.ts +28 -0
- package/dist/src/CacheES.js +34 -4
- package/dist/src/CacheES.js.map +1 -1
- package/dist/src/CallPool.d.ts +71 -5
- package/dist/src/CallPool.js +82 -9
- package/dist/src/CallPool.js.map +1 -1
- package/dist/src/Console.d.ts +24 -58
- package/dist/src/Console.js +104 -80
- package/dist/src/Console.js.map +1 -1
- package/dist/src/Crawler.d.ts +18 -0
- package/dist/src/Crawler.js +20 -2
- package/dist/src/Crawler.js.map +1 -1
- package/dist/src/Pool.d.ts +19 -0
- package/dist/src/Pool.js +21 -2
- package/dist/src/Pool.js.map +1 -1
- package/dist/src/common.d.ts +74 -3
- package/dist/src/common.js +80 -7
- package/dist/src/common.js.map +1 -1
- package/dist/src/utils.d.ts +165 -26
- package/dist/src/utils.js +165 -26
- package/dist/src/utils.js.map +1 -1
- package/package.json +20 -23
package/dist/src/Console.js
CHANGED
|
@@ -84,9 +84,17 @@ export class Console {
|
|
|
84
84
|
}
|
|
85
85
|
return info;
|
|
86
86
|
})(), winston.format.timestamp(), winston.format.json()),
|
|
87
|
-
level: process.env.LOG_LEVEL
|
|
87
|
+
level: process.env.LOG_LEVEL?.toLowerCase() ||
|
|
88
|
+
(this.isProduction ? LOG_LEVEL.INFO : LOG_LEVEL.DEBUG),
|
|
88
89
|
transports: [new winston.transports.Console()]
|
|
89
90
|
});
|
|
91
|
+
static LEVEL_ORDER = {
|
|
92
|
+
[LOG_LEVEL.ERROR]: 0,
|
|
93
|
+
[LOG_LEVEL.WARN]: 1,
|
|
94
|
+
[LOG_LEVEL.INFO]: 2,
|
|
95
|
+
[LOG_LEVEL.VERBOSE]: 3,
|
|
96
|
+
[LOG_LEVEL.DEBUG]: 4
|
|
97
|
+
};
|
|
90
98
|
/**
|
|
91
99
|
* Costruttore pubblico per permettere l'istanziazione diretta.
|
|
92
100
|
*/
|
|
@@ -95,72 +103,63 @@ export class Console {
|
|
|
95
103
|
// e per mantenere la classe principalmente statica
|
|
96
104
|
}
|
|
97
105
|
// ----------------------------------------------------------------
|
|
106
|
+
// HELPER METHODS
|
|
107
|
+
// ----------------------------------------------------------------
|
|
108
|
+
static formatParamValue(value) {
|
|
109
|
+
if (value instanceof Error)
|
|
110
|
+
return value.message;
|
|
111
|
+
if (value == null)
|
|
112
|
+
return String(value);
|
|
113
|
+
if (typeof value === "string")
|
|
114
|
+
return value;
|
|
115
|
+
if (typeof value === "number" || typeof value === "boolean")
|
|
116
|
+
return String(value);
|
|
117
|
+
try {
|
|
118
|
+
const str = JSON.stringify(value);
|
|
119
|
+
return str.length > 100 ? str.slice(0, 97) + "..." : str;
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
return "[Object]";
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
static formatParams(params) {
|
|
126
|
+
const entries = Object.entries(params);
|
|
127
|
+
if (entries.length === 0)
|
|
128
|
+
return "";
|
|
129
|
+
return " | " + entries.map(([k, v]) => `${k}=${this.formatParamValue(v)}`).join(" ");
|
|
130
|
+
}
|
|
131
|
+
// ----------------------------------------------------------------
|
|
98
132
|
// METODI STATICI PUBBLICI PER LA CONSOLE
|
|
99
133
|
// ----------------------------------------------------------------
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
*/
|
|
105
|
-
static normalizeOptions(options) {
|
|
106
|
-
if (typeof options === "string") {
|
|
107
|
-
return { prefix: options };
|
|
134
|
+
static getEffectiveLevel() {
|
|
135
|
+
const envLevel = process.env.LOG_LEVEL?.toLowerCase();
|
|
136
|
+
if (envLevel && this.LEVEL_ORDER[envLevel] !== undefined) {
|
|
137
|
+
return envLevel;
|
|
108
138
|
}
|
|
109
|
-
return
|
|
139
|
+
return this.isProduction ? LOG_LEVEL.INFO : LOG_LEVEL.DEBUG;
|
|
110
140
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
* @returns void
|
|
116
|
-
*/
|
|
117
|
-
static log(message, logOptions) {
|
|
118
|
-
this.write(message, logOptions);
|
|
141
|
+
static shouldLog(level) {
|
|
142
|
+
const current = this.LEVEL_ORDER[level] ?? this.LEVEL_ORDER[LOG_LEVEL.INFO];
|
|
143
|
+
const threshold = this.LEVEL_ORDER[this.getEffectiveLevel()] ?? this.LEVEL_ORDER[LOG_LEVEL.INFO];
|
|
144
|
+
return current <= threshold;
|
|
119
145
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
* @param message string
|
|
123
|
-
* @param logOptions LogOptions
|
|
124
|
-
* @returns void
|
|
125
|
-
*/
|
|
126
|
-
static error(message, logOptions) {
|
|
127
|
-
this.write(message, { level: LOG_LEVEL.ERROR, color: COLORS.RED, ...logOptions });
|
|
146
|
+
static log(message, params, options) {
|
|
147
|
+
this.write(message, params, options);
|
|
128
148
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
* @param message string
|
|
132
|
-
* @param logOptions LogOptions
|
|
133
|
-
* @returns void
|
|
134
|
-
*/
|
|
135
|
-
static warn(message, logOptions) {
|
|
136
|
-
this.write(message, { level: LOG_LEVEL.WARN, color: COLORS.YELLOW, ...logOptions });
|
|
149
|
+
static error(message, params, options) {
|
|
150
|
+
this.write(message, params, { level: LOG_LEVEL.ERROR, color: COLORS.RED, ...options });
|
|
137
151
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
* @param message string
|
|
141
|
-
* @param logOptions LogOptions
|
|
142
|
-
* @returns void
|
|
143
|
-
*/
|
|
144
|
-
static success(message, logOptions) {
|
|
145
|
-
this.write(message, { level: LOG_LEVEL.INFO, color: COLORS.GREEN, ...logOptions });
|
|
152
|
+
static warn(message, params, options) {
|
|
153
|
+
this.write(message, params, { level: LOG_LEVEL.WARN, color: COLORS.YELLOW, ...options });
|
|
146
154
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
* @param message string
|
|
150
|
-
* @param logOptions LogOptions
|
|
151
|
-
* @returns void
|
|
152
|
-
*/
|
|
153
|
-
static debug(message, logOptions) {
|
|
154
|
-
this.write(message, { level: LOG_LEVEL.DEBUG, color: COLORS.BLUE, ...logOptions });
|
|
155
|
+
static success(message, params, options) {
|
|
156
|
+
this.write(message, params, { level: LOG_LEVEL.INFO, color: COLORS.GREEN, ...options });
|
|
155
157
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
*/
|
|
162
|
-
static verbose(message, logOptions) {
|
|
163
|
-
this.write(message, { level: LOG_LEVEL.VERBOSE, ...logOptions });
|
|
158
|
+
static debug(message, params, options) {
|
|
159
|
+
this.write(message, params, { level: LOG_LEVEL.DEBUG, color: COLORS.BLUE, ...options });
|
|
160
|
+
}
|
|
161
|
+
static verbose(message, params, options) {
|
|
162
|
+
this.write(message, params, { level: LOG_LEVEL.VERBOSE, ...options });
|
|
164
163
|
}
|
|
165
164
|
/**
|
|
166
165
|
* Aggiunge una riga di riepilogo (summary) in fondo allo schermo
|
|
@@ -258,20 +257,25 @@ export class Console {
|
|
|
258
257
|
// LOGICA DI NESTJS LOGGER
|
|
259
258
|
// ----------------------------------------------------------------
|
|
260
259
|
// Implementando l'interfaccia LoggerService:
|
|
261
|
-
error(message,
|
|
262
|
-
|
|
260
|
+
error(message, ...args) {
|
|
261
|
+
const [params, options] = this.extractArgs(args);
|
|
262
|
+
Console.error(message?.toString() ?? "Error", params, options);
|
|
263
263
|
}
|
|
264
|
-
warn(message,
|
|
265
|
-
|
|
264
|
+
warn(message, ...args) {
|
|
265
|
+
const [params, options] = this.extractArgs(args);
|
|
266
|
+
Console.warn(message?.toString() ?? "Warn", params, options);
|
|
266
267
|
}
|
|
267
|
-
log(message,
|
|
268
|
-
|
|
268
|
+
log(message, ...args) {
|
|
269
|
+
const [params, options] = this.extractArgs(args);
|
|
270
|
+
Console.log(message?.toString() ?? "Log", params, options);
|
|
269
271
|
}
|
|
270
|
-
debug(message,
|
|
271
|
-
|
|
272
|
+
debug(message, ...args) {
|
|
273
|
+
const [params, options] = this.extractArgs(args);
|
|
274
|
+
Console.debug(message?.toString() ?? "Debug", params, options);
|
|
272
275
|
}
|
|
273
|
-
verbose(message,
|
|
274
|
-
|
|
276
|
+
verbose(message, ...args) {
|
|
277
|
+
const [params, options] = this.extractArgs(args);
|
|
278
|
+
Console.verbose(message?.toString() ?? "Verbose", params, options);
|
|
275
279
|
}
|
|
276
280
|
appendSummaryLine(fn, color = COLORS.WHITE, id) {
|
|
277
281
|
Console.appendSummaryLine(fn, color, id);
|
|
@@ -282,6 +286,22 @@ export class Console {
|
|
|
282
286
|
clearSummaryLines() {
|
|
283
287
|
Console.clearSummaryLines();
|
|
284
288
|
}
|
|
289
|
+
/**
|
|
290
|
+
* Adapter for NestJS LoggerService rest args.
|
|
291
|
+
* Handles: (params, options), (params), (contextString), ()
|
|
292
|
+
*/
|
|
293
|
+
extractArgs(args) {
|
|
294
|
+
if (args.length === 0)
|
|
295
|
+
return [{}, {}];
|
|
296
|
+
if (args.length === 1 && typeof args[0] === "string") {
|
|
297
|
+
return [{}, { prefix: args[0] }];
|
|
298
|
+
}
|
|
299
|
+
const params = (typeof args[0] === "object" && args[0] !== null) ? args[0] : {};
|
|
300
|
+
const options = (args[1] && typeof args[1] === "object") ? args[1]
|
|
301
|
+
: (typeof args[1] === "string") ? { prefix: args[1] }
|
|
302
|
+
: {};
|
|
303
|
+
return [params, options];
|
|
304
|
+
}
|
|
285
305
|
// ----------------------------------------------------------------
|
|
286
306
|
// METODI PRIVATI DI GESTIONE
|
|
287
307
|
// ----------------------------------------------------------------
|
|
@@ -341,31 +361,33 @@ export class Console {
|
|
|
341
361
|
}
|
|
342
362
|
/**
|
|
343
363
|
* Logica comune per stampare messaggi, con o senza spinner.
|
|
344
|
-
* @param message string
|
|
345
|
-
* @param logOptions LogOptions
|
|
346
|
-
* @returns void
|
|
347
364
|
*/
|
|
348
|
-
static write(message, logOptions = {}) {
|
|
365
|
+
static write(message, params = {}, logOptions = {}) {
|
|
349
366
|
if (logOptions.prefix !== undefined) {
|
|
350
367
|
this.staticPrefix =
|
|
351
368
|
logOptions.prefix === null || logOptions.prefix === "" ? null : logOptions.prefix;
|
|
352
369
|
}
|
|
370
|
+
const messageLevel = logOptions.level ?? LOG_LEVEL.INFO;
|
|
371
|
+
if (!this.shouldLog(messageLevel))
|
|
372
|
+
return;
|
|
373
|
+
const displayMessage = message + this.formatParams(params);
|
|
353
374
|
// Salviamo l'entry nella cronologia con tutti i metadati
|
|
354
375
|
this.logHistory.push({
|
|
355
|
-
message,
|
|
376
|
+
message: displayMessage,
|
|
377
|
+
params: Object.keys(params).length > 0 ? params : undefined,
|
|
356
378
|
prefix: this.staticPrefix || undefined,
|
|
357
379
|
color: logOptions.color ?? COLORS.WHITE,
|
|
358
380
|
timestamp: new Date(),
|
|
359
|
-
level:
|
|
381
|
+
level: messageLevel
|
|
360
382
|
});
|
|
361
383
|
if (this.logHistory.length > this.MAX_HISTORY) {
|
|
362
384
|
this.logHistory.shift();
|
|
363
385
|
}
|
|
364
386
|
if (this.isProduction) {
|
|
365
387
|
this.logger.log({
|
|
366
|
-
message: this.staticPrefix ? `${this.staticPrefix} ${
|
|
367
|
-
level:
|
|
368
|
-
...
|
|
388
|
+
message: this.staticPrefix ? `${this.staticPrefix} ${displayMessage}` : displayMessage,
|
|
389
|
+
level: messageLevel,
|
|
390
|
+
...params
|
|
369
391
|
});
|
|
370
392
|
return;
|
|
371
393
|
}
|
|
@@ -379,7 +401,7 @@ export class Console {
|
|
|
379
401
|
else {
|
|
380
402
|
this.appendLine("");
|
|
381
403
|
}
|
|
382
|
-
this.spinnerBaseMessage =
|
|
404
|
+
this.spinnerBaseMessage = displayMessage;
|
|
383
405
|
this.spinnerInterval = setInterval(() => {
|
|
384
406
|
const frame = this.spinnerFrames[this.spinnerFrameIndex];
|
|
385
407
|
this.spinnerFrameIndex = (this.spinnerFrameIndex + 1) % this.spinnerFrames.length;
|
|
@@ -388,12 +410,14 @@ export class Console {
|
|
|
388
410
|
}, 100);
|
|
389
411
|
}
|
|
390
412
|
else {
|
|
413
|
+
const prefixTag = this.staticPrefix ? `${COLORS.WHITE}${this.staticPrefix}{/} ` : "";
|
|
414
|
+
const coloredLine = `${prefixTag}${logOptions.color ?? COLORS.WHITE}${displayMessage}{/}`;
|
|
391
415
|
if (this.spinnerInterval) {
|
|
392
416
|
this.stopSpinner();
|
|
393
|
-
this.updateSpinnerLine(
|
|
417
|
+
this.updateSpinnerLine(coloredLine);
|
|
394
418
|
}
|
|
395
419
|
else {
|
|
396
|
-
this.appendLine(
|
|
420
|
+
this.appendLine(coloredLine);
|
|
397
421
|
}
|
|
398
422
|
}
|
|
399
423
|
}
|
package/dist/src/Console.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Console.js","sourceRoot":"","sources":["../../src/Console.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Console.js","sourceRoot":"","sources":["../../src/Console.ts"],"names":[],"mappings":"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"}
|
package/dist/src/Crawler.d.ts
CHANGED
|
@@ -21,9 +21,27 @@ export declare class Crawler implements ICrawler {
|
|
|
21
21
|
first: boolean;
|
|
22
22
|
options: ICrawlerOptions;
|
|
23
23
|
constructor(options: ICrawlerOptions);
|
|
24
|
+
/**
|
|
25
|
+
* Launch the crawl: create drivers, discover URLs via the hub, then process each URL concurrently.
|
|
26
|
+
*
|
|
27
|
+
* @returns Array of aggregated crawl results
|
|
28
|
+
*/
|
|
24
29
|
execute(): Promise<any>;
|
|
30
|
+
/**
|
|
31
|
+
* Spawn headless Chrome WebDriver instances up to the configured concurrency.
|
|
32
|
+
*/
|
|
25
33
|
createDrivers(): void;
|
|
34
|
+
/**
|
|
35
|
+
* Close all active WebDriver instances.
|
|
36
|
+
*/
|
|
26
37
|
destroyDrivers(): void;
|
|
38
|
+
/**
|
|
39
|
+
* Recursively crawl a single URL: scrape listings, optionally fetch details, then follow pagination.
|
|
40
|
+
*
|
|
41
|
+
* @param driver - WebDriver instance to use for navigation
|
|
42
|
+
* @param url - Page URL to crawl
|
|
43
|
+
* @returns Accumulated results across all paginated pages
|
|
44
|
+
*/
|
|
27
45
|
crawlFn(driver: ThenableWebDriver, url: string): Promise<any>;
|
|
28
46
|
}
|
|
29
47
|
export {};
|
package/dist/src/Crawler.js
CHANGED
|
@@ -16,6 +16,11 @@ export class Crawler {
|
|
|
16
16
|
constructor(options) {
|
|
17
17
|
this.options = { ...this.options, ...options };
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Launch the crawl: create drivers, discover URLs via the hub, then process each URL concurrently.
|
|
21
|
+
*
|
|
22
|
+
* @returns Array of aggregated crawl results
|
|
23
|
+
*/
|
|
19
24
|
execute() {
|
|
20
25
|
this.createDrivers();
|
|
21
26
|
try {
|
|
@@ -23,7 +28,7 @@ export class Crawler {
|
|
|
23
28
|
this.options.crawlHub(this.drivers[0]).then(urls => {
|
|
24
29
|
const tasks = urls.map((url, index) => () => {
|
|
25
30
|
const driver = this.drivers.pop();
|
|
26
|
-
Console.log(
|
|
31
|
+
Console.log("Valuating url", { progress: `${index + 1}/${urls.length}`, url: urls[index] });
|
|
27
32
|
return this.crawlFn(driver, url)
|
|
28
33
|
.then(results => this.options.callback?.call(null, results, index, this.first))
|
|
29
34
|
.finally(() => {
|
|
@@ -40,10 +45,13 @@ export class Crawler {
|
|
|
40
45
|
});
|
|
41
46
|
}
|
|
42
47
|
catch (e) {
|
|
43
|
-
|
|
48
|
+
Console.error("Crawler execution failed", { error: e });
|
|
44
49
|
this.destroyDrivers();
|
|
45
50
|
}
|
|
46
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Spawn headless Chrome WebDriver instances up to the configured concurrency.
|
|
54
|
+
*/
|
|
47
55
|
createDrivers() {
|
|
48
56
|
for (let i = 0; i < this.options.concurrent; i++) {
|
|
49
57
|
this.drivers.push(new Webdriver.Builder()
|
|
@@ -53,9 +61,19 @@ export class Crawler {
|
|
|
53
61
|
.build());
|
|
54
62
|
}
|
|
55
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Close all active WebDriver instances.
|
|
66
|
+
*/
|
|
56
67
|
destroyDrivers() {
|
|
57
68
|
this.drivers.forEach(driver => driver.close());
|
|
58
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Recursively crawl a single URL: scrape listings, optionally fetch details, then follow pagination.
|
|
72
|
+
*
|
|
73
|
+
* @param driver - WebDriver instance to use for navigation
|
|
74
|
+
* @param url - Page URL to crawl
|
|
75
|
+
* @returns Accumulated results across all paginated pages
|
|
76
|
+
*/
|
|
59
77
|
crawlFn(driver, url) {
|
|
60
78
|
const _self = this;
|
|
61
79
|
return new Promise(resolve => {
|
package/dist/src/Crawler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Crawler.js","sourceRoot":"","sources":["../../src/Crawler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAC;AACjC,OAAO,SAA8B,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AACrC,OAAO,EAAC,OAAO,EAAC,MAAM,8BAA8B,CAAC;AA4BrD,MAAM,OAAO,OAAO;IAEhB,OAAO,GAA6B,EAAE,CAAC;IACvC,KAAK,GAAG,IAAI,CAAC;IAEb,OAAO,GAAoB;QACvB,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,IAAI;KACpB,CAAA;IAED,YAAY,OAAwB;QAChC,IAAI,CAAC,OAAO,GAAG,EAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAC,CAAC;IACjD,CAAC;IAED,OAAO;QAEH,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,CAAC;YACD,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBACzB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAE/C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAiB,EAAE;wBAEtD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;wBAElC,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"Crawler.js","sourceRoot":"","sources":["../../src/Crawler.ts"],"names":[],"mappings":"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"}
|
package/dist/src/Pool.d.ts
CHANGED
|
@@ -5,10 +5,29 @@ export declare class Pool {
|
|
|
5
5
|
private queue;
|
|
6
6
|
private activeCount;
|
|
7
7
|
constructor(name: string, concurrency: number, limitCall?: number, limitInterval?: number);
|
|
8
|
+
/**
|
|
9
|
+
* Execute an array of async calls with bounded concurrency, batching in groups of 1000.
|
|
10
|
+
*
|
|
11
|
+
* @param calls - Array of async factory functions to execute
|
|
12
|
+
* @param concurrency - Maximum number of concurrent executions
|
|
13
|
+
* @returns Flat array of all results in order
|
|
14
|
+
*/
|
|
8
15
|
static run: (calls: Array<() => Promise<any>>, concurrency: number) => Promise<any[]>;
|
|
16
|
+
/**
|
|
17
|
+
* Add one or more async tasks to the pool queue and return when all complete.
|
|
18
|
+
*
|
|
19
|
+
* @param calls - Async factory functions to enqueue
|
|
20
|
+
* @returns Resolved values from all enqueued calls
|
|
21
|
+
*/
|
|
9
22
|
enqueue(...calls: Array<() => Promise<any>>): Promise<any[]>;
|
|
23
|
+
/**
|
|
24
|
+
* Drain the queue by starting tasks up to the concurrency limit, applying rate limiting.
|
|
25
|
+
*/
|
|
10
26
|
private schedule;
|
|
11
27
|
print(): string;
|
|
28
|
+
/**
|
|
29
|
+
* Rebuild the visual progress bar string reflecting current pool utilisation.
|
|
30
|
+
*/
|
|
12
31
|
updatePrint(): void;
|
|
13
32
|
private _print;
|
|
14
33
|
}
|
package/dist/src/Pool.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Console, COLORS } from "./Console.js";
|
|
2
|
-
import throttledQueue from "throttled-queue";
|
|
2
|
+
import { throttledQueue } from "throttled-queue";
|
|
3
3
|
const BATCH_SIZE = 1000;
|
|
4
4
|
export class Pool {
|
|
5
5
|
name;
|
|
@@ -12,9 +12,16 @@ export class Pool {
|
|
|
12
12
|
this.concurrency = concurrency;
|
|
13
13
|
this.queue = [];
|
|
14
14
|
this.activeCount = 0;
|
|
15
|
-
this.limiter = throttledQueue(limitCall, limitInterval, true);
|
|
15
|
+
this.limiter = throttledQueue({ maxPerInterval: limitCall, interval: limitInterval, evenlySpaced: true });
|
|
16
16
|
this.updatePrint();
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Execute an array of async calls with bounded concurrency, batching in groups of 1000.
|
|
20
|
+
*
|
|
21
|
+
* @param calls - Array of async factory functions to execute
|
|
22
|
+
* @param concurrency - Maximum number of concurrent executions
|
|
23
|
+
* @returns Flat array of all results in order
|
|
24
|
+
*/
|
|
18
25
|
static run = async (calls, concurrency) => {
|
|
19
26
|
const pool = new Pool("", concurrency);
|
|
20
27
|
const batchPromises = Array.from({ length: Math.ceil(calls.length / BATCH_SIZE) }, async (_, index) => {
|
|
@@ -26,6 +33,12 @@ export class Pool {
|
|
|
26
33
|
const batchResults = await Promise.all(batchPromises);
|
|
27
34
|
return batchResults.flat();
|
|
28
35
|
};
|
|
36
|
+
/**
|
|
37
|
+
* Add one or more async tasks to the pool queue and return when all complete.
|
|
38
|
+
*
|
|
39
|
+
* @param calls - Async factory functions to enqueue
|
|
40
|
+
* @returns Resolved values from all enqueued calls
|
|
41
|
+
*/
|
|
29
42
|
enqueue(...calls) {
|
|
30
43
|
return Promise.all(calls.map(call => new Promise((resolve, reject) => {
|
|
31
44
|
this.queue.push({
|
|
@@ -36,6 +49,9 @@ export class Pool {
|
|
|
36
49
|
this.schedule();
|
|
37
50
|
})));
|
|
38
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Drain the queue by starting tasks up to the concurrency limit, applying rate limiting.
|
|
54
|
+
*/
|
|
39
55
|
schedule() {
|
|
40
56
|
while (this.activeCount < this.concurrency && this.queue.length > 0) {
|
|
41
57
|
const { call, resolve, reject } = this.queue.shift();
|
|
@@ -59,6 +75,9 @@ export class Pool {
|
|
|
59
75
|
print() {
|
|
60
76
|
return this._print;
|
|
61
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Rebuild the visual progress bar string reflecting current pool utilisation.
|
|
80
|
+
*/
|
|
62
81
|
updatePrint() {
|
|
63
82
|
const textStart = `${Console.color(this.name.padEnd(16), COLORS.YELLOW)} [POOL][`;
|
|
64
83
|
const textEnd = `][${this.activeCount + this.queue?.length}/${this.concurrency}]`;
|
package/dist/src/Pool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pool.js","sourceRoot":"","sources":["../../src/Pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,MAAM,EAAC,MAAM,cAAc,CAAC;AAC7C,OAAO,cAAc,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"Pool.js","sourceRoot":"","sources":["../../src/Pool.ts"],"names":[],"mappings":"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"}
|
package/dist/src/common.d.ts
CHANGED
|
@@ -2,19 +2,90 @@ export declare class CustomError extends Error {
|
|
|
2
2
|
critical: boolean;
|
|
3
3
|
constructor(message: string, critical?: boolean);
|
|
4
4
|
}
|
|
5
|
+
/**
|
|
6
|
+
* Execute promise factories in sequential batches, resolving groups of `step` at a time.
|
|
7
|
+
*
|
|
8
|
+
* @param promises - Array of async factory functions
|
|
9
|
+
* @param step - Number of promises to run concurrently per batch
|
|
10
|
+
* @param exit - Reserved for future use
|
|
11
|
+
* @returns Flat array of all results
|
|
12
|
+
*/
|
|
5
13
|
export declare function sequentially(promises: Array<() => Promise<unknown>>, step?: number, exit?: boolean): Promise<unknown>;
|
|
14
|
+
/**
|
|
15
|
+
* Execute promise factories with bounded concurrency, optionally halting on error.
|
|
16
|
+
*
|
|
17
|
+
* @param promises - Array of async factory functions
|
|
18
|
+
* @param concurrent - Maximum number of concurrent executions
|
|
19
|
+
* @param stopIfError - If true, reject and stop the pool on the first error
|
|
20
|
+
* @returns Array of results in corresponding order
|
|
21
|
+
*/
|
|
6
22
|
export declare function pool(promises: Array<() => Promise<unknown>>, concurrent: number, stopIfError?: boolean): Promise<any>;
|
|
23
|
+
/**
|
|
24
|
+
* Try each async factory in order and return the first truthy result; throw if none succeeds.
|
|
25
|
+
*
|
|
26
|
+
* @param fns - Array of async factory functions to try sequentially
|
|
27
|
+
* @returns First truthy resolved value
|
|
28
|
+
* @throws {string} When no factory returns a truthy value
|
|
29
|
+
*/
|
|
7
30
|
export declare function promisesFirst<T>(fns: Array<() => Promise<T>>): Promise<T>;
|
|
31
|
+
/**
|
|
32
|
+
* Read and decompress a Brotli-compressed JSON cache file from disk.
|
|
33
|
+
*
|
|
34
|
+
* @param path - Base file path (`.br` extension is appended automatically)
|
|
35
|
+
* @returns Parsed JSON data or null if the file is missing or corrupted
|
|
36
|
+
*/
|
|
8
37
|
export declare function readCache(path: string): JSON;
|
|
38
|
+
/**
|
|
39
|
+
* Serialise data as JSON, compress with Brotli, and write to disk.
|
|
40
|
+
*
|
|
41
|
+
* @param path - Base file path (`.br` extension is appended automatically)
|
|
42
|
+
* @param data - Data to serialise and cache
|
|
43
|
+
*/
|
|
9
44
|
export declare function writeCache(path: string, data: any): void;
|
|
45
|
+
/**
|
|
46
|
+
* Read and parse a JSON file from disk.
|
|
47
|
+
*
|
|
48
|
+
* @param path - File path
|
|
49
|
+
* @param strict - If true, throw when the file does not exist
|
|
50
|
+
* @returns Parsed object or null on failure
|
|
51
|
+
* @throws {Error} When strict is true and the file is missing
|
|
52
|
+
*/
|
|
10
53
|
export declare function readJson(path: string, strict?: boolean): Record<string, any>;
|
|
54
|
+
/**
|
|
55
|
+
* Read and parse a CSV file into an array of row objects.
|
|
56
|
+
*
|
|
57
|
+
* @param path - File path
|
|
58
|
+
* @param delimiter - Column delimiter character
|
|
59
|
+
* @param strict - If true, throw when the file does not exist
|
|
60
|
+
* @returns Array of row objects or null on failure
|
|
61
|
+
* @throws {Error} When strict is true and the file is missing
|
|
62
|
+
*/
|
|
11
63
|
export declare function readCSV(path: string, delimiter?: string, strict?: boolean): Record<string, any>;
|
|
64
|
+
/**
|
|
65
|
+
* Group array elements into a Map keyed by the result of a getter function.
|
|
66
|
+
*
|
|
67
|
+
* @param list - Source array
|
|
68
|
+
* @param keyGetter - Function that extracts the grouping key from each item
|
|
69
|
+
* @returns Map of key to array of matching items
|
|
70
|
+
*/
|
|
12
71
|
export declare function groupBy<T>(list: Array<T>, keyGetter: (item: T) => string): Map<string, T[]>;
|
|
72
|
+
/**
|
|
73
|
+
* Pause execution for a given number of milliseconds, optionally logging a countdown spinner.
|
|
74
|
+
*
|
|
75
|
+
* @param ms - Duration in milliseconds
|
|
76
|
+
* @param feedback - If true, display a countdown spinner in the console
|
|
77
|
+
*/
|
|
13
78
|
export declare function sleep(ms: any, feedback?: boolean): Promise<void>;
|
|
79
|
+
/**
|
|
80
|
+
* Deduplicate an array using Set, preserving insertion order.
|
|
81
|
+
*
|
|
82
|
+
* @param array - Source array
|
|
83
|
+
* @returns New array without duplicates, or undefined if empty/null
|
|
84
|
+
*/
|
|
14
85
|
export declare function unique<T>(array: Array<T>): Array<T> | undefined;
|
|
15
86
|
/**
|
|
16
|
-
*
|
|
17
|
-
* @param str
|
|
18
|
-
* @returns
|
|
87
|
+
* Checks whether a string is valid JSON
|
|
88
|
+
* @param str - String to validate
|
|
89
|
+
* @returns Whether the string is valid JSON
|
|
19
90
|
*/
|
|
20
91
|
export declare function isValidJSON(str: string): boolean;
|