@edgenets/utils 0.1.4 → 0.1.5
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/utils/logger/default.d.ts +13 -0
- package/dist/utils/logger/default.d.ts.map +1 -0
- package/dist/utils/logger/default.js +27 -0
- package/dist/utils/logger/default.js.map +1 -0
- package/dist/utils/tasks/scheduler.d.ts +2 -1
- package/dist/utils/tasks/scheduler.d.ts.map +1 -1
- package/dist/utils/tasks/scheduler.js +5 -4
- package/dist/utils/tasks/scheduler.js.map +1 -1
- package/package.json +1 -1
@@ -0,0 +1,13 @@
|
|
1
|
+
import type { Logger } from "../../types/logger.js";
|
2
|
+
declare class ConsoleLogger implements Logger {
|
3
|
+
private static instance;
|
4
|
+
private constructor();
|
5
|
+
static getInstance(): ConsoleLogger;
|
6
|
+
debug(message: string): void;
|
7
|
+
warn(message: string): void;
|
8
|
+
info(message: string): void;
|
9
|
+
error(message: string): void;
|
10
|
+
}
|
11
|
+
export declare const consoleLogger: ConsoleLogger;
|
12
|
+
export {};
|
13
|
+
//# sourceMappingURL=default.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../src/utils/logger/default.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,cAAM,aAAc,YAAW,MAAM;IACnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA8B;IAErD,OAAO;WAEO,WAAW,IAAI,aAAa;IAO1C,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAG5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAG3B,IAAI,CAAC,OAAO,EAAE,MAAM;IAGpB,KAAK,CAAC,OAAO,EAAE,MAAM;CAGtB;AAGD,eAAO,MAAM,aAAa,eAA8B,CAAC"}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class ConsoleLogger {
|
2
|
+
static instance = null;
|
3
|
+
// 私有构造函数,防止外部实例化
|
4
|
+
constructor() { }
|
5
|
+
// 获取单例实例的静态方法
|
6
|
+
static getInstance() {
|
7
|
+
if (!ConsoleLogger.instance) {
|
8
|
+
ConsoleLogger.instance = new ConsoleLogger();
|
9
|
+
}
|
10
|
+
return ConsoleLogger.instance;
|
11
|
+
}
|
12
|
+
debug(message) {
|
13
|
+
console.debug(`[DEBUG] ${message}`);
|
14
|
+
}
|
15
|
+
warn(message) {
|
16
|
+
console.warn(`[WARN] ${message}`);
|
17
|
+
}
|
18
|
+
info(message) {
|
19
|
+
console.log(`[INFO] ${message}`);
|
20
|
+
}
|
21
|
+
error(message) {
|
22
|
+
console.error(`[ERROR] ${message}`);
|
23
|
+
}
|
24
|
+
}
|
25
|
+
// 导出单一实例,保证全局唯一
|
26
|
+
export const consoleLogger = ConsoleLogger.getInstance();
|
27
|
+
//# sourceMappingURL=default.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"default.js","sourceRoot":"","sources":["../../../src/utils/logger/default.ts"],"names":[],"mappings":"AAEA,MAAM,aAAa;IACT,MAAM,CAAC,QAAQ,GAAyB,IAAI,CAAC;IACrD,iBAAiB;IACjB,gBAAuB,CAAC;IACxB,cAAc;IACP,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC5B,aAAa,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;QAC/C,CAAC;QACD,OAAO,aAAa,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,IAAI,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,KAAK,CAAC,OAAe;QACnB,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;;AAGH,gBAAgB;AAChB,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import type { Logger } from "../../types/logger.js";
|
1
2
|
export type SchedulerTask = () => Promise<boolean>;
|
2
3
|
export interface SchedulerOptions {
|
3
4
|
interval?: number;
|
@@ -12,7 +13,7 @@ declare class Scheduler {
|
|
12
13
|
private tasks;
|
13
14
|
private constructor();
|
14
15
|
static getInstance(): Scheduler;
|
15
|
-
run(task: SchedulerTask, options: SchedulerOptions): void;
|
16
|
+
run(task: SchedulerTask, options: SchedulerOptions, logger?: Logger): void;
|
16
17
|
private handleTaskError;
|
17
18
|
private timeout;
|
18
19
|
private delay;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../src/utils/tasks/scheduler.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,cAAM,SAAS;IACb,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA0B;IACjD,OAAO,CAAC,KAAK,CAA2D;IAExE,OAAO;WAEO,WAAW,IAAI,SAAS;IAO/B,GAAG,
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../src/utils/tasks/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,cAAM,SAAS;IACb,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA0B;IACjD,OAAO,CAAC,KAAK,CAA2D;IAExE,OAAO;WAEO,WAAW,IAAI,SAAS;IAO/B,GAAG,CACR,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,gBAAgB,EACzB,MAAM,GAAE,MAAsB,GAC7B,IAAI;YAuDO,eAAe;IAmB7B,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,KAAK;IAIN,SAAS,IAAI,IAAI;CAMzB;AAGD,eAAO,MAAM,SAAS,WAA0B,CAAC"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { consoleLogger } from "../logger/default.js";
|
1
2
|
class Scheduler {
|
2
3
|
static instance = null;
|
3
4
|
tasks = new Map();
|
@@ -10,7 +11,7 @@ class Scheduler {
|
|
10
11
|
}
|
11
12
|
return Scheduler.instance;
|
12
13
|
}
|
13
|
-
run(task, options) {
|
14
|
+
run(task, options, logger = consoleLogger) {
|
14
15
|
const { interval = 1000, // 默认 1000 毫秒
|
15
16
|
maxRecursions = 0, // 默认不迭代
|
16
17
|
maxRetries = 0, // 默认不重试
|
@@ -24,7 +25,7 @@ class Scheduler {
|
|
24
25
|
const executeTask = async () => {
|
25
26
|
try {
|
26
27
|
if (maxTotalTime && Date.now() - startTime > maxTotalTime) {
|
27
|
-
|
28
|
+
logger.info("达到总的最大执行时间,停止任务。");
|
28
29
|
this.cancelAll();
|
29
30
|
return;
|
30
31
|
}
|
@@ -35,7 +36,7 @@ class Scheduler {
|
|
35
36
|
counter++;
|
36
37
|
if (shouldContinue && counter < maxRecursions) {
|
37
38
|
if (counter % logInterval === 0) {
|
38
|
-
|
39
|
+
logger.info(`递归执行, 第 ${counter} 次, 已执行 ${(Date.now() - startTime) / 1000} 秒`);
|
39
40
|
}
|
40
41
|
this.tasks.set(setTimeout(async () => {
|
41
42
|
await executeTask();
|
@@ -76,7 +77,7 @@ class Scheduler {
|
|
76
77
|
this.tasks.clear();
|
77
78
|
}
|
78
79
|
}
|
79
|
-
//
|
80
|
+
// 导出单一实例,保证全局唯一
|
80
81
|
export const scheduler = Scheduler.getInstance();
|
81
82
|
///////////////
|
82
83
|
// 使用示例
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/utils/tasks/scheduler.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/utils/tasks/scheduler.ts"],"names":[],"mappings":"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"}
|