eternal-timer 1.0.0 → 1.0.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eternal-timer",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "timer for node.js package",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -29,5 +29,6 @@
29
29
  "types": "dist/index.d.ts",
30
30
  "dependencies": {
31
31
  "uuid": "^13.0.0"
32
- }
32
+ },
33
+ "files": [ "dist" ]
33
34
  }
package/.timers DELETED
File without changes
package/dir/index.d.ts DELETED
@@ -1,6 +0,0 @@
1
- import type { Timer } from "types/timersData.ts";
2
- export declare function createTimer(length: number): Promise<string | null>;
3
- export declare function removeTimer(id: string): Promise<boolean>;
4
- export declare function checkTimers(callback: (timer: Timer) => void, interval?: number): Promise<void>;
5
- export declare function showTimers(): Promise<Timer[]>;
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
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"}
package/dir/index.js DELETED
@@ -1,93 +0,0 @@
1
- import fs from "fs";
2
- import path from "path";
3
- import searchRoot from "./searchRoot.js";
4
- import { v4 as uuidv4 } from "uuid";
5
- // search root folder of project
6
- const rootdir = searchRoot();
7
- const timerfiledir = path.join(rootdir, ".timers");
8
- async function createFile() {
9
- if (!fs.existsSync(timerfiledir)) {
10
- fs.writeFile(timerfiledir, "", (data) => {
11
- console.log("The file was created in ", timerfiledir);
12
- });
13
- }
14
- return;
15
- }
16
- export async function createTimer(length) {
17
- try {
18
- await createFile();
19
- // uuid, start, end
20
- const id = uuidv4();
21
- const newTimerData = `${id} ${Date.now().toString()} ${(Date.now() + length).toString()}`;
22
- fs.appendFileSync(timerfiledir, newTimerData + "\n");
23
- return id;
24
- }
25
- catch (e) {
26
- console.error(`Error when creating timer: ${e}`);
27
- return null;
28
- }
29
- }
30
- export async function removeTimer(id) {
31
- try {
32
- const timersRaw = fs.readFileSync(timerfiledir, "utf-8");
33
- const timersData = timersRaw.split(/\r?\n/);
34
- const filteredTimers = timersData.filter(line => line.split(" ")[0] !== id);
35
- fs.writeFileSync(timerfiledir, filteredTimers.join("\n"), "utf-8");
36
- return true;
37
- }
38
- catch (e) {
39
- console.error(`Error when removing timer: ${e}`);
40
- return false;
41
- }
42
- }
43
- export async function checkTimers(callback, interval = 50) {
44
- try {
45
- await createFile();
46
- setInterval(() => {
47
- const timersData = fs.readFileSync(timerfiledir, "utf-8").split(/\r?\n/);
48
- const timersSet = new Set();
49
- for (const timerData of timersData) {
50
- if (!timerData.trim())
51
- continue;
52
- const [id, startStr, stopStr] = timerData.split(" ");
53
- timersSet.add({
54
- id: id,
55
- start: startStr,
56
- stop: stopStr
57
- });
58
- }
59
- const now = Date.now();
60
- for (const timer of timersSet) {
61
- if (Number(timer.stop) <= now) {
62
- removeTimer(timer.id);
63
- callback(timer);
64
- }
65
- }
66
- }, interval);
67
- }
68
- catch (e) {
69
- throw new Error(`Error when checking alarm: ${e}`);
70
- }
71
- }
72
- export async function showTimers() {
73
- try {
74
- await createFile();
75
- const timersRaw = fs.readFileSync(timerfiledir, "utf-8");
76
- const timersData = timersRaw.split(/\r?\n/);
77
- let timersJSON = [];
78
- for (const timerData of timersData) {
79
- const splitedTimerData = timerData.split(" ");
80
- timersJSON.push({
81
- id: splitedTimerData[0],
82
- start: splitedTimerData[1],
83
- stop: splitedTimerData[2]
84
- });
85
- }
86
- return timersJSON;
87
- }
88
- catch (e) {
89
- console.error(`Error when removing timer: ${e}`);
90
- return [];
91
- }
92
- }
93
- //# sourceMappingURL=index.js.map
package/dir/index.js.map DELETED
@@ -1 +0,0 @@
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;AAGpC,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,mBAAmB;QACnB,MAAM,EAAE,GAAG,MAAM,EAAE,CAAA;QACnB,MAAM,YAAY,GAAG,GAAG,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC1F,EAAE,CAAC,cAAc,CAAC,YAAY,EAAE,YAAY,GAAI,IAAI,CAAC,CAAC;QACtD,OAAO,EAAE,CAAC;IACd,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IAChB,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,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QAEnE,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;QACjD,OAAO,KAAK,CAAC;IACjB,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,UAAU,GAAa,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACnF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAS,CAAC;YAEnC,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,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;QACjD,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC"}
@@ -1,2 +0,0 @@
1
- export default function searchRoot(): string;
2
- //# sourceMappingURL=searchRoot.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"searchRoot.d.ts","sourceRoot":"","sources":["../src/searchRoot.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,UAAU,WAQjC"}
package/dir/searchRoot.js DELETED
@@ -1,13 +0,0 @@
1
- import fs from "fs";
2
- import path from "path";
3
- export default function searchRoot() {
4
- let dir = process.cwd();
5
- while (!fs.existsSync(path.join(dir, "package.json"))) {
6
- const parent = path.dirname(dir);
7
- if (parent === dir)
8
- break;
9
- dir = parent;
10
- }
11
- return dir;
12
- }
13
- //# sourceMappingURL=searchRoot.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"searchRoot.js","sourceRoot":"","sources":["../src/searchRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,OAAO,UAAU,UAAU;IAC9B,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QACtB,GAAG,GAAG,MAAM,CAAC;IACrB,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC"}
package/src/index.ts DELETED
@@ -1,104 +0,0 @@
1
- import fs from "fs";
2
- import path from "path";
3
- import searchRoot from "./searchRoot.js";
4
- import { v4 as uuidv4 } from "uuid";
5
- import type { Timer } from "types/timersData.ts";
6
-
7
- // search root folder of project
8
- const rootdir = searchRoot();
9
- const timerfiledir = path.join(rootdir, ".timers");
10
-
11
- async function createFile(): Promise<void> {
12
- if (!fs.existsSync(timerfiledir)) {
13
- fs.writeFile(timerfiledir, "", (data) => {
14
- console.log("The file was created in ", timerfiledir);
15
- });
16
- }
17
- return;
18
- }
19
-
20
- export async function createTimer(length: number): Promise<string | null> {
21
- try {
22
- await createFile();
23
-
24
- // uuid, start, end
25
- const id = uuidv4()
26
- const newTimerData = `${id} ${Date.now().toString()} ${(Date.now() + length).toString()}`;
27
- fs.appendFileSync(timerfiledir, newTimerData + "\n");
28
- return id;
29
- } catch (e) {
30
- console.error(`Error when creating timer: ${e}`);
31
- return null;
32
- }
33
- }
34
-
35
- export async function removeTimer(id: string): Promise<boolean> {
36
- try {
37
- const timersRaw: string = fs.readFileSync(timerfiledir, "utf-8");
38
- const timersData: string[] = timersRaw.split(/\r?\n/);
39
-
40
- const filteredTimers = timersData.filter(line => line.split(" ")[0] !== id);
41
-
42
- fs.writeFileSync(timerfiledir, filteredTimers.join("\n"), "utf-8");
43
-
44
- return true;
45
- } catch (e) {
46
- console.error(`Error when removing timer: ${e}`);
47
- return false;
48
- }
49
- }
50
-
51
- export async function checkTimers(callback: (timer: Timer) => void, interval: number = 50) {
52
- try {
53
- await createFile();
54
-
55
- setInterval(() => {
56
- const timersData: string[] = fs.readFileSync(timerfiledir, "utf-8").split(/\r?\n/);
57
- const timersSet = new Set<Timer>();
58
-
59
- for (const timerData of timersData) {
60
- if (!timerData.trim()) continue;
61
- const [id, startStr, stopStr] = timerData.split(" ");
62
- timersSet.add({
63
- id: id!,
64
- start: startStr!,
65
- stop: stopStr!
66
- });
67
- }
68
-
69
- const now = Date.now();
70
- for (const timer of timersSet) {
71
- if (Number(timer.stop) <= now) {
72
- removeTimer(timer.id);
73
- callback(timer);
74
- }
75
- }
76
-
77
- }, interval);
78
-
79
- } catch (e) {
80
- throw new Error(`Error when checking alarm: ${e}`);
81
- }
82
- }
83
-
84
- export async function showTimers(): Promise<Timer[]> {
85
- try {
86
- await createFile();
87
- const timersRaw: string = fs.readFileSync(timerfiledir, "utf-8");
88
- const timersData: string[] = timersRaw.split(/\r?\n/);
89
-
90
- let timersJSON: Timer[] = [];
91
- for (const timerData of timersData) {
92
- const splitedTimerData = timerData.split(" ")
93
- timersJSON.push({
94
- id: splitedTimerData[0]!,
95
- start: splitedTimerData[1]!,
96
- stop: splitedTimerData[2]!
97
- })
98
- }
99
- return timersJSON;
100
- } catch (e) {
101
- console.error(`Error when removing timer: ${e}`);
102
- return [];
103
- }
104
- }
package/src/searchRoot.ts DELETED
@@ -1,12 +0,0 @@
1
- import fs from "fs";
2
- import path from "path";
3
-
4
- export default function searchRoot() {
5
- let dir = process.cwd();
6
- while (!fs.existsSync(path.join(dir, "package.json"))) {
7
- const parent = path.dirname(dir);
8
- if (parent === dir) break;
9
- dir = parent;
10
- }
11
- return dir;
12
- }
package/tsconfig.json DELETED
@@ -1,30 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "rootDir": "./src",
4
- "outDir": "./dir",
5
- "module": "nodenext",
6
- "moduleResolution": "nodenext",
7
- "target": "esnext",
8
-
9
- // Node組み込み型を有効化
10
- "types": ["node"],
11
-
12
- "esModuleInterop": true,
13
- "sourceMap": true,
14
- "declaration": true,
15
- "declarationMap": true,
16
-
17
- "noUncheckedIndexedAccess": true,
18
- "exactOptionalPropertyTypes": true,
19
-
20
- "strict": true,
21
- "jsx": "react-jsx",
22
- "verbatimModuleSyntax": true,
23
- "isolatedModules": true,
24
- "noUncheckedSideEffectImports": true,
25
- "moduleDetection": "force",
26
- "skipLibCheck": true,
27
-
28
- "baseUrl": "."
29
- }
30
- }
@@ -1,5 +0,0 @@
1
- export type Timer = {
2
- id: string,
3
- start: string,
4
- stop: string
5
- }