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 CHANGED
@@ -1,5 +1,9 @@
1
- import type { Timer } from "types/timersData.ts";
2
- export declare function createTimer(length: number): Promise<string | null>;
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[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAejD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAaxE;AAED,wBAAsB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAc9D;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAAE,QAAQ,GAAE,MAAW,iBA+BxF;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAoBnD"}
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 newTimerData = `${id} ${Date.now().toString()} ${(Date.now() + length).toString()}`;
22
- fs.appendFileSync(timerfiledir, newTimerData + "\n");
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
- console.error(`Error when creating timer: ${e}`);
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.writeFileSync(timerfiledir, filteredTimers.join("\n"), "utf-8");
39
+ await fs.promises.writeFile(timerfiledir, filteredTimers.join("\n"), "utf-8");
36
40
  return true;
37
41
  }
38
42
  catch (e) {
39
- console.error(`Error when removing timer: ${e}`);
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 timersData = fs.readFileSync(timerfiledir, "utf-8").split(/\r?\n/);
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
- console.error(`Error when removing timer: ${e}`);
90
- return [];
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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eternal-timer",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "description": "timer for node.js package",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {