dtg-js 1.0.0 → 1.1.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/index.js +20 -34
- package/package.json +10 -4
- package/test/index.spec.js +0 -13
package/README.md
CHANGED
package/index.js
CHANGED
|
@@ -1,52 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
throw new Error("It\'s not a valid base 60 string");
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
// prettier-ignore
|
|
7
|
-
const table = [
|
|
1
|
+
// prettier-ignore
|
|
2
|
+
const TABLE = Array.of(
|
|
8
3
|
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
|
|
9
4
|
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
|
|
10
5
|
'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
|
|
11
6
|
'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd',
|
|
12
7
|
'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
|
|
13
8
|
'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x'
|
|
14
|
-
|
|
9
|
+
);
|
|
15
10
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
export const toJSDate = (base60) => {
|
|
12
|
+
if (!/^[0-9A-Za-x]{7}$/.test(base60)) {
|
|
13
|
+
throw new Error("It\'s not a valid base 60 string");
|
|
19
14
|
}
|
|
20
15
|
|
|
16
|
+
const mem = base60.split("").map((char) => TABLE.indexOf(char));
|
|
21
17
|
return new Date(
|
|
22
18
|
Date.UTC(mem[0] * 60 + mem[1], mem[2], mem[3] + 1, mem[4], mem[5], mem[6]),
|
|
23
19
|
);
|
|
24
20
|
};
|
|
25
21
|
|
|
26
|
-
const toBase60 = (datetime) => {
|
|
27
|
-
if ((
|
|
22
|
+
export const toBase60 = (datetime) => {
|
|
23
|
+
if (!(datetime instanceof Date)) {
|
|
28
24
|
throw new Error('"datetime" is not a valid Date object');
|
|
29
25
|
}
|
|
30
26
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
table[Math.floor(datetime.getUTCFullYear() / 60)] +
|
|
43
|
-
table[datetime.getUTCFullYear() % 60] +
|
|
44
|
-
table[datetime.getUTCMonth()] +
|
|
45
|
-
table[datetime.getUTCDate() - 1] +
|
|
46
|
-
table[datetime.getUTCHours()] +
|
|
47
|
-
table[datetime.getUTCMinutes()] +
|
|
48
|
-
table[datetime.getUTCSeconds()]
|
|
49
|
-
);
|
|
27
|
+
return [
|
|
28
|
+
Math.floor(datetime.getUTCFullYear() / 60),
|
|
29
|
+
datetime.getUTCFullYear() % 60,
|
|
30
|
+
datetime.getUTCMonth(),
|
|
31
|
+
datetime.getUTCDate() - 1,
|
|
32
|
+
datetime.getUTCHours(),
|
|
33
|
+
datetime.getUTCMinutes(),
|
|
34
|
+
datetime.getUTCSeconds(),
|
|
35
|
+
]
|
|
36
|
+
.map((num) => TABLE[num])
|
|
37
|
+
.join("");
|
|
50
38
|
};
|
|
51
|
-
|
|
52
|
-
module.exports = { toBase60, toJSDate };
|
package/package.json
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dtg-js",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"main": "index.js",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"engines": {
|
|
7
|
+
"node": ">= 20.0.0"
|
|
8
|
+
},
|
|
5
9
|
"scripts": {
|
|
6
|
-
"
|
|
10
|
+
"prettier:check": "prettier --check .",
|
|
11
|
+
"prettier:fix": "prettier --write .",
|
|
12
|
+
"test": "vitest run"
|
|
7
13
|
},
|
|
8
14
|
"keywords": [
|
|
9
15
|
"datetime"
|
|
@@ -12,7 +18,7 @@
|
|
|
12
18
|
"license": "MIT",
|
|
13
19
|
"description": "This library implements a date representation in base 60",
|
|
14
20
|
"devDependencies": {
|
|
15
|
-
"
|
|
16
|
-
"
|
|
21
|
+
"prettier": "3.8.1",
|
|
22
|
+
"vitest": "4.0.18"
|
|
17
23
|
}
|
|
18
24
|
}
|
package/test/index.spec.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
const { toBase60, toJSDate } = require("../index");
|
|
2
|
-
|
|
3
|
-
test("convert datetime to base 60", () => {
|
|
4
|
-
const datetime = new Date(Date.UTC(2025, 4, 22, 10, 15, 13));
|
|
5
|
-
expect(toBase60(datetime)).toBe("Xj4LAFD");
|
|
6
|
-
});
|
|
7
|
-
|
|
8
|
-
test("convert base 60 to datetime", () => {
|
|
9
|
-
const base60 = "Xj4LAFD";
|
|
10
|
-
expect(toJSDate(base60).toString()).toBe(
|
|
11
|
-
new Date(Date.UTC(2025, 4, 22, 10, 15, 13)).toString(),
|
|
12
|
-
);
|
|
13
|
-
});
|