eternal-timer 2.2.0 → 2.2.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 +1 -1
- package/dist/cjs/JSONLTimersManager.cjs +27 -22
- package/dist/cjs/JSONLTimersManager.d.ts +1 -1
- package/dist/cjs/JSONLTimersManager.d.ts.map +1 -1
- package/dist/cjs/JSONLTimersManager.js.map +1 -1
- package/dist/cjs/PlainTextTimersManager.cjs +29 -21
- package/dist/cjs/PlainTextTimersManager.d.ts +1 -1
- package/dist/cjs/PlainTextTimersManager.d.ts.map +1 -1
- package/dist/cjs/PlainTextTimersManager.js.map +1 -1
- package/dist/cjs/TimersManager.d.ts +1 -1
- package/dist/esm/JSONLTimersManager.d.ts +1 -1
- package/dist/esm/JSONLTimersManager.d.ts.map +1 -1
- package/dist/esm/JSONLTimersManager.js +27 -22
- package/dist/esm/JSONLTimersManager.js.map +1 -1
- package/dist/esm/PlainTextTimersManager.d.ts +1 -1
- package/dist/esm/PlainTextTimersManager.d.ts.map +1 -1
- package/dist/esm/PlainTextTimersManager.js +29 -21
- package/dist/esm/PlainTextTimersManager.js.map +1 -1
- package/dist/esm/TimersManager.d.ts +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -127,7 +127,7 @@ The callback is awaited before the next timer check continues.
|
|
|
127
127
|
|
|
128
128
|
**Parameters:**
|
|
129
129
|
- `callback`: Function invoked when an expired timer is detected (called during periodic checks and awaited)
|
|
130
|
-
- `interval` (number, optional): Check interval in milliseconds (default:
|
|
130
|
+
- `interval` (number, optional): Check interval in milliseconds (default: 200ms)
|
|
131
131
|
|
|
132
132
|
**Returns:** interval id of checkTimers
|
|
133
133
|
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.JSONLTimersManager = void 0;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const uuid_1 = require("uuid");
|
|
9
|
+
const readline_1 = __importDefault(require("readline"));
|
|
9
10
|
const TimersManager_js_1 = require("./TimersManager.cjs");
|
|
10
11
|
const Log_js_1 = require("./Log.cjs");
|
|
11
12
|
/**
|
|
@@ -95,15 +96,16 @@ class JSONLTimersManager extends TimersManager_js_1.TimersManager {
|
|
|
95
96
|
try {
|
|
96
97
|
const timersRaw = await fs_1.default.promises.readFile(this.timerfiledir, "utf-8");
|
|
97
98
|
await this.checkTimerfileSyntax(timersRaw);
|
|
99
|
+
const rl = readline_1.default.createInterface({
|
|
100
|
+
input: fs_1.default.createReadStream(this.timerfiledir),
|
|
101
|
+
crlfDelay: Infinity,
|
|
102
|
+
});
|
|
98
103
|
let newTimersData = "";
|
|
99
|
-
const timersData = timersRaw
|
|
100
|
-
.split(/\r?\n/)
|
|
101
|
-
.filter(t => t.trim())
|
|
102
|
-
.map(line => JSON.parse(line));
|
|
103
104
|
let found = false;
|
|
104
|
-
for (const
|
|
105
|
-
if (!
|
|
105
|
+
for await (const line of rl) {
|
|
106
|
+
if (!line.trim())
|
|
106
107
|
continue;
|
|
108
|
+
const timerData = JSON.parse(line);
|
|
107
109
|
if (timerData.id === id) {
|
|
108
110
|
found = true;
|
|
109
111
|
continue;
|
|
@@ -124,7 +126,7 @@ class JSONLTimersManager extends TimersManager_js_1.TimersManager {
|
|
|
124
126
|
* @description Starts monitoring expired timers asynchronously and returns immediately. The callback is invoked asynchronously when a timer expires.
|
|
125
127
|
* The callback is awaited before continuing.
|
|
126
128
|
* @param callback Function invoked when an expired timer is detected (called asynchronously)
|
|
127
|
-
* @param interval (number, optional): Check interval in milliseconds (default:
|
|
129
|
+
* @param interval (number, optional): Check interval in milliseconds (default: 200ms)
|
|
128
130
|
* @throws If file operation fails
|
|
129
131
|
* @returns (NodeJS.Timeout) intervalId interval id of checkTimers
|
|
130
132
|
* @example
|
|
@@ -132,26 +134,29 @@ class JSONLTimersManager extends TimersManager_js_1.TimersManager {
|
|
|
132
134
|
* console.log(`A timer was stopped: ${timer.id}`);
|
|
133
135
|
* });
|
|
134
136
|
*/
|
|
135
|
-
checkTimers(callback, interval =
|
|
137
|
+
checkTimers(callback, interval = 200) {
|
|
136
138
|
return setInterval(async () => {
|
|
137
139
|
if (this.checkLock)
|
|
138
140
|
return;
|
|
139
141
|
this.checkLock = true;
|
|
140
142
|
try {
|
|
141
|
-
const
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
143
|
+
const rl = readline_1.default.createInterface({
|
|
144
|
+
input: fs_1.default.createReadStream(this.timerfiledir),
|
|
145
|
+
crlfDelay: Infinity,
|
|
146
|
+
});
|
|
147
|
+
for await (const line of rl) {
|
|
148
|
+
if (!line.trim())
|
|
149
|
+
continue;
|
|
150
|
+
const timerData = JSON.parse(line);
|
|
151
|
+
const now = Date.now();
|
|
152
|
+
if (Number(timerData.stop) <= now) {
|
|
153
|
+
await this.removeTimer(timerData.id);
|
|
154
|
+
callback(timerData).catch(async (e) => {
|
|
155
|
+
await Log_js_1.Log.ensureLogger();
|
|
156
|
+
if (Log_js_1.Log.loggerInstance) {
|
|
157
|
+
Log_js_1.Log.loggerInstance.error(`Error in callback of checkTimers: ${e}`);
|
|
158
|
+
}
|
|
159
|
+
});
|
|
155
160
|
}
|
|
156
161
|
}
|
|
157
162
|
}
|
|
@@ -40,7 +40,7 @@ export declare class JSONLTimersManager extends TimersManager {
|
|
|
40
40
|
* @description Starts monitoring expired timers asynchronously and returns immediately. The callback is invoked asynchronously when a timer expires.
|
|
41
41
|
* The callback is awaited before continuing.
|
|
42
42
|
* @param callback Function invoked when an expired timer is detected (called asynchronously)
|
|
43
|
-
* @param interval (number, optional): Check interval in milliseconds (default:
|
|
43
|
+
* @param interval (number, optional): Check interval in milliseconds (default: 200ms)
|
|
44
44
|
* @throws If file operation fails
|
|
45
45
|
* @returns (NodeJS.Timeout) intervalId interval id of checkTimers
|
|
46
46
|
* @example
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JSONLTimersManager.d.ts","sourceRoot":"","sources":["../../src/JSONLTimersManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"JSONLTimersManager.d.ts","sourceRoot":"","sources":["../../src/JSONLTimersManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD;;;;;;;;GAQG;AACH,qBAAa,kBAAmB,SAAQ,aAAa;IACpD,SAAS,CAAC,kBAAkB,IAAI,MAAM;cAItB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBrE;;;;;;;;;;;;OAYM;IACO,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4B/F;;;;;;;;OAQM;IACO,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCnD;;;;;;;;;;;OAWM;IACC,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAE,MAAY,GAAG,MAAM,CAAC,OAAO;IAoCrG;;;;;;;;OAQM;IACO,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;CAa3C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JSONLTimersManager.js","sourceRoot":"","sources":["../../src/JSONLTimersManager.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,+BAAoC;
|
|
1
|
+
{"version":3,"file":"JSONLTimersManager.js","sourceRoot":"","sources":["../../src/JSONLTimersManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.PlainTextTimersManager = void 0;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const uuid_1 = require("uuid");
|
|
9
|
+
const readline_1 = __importDefault(require("readline"));
|
|
9
10
|
const TimersManager_js_1 = require("./TimersManager.cjs");
|
|
10
11
|
const Log_js_1 = require("./Log.cjs");
|
|
11
12
|
class PlainTextTimersManager extends TimersManager_js_1.TimersManager {
|
|
@@ -83,23 +84,26 @@ class PlainTextTimersManager extends TimersManager_js_1.TimersManager {
|
|
|
83
84
|
try {
|
|
84
85
|
const timersRaw = await fs_1.default.promises.readFile(this.timerfiledir, "utf-8");
|
|
85
86
|
await this.checkTimerfileSyntax(timersRaw);
|
|
86
|
-
const
|
|
87
|
-
|
|
87
|
+
const rl = readline_1.default.createInterface({
|
|
88
|
+
input: fs_1.default.createReadStream(this.timerfiledir),
|
|
89
|
+
crlfDelay: Infinity,
|
|
90
|
+
});
|
|
91
|
+
const newTimersDataLines = [];
|
|
88
92
|
let found = false;
|
|
89
|
-
for (const
|
|
90
|
-
if (!
|
|
93
|
+
for await (const line of rl) {
|
|
94
|
+
if (!line.trim())
|
|
91
95
|
continue;
|
|
92
|
-
const [timerId] =
|
|
96
|
+
const [timerId] = line.split(" ");
|
|
93
97
|
if (timerId === id) {
|
|
94
98
|
found = true;
|
|
95
99
|
continue;
|
|
96
100
|
}
|
|
97
|
-
|
|
101
|
+
newTimersDataLines.push(line);
|
|
98
102
|
}
|
|
99
103
|
if (!found) {
|
|
100
104
|
throw new Error(`Timer with id ${id} not found`);
|
|
101
105
|
}
|
|
102
|
-
await fs_1.default.promises.writeFile(this.timerfiledir,
|
|
106
|
+
await fs_1.default.promises.writeFile(this.timerfiledir, newTimersDataLines.join("\n"), "utf-8");
|
|
103
107
|
return;
|
|
104
108
|
}
|
|
105
109
|
catch (e) {
|
|
@@ -111,7 +115,7 @@ class PlainTextTimersManager extends TimersManager_js_1.TimersManager {
|
|
|
111
115
|
* @description Starts monitoring expired timers asynchronously and returns immediately. The callback is invoked asynchronously when a timer expires.
|
|
112
116
|
* The callback is awaited before continuing.
|
|
113
117
|
* @param callback Function invoked when an expired timer is detected (called asynchronously)
|
|
114
|
-
* @param interval (number, optional): Check interval in milliseconds (default:
|
|
118
|
+
* @param interval (number, optional): Check interval in milliseconds (default: 200ms)
|
|
115
119
|
* @throws If file operation fails
|
|
116
120
|
* @returns (NodeJS.Timeout) intervalId interval id of checkTimers
|
|
117
121
|
* @example
|
|
@@ -119,30 +123,34 @@ class PlainTextTimersManager extends TimersManager_js_1.TimersManager {
|
|
|
119
123
|
* console.log(`A timer was stopped: ${timer.id}`);
|
|
120
124
|
* });
|
|
121
125
|
*/
|
|
122
|
-
checkTimers(callback, interval =
|
|
126
|
+
checkTimers(callback, interval = 200) {
|
|
123
127
|
return setInterval(async () => {
|
|
124
128
|
if (this.checkLock)
|
|
125
129
|
return;
|
|
126
130
|
this.checkLock = true;
|
|
127
131
|
try {
|
|
128
|
-
const
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
132
|
+
const rl = readline_1.default.createInterface({
|
|
133
|
+
input: fs_1.default.createReadStream(this.timerfiledir),
|
|
134
|
+
crlfDelay: Infinity,
|
|
135
|
+
});
|
|
136
|
+
for await (const line of rl) {
|
|
137
|
+
if (!line.trim())
|
|
133
138
|
continue;
|
|
134
|
-
const [id, startStr, stopStr] =
|
|
135
|
-
|
|
139
|
+
const [id, startStr, stopStr] = line.split(" ");
|
|
140
|
+
const timer = {
|
|
136
141
|
id: id,
|
|
137
142
|
start: Number(startStr),
|
|
138
143
|
stop: Number(stopStr),
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
const now = Date.now();
|
|
142
|
-
for (const timer of timersMap.values()) {
|
|
144
|
+
};
|
|
145
|
+
const now = Date.now();
|
|
143
146
|
if (Number(timer.stop) <= now) {
|
|
144
147
|
await this.removeTimer(timer.id);
|
|
145
|
-
|
|
148
|
+
callback(timer).catch(async (e) => {
|
|
149
|
+
await Log_js_1.Log.ensureLogger();
|
|
150
|
+
if (Log_js_1.Log.loggerInstance) {
|
|
151
|
+
Log_js_1.Log.loggerInstance.error(`Error in timer callback: ${e}`);
|
|
152
|
+
}
|
|
153
|
+
});
|
|
146
154
|
}
|
|
147
155
|
}
|
|
148
156
|
}
|
|
@@ -37,7 +37,7 @@ export declare class PlainTextTimersManager extends TimersManager {
|
|
|
37
37
|
* @description Starts monitoring expired timers asynchronously and returns immediately. The callback is invoked asynchronously when a timer expires.
|
|
38
38
|
* The callback is awaited before continuing.
|
|
39
39
|
* @param callback Function invoked when an expired timer is detected (called asynchronously)
|
|
40
|
-
* @param interval (number, optional): Check interval in milliseconds (default:
|
|
40
|
+
* @param interval (number, optional): Check interval in milliseconds (default: 200ms)
|
|
41
41
|
* @throws If file operation fails
|
|
42
42
|
* @returns (NodeJS.Timeout) intervalId interval id of checkTimers
|
|
43
43
|
* @example
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlainTextTimersManager.d.ts","sourceRoot":"","sources":["../../src/PlainTextTimersManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlainTextTimersManager.d.ts","sourceRoot":"","sources":["../../src/PlainTextTimersManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,qBAAa,sBAAuB,SAAQ,aAAa;IACxD,SAAS,CAAC,kBAAkB,IAAI,MAAM;IAItC;;;;;;OAMG;cACa,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBrE;;;;;;;;;;OAUG;IACU,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAsBzD;;;;;;;;OAQG;IACU,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BnD;;;;;;;;;;;;OAYG;IACI,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAE,MAAY,GAAG,MAAM,CAAC,OAAO;IAyCrG;;;;;;;;OAQG;IACU,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;CAoB3C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlainTextTimersManager.js","sourceRoot":"","sources":["../../src/PlainTextTimersManager.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,+BAAoC;
|
|
1
|
+
{"version":3,"file":"PlainTextTimersManager.js","sourceRoot":"","sources":["../../src/PlainTextTimersManager.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,+BAAoC;AACpC,wDAAgC;AAGhC,yDAAmD;AACnD,qCAA+B;AAE/B,MAAa,sBAAuB,SAAQ,gCAAa;IAC9C,kBAAkB;QAC3B,OAAO,SAAS,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,oBAAoB,CAAC,QAAgB;QACpD,MAAM,QAAQ,GAAG,GAAG,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACjD,CAAC,CAAC;QACF,MAAM,UAAU,GAAG,QAAQ;aACzB,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACxB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACpC,MAAM,UAAU,GAAa,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;gBAAE,QAAQ,EAAE,CAAC;YACxC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,EAAE;gBAAE,QAAQ,EAAE,CAAC;YAC7C,IAAI,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,QAAQ,EAAE,CAAC;YAC7C,IAAI,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,QAAQ,EAAE,CAAC;QAC9C,CAAC;QACD,OAAO;IACR,CAAC;IAED;;;;;;;;;;OAUG;IACI,KAAK,CAAC,WAAW,CAAC,MAAc;QACtC,IAAI,CAAC;YACJ,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC;YAC/C,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACzE,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAE3C,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAE5B,mBAAmB;YACnB,MAAM,EAAE,GAAG,IAAA,SAAM,GAAE,CAAC;YACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,YAAY,GAAG,GAAG,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC5E,MAAM,YAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC,CAAC;YACrE,OAAO,EAAE,CAAC;QACX,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;IACF,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,WAAW,CAAC,EAAU;QAClC,IAAI,CAAC;YACJ,MAAM,SAAS,GAAW,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACjF,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAE3C,MAAM,EAAE,GAAG,kBAAQ,CAAC,eAAe,CAAC;gBACnC,KAAK,EAAE,YAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC;gBAC7C,SAAS,EAAE,QAAQ;aACnB,CAAC,CAAC;YACH,MAAM,kBAAkB,GAAa,EAAE,CAAC;YACxC,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBAAE,SAAS;gBAC3B,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;oBACpB,KAAK,GAAG,IAAI,CAAC;oBACb,SAAS;gBACV,CAAC;gBACD,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;YACD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;YAClD,CAAC;YACD,MAAM,YAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YACvF,OAAO;QACR,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;IACF,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,WAAW,CAAC,QAAyC,EAAE,WAAmB,GAAG;QACnF,OAAO,WAAW,CAAC,KAAK,IAAI,EAAE;YAC7B,IAAI,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAEtB,IAAI,CAAC;gBACJ,MAAM,EAAE,GAAG,kBAAQ,CAAC,eAAe,CAAC;oBACnC,KAAK,EAAE,YAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC;oBAC7C,SAAS,EAAE,QAAQ;iBACnB,CAAC,CAAC;gBAEH,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC;oBAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;wBAAE,SAAS;oBAC3B,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAChD,MAAM,KAAK,GAAU;wBACpB,EAAE,EAAE,EAAG;wBACP,KAAK,EAAE,MAAM,CAAC,QAAS,CAAC;wBACxB,IAAI,EAAE,MAAM,CAAC,OAAQ,CAAC;qBACtB,CAAC;oBACF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACvB,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;wBAC/B,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBACjC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;4BACjC,MAAM,YAAG,CAAC,YAAY,EAAE,CAAC;4BACzB,IAAI,YAAG,CAAC,cAAc,EAAE,CAAC;gCACxB,YAAG,CAAC,cAAc,CAAC,KAAK,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC;4BAC3D,CAAC;wBACF,CAAC,CAAC,CAAC;oBACJ,CAAC;gBACF,CAAC;YACF,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,MAAM,YAAG,CAAC,YAAY,EAAE,CAAC;gBACzB,IAAI,YAAG,CAAC,cAAc,EAAE,CAAC;oBACxB,YAAG,CAAC,cAAc,CAAC,KAAK,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;gBAC7D,CAAC;YACF,CAAC;oBAAS,CAAC;gBACV,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACxB,CAAC;QACF,CAAC,EAAE,QAAQ,CAAC,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,UAAU;QACtB,IAAI,CAAC;YACJ,MAAM,SAAS,GAAW,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACjF,MAAM,UAAU,GAAa,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEtD,MAAM,UAAU,GAAY,EAAE,CAAC;YAC/B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACpC,MAAM,gBAAgB,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;oBAAE,SAAS;gBAChC,UAAU,CAAC,IAAI,CAAC;oBACf,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAE;oBACxB,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAE,CAAC;oBACnC,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAE,CAAC;iBAClC,CAAC,CAAC;YACJ,CAAC;YACD,OAAO,UAAU,CAAC;QACnB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;IACF,CAAC;CACD;AAzLD,wDAyLC"}
|
|
@@ -52,7 +52,7 @@ export declare abstract class TimersManager {
|
|
|
52
52
|
* @description Starts monitoring expired timers asynchronously and returns immediately. The callback is invoked asynchronously when a timer expires.
|
|
53
53
|
* The callback is awaited before continuing.
|
|
54
54
|
* @param callback Function invoked when an expired timer is detected (called asynchronously)
|
|
55
|
-
* @param interval (number, optional): Check interval in milliseconds (default:
|
|
55
|
+
* @param interval (number, optional): Check interval in milliseconds (default: 200ms)
|
|
56
56
|
* @throws If file operation fails
|
|
57
57
|
* @returns (NodeJS.Timeout) intervalId interval id of checkTimers
|
|
58
58
|
* @example
|
|
@@ -40,7 +40,7 @@ export declare class JSONLTimersManager extends TimersManager {
|
|
|
40
40
|
* @description Starts monitoring expired timers asynchronously and returns immediately. The callback is invoked asynchronously when a timer expires.
|
|
41
41
|
* The callback is awaited before continuing.
|
|
42
42
|
* @param callback Function invoked when an expired timer is detected (called asynchronously)
|
|
43
|
-
* @param interval (number, optional): Check interval in milliseconds (default:
|
|
43
|
+
* @param interval (number, optional): Check interval in milliseconds (default: 200ms)
|
|
44
44
|
* @throws If file operation fails
|
|
45
45
|
* @returns (NodeJS.Timeout) intervalId interval id of checkTimers
|
|
46
46
|
* @example
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JSONLTimersManager.d.ts","sourceRoot":"","sources":["../../src/JSONLTimersManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"JSONLTimersManager.d.ts","sourceRoot":"","sources":["../../src/JSONLTimersManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD;;;;;;;;GAQG;AACH,qBAAa,kBAAmB,SAAQ,aAAa;IACpD,SAAS,CAAC,kBAAkB,IAAI,MAAM;cAItB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBrE;;;;;;;;;;;;OAYM;IACO,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4B/F;;;;;;;;OAQM;IACO,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCnD;;;;;;;;;;;OAWM;IACC,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAE,MAAY,GAAG,MAAM,CAAC,OAAO;IAoCrG;;;;;;;;OAQM;IACO,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;CAa3C"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
2
|
import { v4 as uuidv4 } from "uuid";
|
|
3
|
+
import readline from "readline";
|
|
3
4
|
import { TimersManager } from "./TimersManager.js";
|
|
4
5
|
import { Log } from "./Log.js";
|
|
5
6
|
/**
|
|
@@ -89,15 +90,16 @@ export class JSONLTimersManager extends TimersManager {
|
|
|
89
90
|
try {
|
|
90
91
|
const timersRaw = await fs.promises.readFile(this.timerfiledir, "utf-8");
|
|
91
92
|
await this.checkTimerfileSyntax(timersRaw);
|
|
93
|
+
const rl = readline.createInterface({
|
|
94
|
+
input: fs.createReadStream(this.timerfiledir),
|
|
95
|
+
crlfDelay: Infinity,
|
|
96
|
+
});
|
|
92
97
|
let newTimersData = "";
|
|
93
|
-
const timersData = timersRaw
|
|
94
|
-
.split(/\r?\n/)
|
|
95
|
-
.filter(t => t.trim())
|
|
96
|
-
.map(line => JSON.parse(line));
|
|
97
98
|
let found = false;
|
|
98
|
-
for (const
|
|
99
|
-
if (!
|
|
99
|
+
for await (const line of rl) {
|
|
100
|
+
if (!line.trim())
|
|
100
101
|
continue;
|
|
102
|
+
const timerData = JSON.parse(line);
|
|
101
103
|
if (timerData.id === id) {
|
|
102
104
|
found = true;
|
|
103
105
|
continue;
|
|
@@ -118,7 +120,7 @@ export class JSONLTimersManager extends TimersManager {
|
|
|
118
120
|
* @description Starts monitoring expired timers asynchronously and returns immediately. The callback is invoked asynchronously when a timer expires.
|
|
119
121
|
* The callback is awaited before continuing.
|
|
120
122
|
* @param callback Function invoked when an expired timer is detected (called asynchronously)
|
|
121
|
-
* @param interval (number, optional): Check interval in milliseconds (default:
|
|
123
|
+
* @param interval (number, optional): Check interval in milliseconds (default: 200ms)
|
|
122
124
|
* @throws If file operation fails
|
|
123
125
|
* @returns (NodeJS.Timeout) intervalId interval id of checkTimers
|
|
124
126
|
* @example
|
|
@@ -126,26 +128,29 @@ export class JSONLTimersManager extends TimersManager {
|
|
|
126
128
|
* console.log(`A timer was stopped: ${timer.id}`);
|
|
127
129
|
* });
|
|
128
130
|
*/
|
|
129
|
-
checkTimers(callback, interval =
|
|
131
|
+
checkTimers(callback, interval = 200) {
|
|
130
132
|
return setInterval(async () => {
|
|
131
133
|
if (this.checkLock)
|
|
132
134
|
return;
|
|
133
135
|
this.checkLock = true;
|
|
134
136
|
try {
|
|
135
|
-
const
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
137
|
+
const rl = readline.createInterface({
|
|
138
|
+
input: fs.createReadStream(this.timerfiledir),
|
|
139
|
+
crlfDelay: Infinity,
|
|
140
|
+
});
|
|
141
|
+
for await (const line of rl) {
|
|
142
|
+
if (!line.trim())
|
|
143
|
+
continue;
|
|
144
|
+
const timerData = JSON.parse(line);
|
|
145
|
+
const now = Date.now();
|
|
146
|
+
if (Number(timerData.stop) <= now) {
|
|
147
|
+
await this.removeTimer(timerData.id);
|
|
148
|
+
callback(timerData).catch(async (e) => {
|
|
149
|
+
await Log.ensureLogger();
|
|
150
|
+
if (Log.loggerInstance) {
|
|
151
|
+
Log.loggerInstance.error(`Error in callback of checkTimers: ${e}`);
|
|
152
|
+
}
|
|
153
|
+
});
|
|
149
154
|
}
|
|
150
155
|
}
|
|
151
156
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JSONLTimersManager.js","sourceRoot":"","sources":["../../src/JSONLTimersManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"JSONLTimersManager.js","sourceRoot":"","sources":["../../src/JSONLTimersManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,7 +37,7 @@ export declare class PlainTextTimersManager extends TimersManager {
|
|
|
37
37
|
* @description Starts monitoring expired timers asynchronously and returns immediately. The callback is invoked asynchronously when a timer expires.
|
|
38
38
|
* The callback is awaited before continuing.
|
|
39
39
|
* @param callback Function invoked when an expired timer is detected (called asynchronously)
|
|
40
|
-
* @param interval (number, optional): Check interval in milliseconds (default:
|
|
40
|
+
* @param interval (number, optional): Check interval in milliseconds (default: 200ms)
|
|
41
41
|
* @throws If file operation fails
|
|
42
42
|
* @returns (NodeJS.Timeout) intervalId interval id of checkTimers
|
|
43
43
|
* @example
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlainTextTimersManager.d.ts","sourceRoot":"","sources":["../../src/PlainTextTimersManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlainTextTimersManager.d.ts","sourceRoot":"","sources":["../../src/PlainTextTimersManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,qBAAa,sBAAuB,SAAQ,aAAa;IACxD,SAAS,CAAC,kBAAkB,IAAI,MAAM;IAItC;;;;;;OAMG;cACa,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBrE;;;;;;;;;;OAUG;IACU,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAsBzD;;;;;;;;OAQG;IACU,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BnD;;;;;;;;;;;;OAYG;IACI,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAE,MAAY,GAAG,MAAM,CAAC,OAAO;IAyCrG;;;;;;;;OAQG;IACU,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;CAoB3C"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
2
|
import { v4 as uuidv4 } from "uuid";
|
|
3
|
+
import readline from "readline";
|
|
3
4
|
import { TimersManager } from "./TimersManager.js";
|
|
4
5
|
import { Log } from "./Log.js";
|
|
5
6
|
export class PlainTextTimersManager extends TimersManager {
|
|
@@ -77,23 +78,26 @@ export class PlainTextTimersManager extends TimersManager {
|
|
|
77
78
|
try {
|
|
78
79
|
const timersRaw = await fs.promises.readFile(this.timerfiledir, "utf-8");
|
|
79
80
|
await this.checkTimerfileSyntax(timersRaw);
|
|
80
|
-
const
|
|
81
|
-
|
|
81
|
+
const rl = readline.createInterface({
|
|
82
|
+
input: fs.createReadStream(this.timerfiledir),
|
|
83
|
+
crlfDelay: Infinity,
|
|
84
|
+
});
|
|
85
|
+
const newTimersDataLines = [];
|
|
82
86
|
let found = false;
|
|
83
|
-
for (const
|
|
84
|
-
if (!
|
|
87
|
+
for await (const line of rl) {
|
|
88
|
+
if (!line.trim())
|
|
85
89
|
continue;
|
|
86
|
-
const [timerId] =
|
|
90
|
+
const [timerId] = line.split(" ");
|
|
87
91
|
if (timerId === id) {
|
|
88
92
|
found = true;
|
|
89
93
|
continue;
|
|
90
94
|
}
|
|
91
|
-
|
|
95
|
+
newTimersDataLines.push(line);
|
|
92
96
|
}
|
|
93
97
|
if (!found) {
|
|
94
98
|
throw new Error(`Timer with id ${id} not found`);
|
|
95
99
|
}
|
|
96
|
-
await fs.promises.writeFile(this.timerfiledir,
|
|
100
|
+
await fs.promises.writeFile(this.timerfiledir, newTimersDataLines.join("\n"), "utf-8");
|
|
97
101
|
return;
|
|
98
102
|
}
|
|
99
103
|
catch (e) {
|
|
@@ -105,7 +109,7 @@ export class PlainTextTimersManager extends TimersManager {
|
|
|
105
109
|
* @description Starts monitoring expired timers asynchronously and returns immediately. The callback is invoked asynchronously when a timer expires.
|
|
106
110
|
* The callback is awaited before continuing.
|
|
107
111
|
* @param callback Function invoked when an expired timer is detected (called asynchronously)
|
|
108
|
-
* @param interval (number, optional): Check interval in milliseconds (default:
|
|
112
|
+
* @param interval (number, optional): Check interval in milliseconds (default: 200ms)
|
|
109
113
|
* @throws If file operation fails
|
|
110
114
|
* @returns (NodeJS.Timeout) intervalId interval id of checkTimers
|
|
111
115
|
* @example
|
|
@@ -113,30 +117,34 @@ export class PlainTextTimersManager extends TimersManager {
|
|
|
113
117
|
* console.log(`A timer was stopped: ${timer.id}`);
|
|
114
118
|
* });
|
|
115
119
|
*/
|
|
116
|
-
checkTimers(callback, interval =
|
|
120
|
+
checkTimers(callback, interval = 200) {
|
|
117
121
|
return setInterval(async () => {
|
|
118
122
|
if (this.checkLock)
|
|
119
123
|
return;
|
|
120
124
|
this.checkLock = true;
|
|
121
125
|
try {
|
|
122
|
-
const
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
126
|
+
const rl = readline.createInterface({
|
|
127
|
+
input: fs.createReadStream(this.timerfiledir),
|
|
128
|
+
crlfDelay: Infinity,
|
|
129
|
+
});
|
|
130
|
+
for await (const line of rl) {
|
|
131
|
+
if (!line.trim())
|
|
127
132
|
continue;
|
|
128
|
-
const [id, startStr, stopStr] =
|
|
129
|
-
|
|
133
|
+
const [id, startStr, stopStr] = line.split(" ");
|
|
134
|
+
const timer = {
|
|
130
135
|
id: id,
|
|
131
136
|
start: Number(startStr),
|
|
132
137
|
stop: Number(stopStr),
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
const now = Date.now();
|
|
136
|
-
for (const timer of timersMap.values()) {
|
|
138
|
+
};
|
|
139
|
+
const now = Date.now();
|
|
137
140
|
if (Number(timer.stop) <= now) {
|
|
138
141
|
await this.removeTimer(timer.id);
|
|
139
|
-
|
|
142
|
+
callback(timer).catch(async (e) => {
|
|
143
|
+
await Log.ensureLogger();
|
|
144
|
+
if (Log.loggerInstance) {
|
|
145
|
+
Log.loggerInstance.error(`Error in timer callback: ${e}`);
|
|
146
|
+
}
|
|
147
|
+
});
|
|
140
148
|
}
|
|
141
149
|
}
|
|
142
150
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlainTextTimersManager.js","sourceRoot":"","sources":["../../src/PlainTextTimersManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"PlainTextTimersManager.js","sourceRoot":"","sources":["../../src/PlainTextTimersManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,7 +52,7 @@ export declare abstract class TimersManager {
|
|
|
52
52
|
* @description Starts monitoring expired timers asynchronously and returns immediately. The callback is invoked asynchronously when a timer expires.
|
|
53
53
|
* The callback is awaited before continuing.
|
|
54
54
|
* @param callback Function invoked when an expired timer is detected (called asynchronously)
|
|
55
|
-
* @param interval (number, optional): Check interval in milliseconds (default:
|
|
55
|
+
* @param interval (number, optional): Check interval in milliseconds (default: 200ms)
|
|
56
56
|
* @throws If file operation fails
|
|
57
57
|
* @returns (NodeJS.Timeout) intervalId interval id of checkTimers
|
|
58
58
|
* @example
|