eternal-timer 1.2.1 → 1.2.2
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/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -10
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export type Timer = {
|
|
2
|
+
id: string;
|
|
3
|
+
start: string;
|
|
4
|
+
stop: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function createTimer(length: number): Promise<string>;
|
|
3
7
|
export declare function removeTimer(id: string): Promise<boolean>;
|
|
4
8
|
export declare function checkTimers(callback: (timer: Timer) => void, interval?: number): Promise<void>;
|
|
5
9
|
export declare function showTimers(): Promise<Timer[]>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,KAAK,GAAG;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAA;CACf,CAAA;AAeD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBjE;AAED,wBAAsB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAY9D;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAAE,QAAQ,GAAE,MAAW,iBAiCxF;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAmBnD"}
|
package/dist/index.js
CHANGED
|
@@ -16,15 +16,19 @@ async function createFile() {
|
|
|
16
16
|
export async function createTimer(length) {
|
|
17
17
|
try {
|
|
18
18
|
await createFile();
|
|
19
|
+
if (length < 0) {
|
|
20
|
+
throw new Error(`Invailed length: ${length}`);
|
|
21
|
+
}
|
|
22
|
+
length = Math.trunc(length);
|
|
19
23
|
// uuid, start, end
|
|
20
24
|
const id = uuidv4();
|
|
21
|
-
const
|
|
22
|
-
|
|
25
|
+
const now = Date.now();
|
|
26
|
+
const newTimerData = `${id} ${now.toString()} ${(now + length).toString()}`;
|
|
27
|
+
await fs.promises.appendFile(timerfiledir, newTimerData + "\n");
|
|
23
28
|
return id;
|
|
24
29
|
}
|
|
25
30
|
catch (e) {
|
|
26
|
-
|
|
27
|
-
return null;
|
|
31
|
+
throw new Error(`Error when creating timer: ${e}`);
|
|
28
32
|
}
|
|
29
33
|
}
|
|
30
34
|
export async function removeTimer(id) {
|
|
@@ -32,20 +36,21 @@ export async function removeTimer(id) {
|
|
|
32
36
|
const timersRaw = fs.readFileSync(timerfiledir, "utf-8");
|
|
33
37
|
const timersData = timersRaw.split(/\r?\n/);
|
|
34
38
|
const filteredTimers = timersData.filter(line => line.split(" ")[0] !== id);
|
|
35
|
-
fs.
|
|
39
|
+
await fs.promises.writeFile(timerfiledir, filteredTimers.join("\n"), "utf-8");
|
|
36
40
|
return true;
|
|
37
41
|
}
|
|
38
42
|
catch (e) {
|
|
39
|
-
|
|
40
|
-
return false;
|
|
43
|
+
throw new Error(`Error when removing timer: ${e}`);
|
|
41
44
|
}
|
|
42
45
|
}
|
|
43
46
|
export async function checkTimers(callback, interval = 50) {
|
|
44
47
|
try {
|
|
45
48
|
await createFile();
|
|
46
49
|
setInterval(() => {
|
|
47
|
-
const
|
|
50
|
+
const timersDataRaw = fs.readFileSync(timerfiledir, "utf-8");
|
|
51
|
+
const timersData = timersDataRaw.split(/\r?\n/);
|
|
48
52
|
const timersSet = new Set();
|
|
53
|
+
checkTimerfileSyntax(timersDataRaw);
|
|
49
54
|
for (const timerData of timersData) {
|
|
50
55
|
if (!timerData.trim())
|
|
51
56
|
continue;
|
|
@@ -86,8 +91,25 @@ export async function showTimers() {
|
|
|
86
91
|
return timersJSON;
|
|
87
92
|
}
|
|
88
93
|
catch (e) {
|
|
89
|
-
|
|
90
|
-
|
|
94
|
+
throw new Error(`Error when showing timers: ${e}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
async function checkTimerfileSyntax(fileData) {
|
|
98
|
+
const throwing = () => {
|
|
99
|
+
throw new Error(`Timer file's syntax is wrong`);
|
|
100
|
+
};
|
|
101
|
+
const timersData = fileData.trim().split('\n');
|
|
102
|
+
for (const timerData of timersData) {
|
|
103
|
+
const timerArray = timerData.split(/\s+/);
|
|
104
|
+
if (timerArray.length !== 3)
|
|
105
|
+
throwing();
|
|
106
|
+
if (timerArray[0]?.length !== 36)
|
|
107
|
+
throwing();
|
|
108
|
+
if (timerArray[1].trim() === "")
|
|
109
|
+
throwing();
|
|
110
|
+
if (timerArray[2].trim() === "")
|
|
111
|
+
throwing();
|
|
91
112
|
}
|
|
113
|
+
return;
|
|
92
114
|
}
|
|
93
115
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAQpC,gCAAgC;AAChC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;AAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAEnD,KAAK,UAAU,UAAU;IACrB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/B,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;YACpC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,YAAY,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACP,CAAC;IACD,OAAO;AACX,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAc;IAC5C,IAAI,CAAC;QACD,MAAM,UAAU,EAAE,CAAC;QAEnB,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE5B,mBAAmB;QACnB,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,GAAG,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC5E,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC,CAAC;QAChE,OAAO,EAAE,CAAC;IACd,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAU;IACxC,IAAI,CAAC;QACD,MAAM,SAAS,GAAW,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,UAAU,GAAa,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEtD,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAE5E,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAgC,EAAE,WAAmB,EAAE;IACrF,IAAI,CAAC;QACD,MAAM,UAAU,EAAE,CAAC;QAEnB,WAAW,CAAC,GAAG,EAAE;YACb,MAAM,aAAa,GAAW,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACrE,MAAM,UAAU,GAAa,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAS,CAAC;YACnC,oBAAoB,CAAC,aAAa,CAAC,CAAC;YAEpC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACjC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;oBAAE,SAAS;gBAChC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrD,SAAS,CAAC,GAAG,CAAC;oBACV,EAAE,EAAE,EAAG;oBACP,KAAK,EAAE,QAAS;oBAChB,IAAI,EAAE,OAAQ;iBACjB,CAAC,CAAC;YACP,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;gBAC5B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;oBAC5B,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACtB,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACpB,CAAC;YACL,CAAC;QAEL,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEjB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC5B,IAAI,CAAC;QACD,MAAM,UAAU,EAAE,CAAC;QACnB,MAAM,SAAS,GAAW,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,UAAU,GAAa,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEtD,IAAI,UAAU,GAAY,EAAE,CAAC;QAC7B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACjC,MAAM,gBAAgB,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC7C,UAAU,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAE;gBACxB,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAE;gBAC3B,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAE;aAC7B,CAAC,CAAA;QACN,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAA;IACtD,CAAC;AACL,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,QAAgB;IAChD,MAAM,QAAQ,GAAG,GAAG,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACpD,CAAC,CAAC;IACF,MAAM,UAAU,GAAa,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACjC,MAAM,UAAU,GAAa,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,QAAQ,EAAE,CAAC;QACxC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,EAAE;YAAE,QAAQ,EAAE,CAAC;QAC7C,IAAI,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,QAAQ,EAAE,CAAC;QAC7C,IAAI,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,QAAQ,EAAE,CAAC;IACjD,CAAC;IACD,OAAO;AACX,CAAC"}
|