@nickyzj2023/utils 1.0.9 → 1.0.10
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 +35 -35
- package/bun.lock +73 -73
- package/dist/dom.d.ts +8 -8
- package/dist/hoc.d.ts +41 -41
- package/dist/index.d.ts +4 -4
- package/dist/index.js +6 -2
- package/dist/is.d.ts +6 -6
- package/dist/network.d.ts +40 -32
- package/docs/assets/highlight.css +92 -92
- package/docs/functions/fetcher.html +16 -11
- package/docs/functions/isObject.html +7 -3
- package/docs/functions/timeLog.html +5 -5
- package/docs/functions/to.html +11 -7
- package/docs/functions/withCache.html +12 -12
- package/docs/modules.html +1 -1
- package/package.json +22 -22
- package/src/dom.ts +10 -10
- package/src/hoc.ts +109 -109
- package/src/index.ts +4 -4
- package/src/is.ts +8 -8
- package/src/lru-cache.ts +50 -50
- package/src/network.ts +101 -100
- package/tsconfig.json +32 -32
package/README.md
CHANGED
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
男生自用全新前端工具库
|
|
2
|
-
|
|
3
|
-
安装到你的前端项目里:
|
|
4
|
-
|
|
5
|
-
```bash
|
|
6
|
-
# npm
|
|
7
|
-
npm install @nickyzj2023/utils
|
|
8
|
-
|
|
9
|
-
# yarn
|
|
10
|
-
yarn add @nickyzj2023/utils
|
|
11
|
-
|
|
12
|
-
# pnpm
|
|
13
|
-
pnpm add @nickyzj2023/utils
|
|
14
|
-
|
|
15
|
-
# bun
|
|
16
|
-
bun add @nickyzj2023/utils
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
使用方式:
|
|
20
|
-
|
|
21
|
-
```typescript
|
|
22
|
-
import { fetcher, to } from "@nickyzj2023/utils";
|
|
23
|
-
|
|
24
|
-
const api = fetcher("https://api.example.com");
|
|
25
|
-
|
|
26
|
-
const [error, data] = await to(api.get<Blog>("/blogs/hello-world"));
|
|
27
|
-
if (error) {
|
|
28
|
-
console.error(error);
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
console.log(data);
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
This project was created using `bun init` in bun v1.3.2. [Bun](https://bun.com) is a fast all-in-one JavaScript runtime.
|
|
1
|
+
男生自用全新前端工具库
|
|
2
|
+
|
|
3
|
+
安装到你的前端项目里:
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
# npm
|
|
7
|
+
npm install @nickyzj2023/utils
|
|
8
|
+
|
|
9
|
+
# yarn
|
|
10
|
+
yarn add @nickyzj2023/utils
|
|
11
|
+
|
|
12
|
+
# pnpm
|
|
13
|
+
pnpm add @nickyzj2023/utils
|
|
14
|
+
|
|
15
|
+
# bun
|
|
16
|
+
bun add @nickyzj2023/utils
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
使用方式:
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
import { fetcher, to } from "@nickyzj2023/utils";
|
|
23
|
+
|
|
24
|
+
const api = fetcher("https://api.example.com");
|
|
25
|
+
|
|
26
|
+
const [error, data] = await to(api.get<Blog>("/blogs/hello-world"));
|
|
27
|
+
if (error) {
|
|
28
|
+
console.error(error);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
console.log(data);
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
This project was created using `bun init` in bun v1.3.2. [Bun](https://bun.com) is a fast all-in-one JavaScript runtime.
|
package/bun.lock
CHANGED
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
{
|
|
2
|
-
"lockfileVersion": 1,
|
|
3
|
-
"configVersion": 1,
|
|
4
|
-
"workspaces": {
|
|
5
|
-
"": {
|
|
6
|
-
"name": "@nickyzj2023/utils",
|
|
7
|
-
"devDependencies": {
|
|
8
|
-
"@types/bun": "latest",
|
|
9
|
-
"typedoc": "^0.28.14",
|
|
10
|
-
},
|
|
11
|
-
"peerDependencies": {
|
|
12
|
-
"typescript": "^5",
|
|
13
|
-
},
|
|
14
|
-
},
|
|
15
|
-
},
|
|
16
|
-
"packages": {
|
|
17
|
-
"@gerrit0/mini-shiki": ["@gerrit0/mini-shiki@3.15.0", "", { "dependencies": { "@shikijs/engine-oniguruma": "^3.15.0", "@shikijs/langs": "^3.15.0", "@shikijs/themes": "^3.15.0", "@shikijs/types": "^3.15.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-L5IHdZIDa4bG4yJaOzfasOH/o22MCesY0mx+n6VATbaiCtMeR59pdRqYk4bEiQkIHfxsHPNgdi7VJlZb2FhdMQ=="],
|
|
18
|
-
|
|
19
|
-
"@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-HnqFsV11skAHvOArMZdLBZZApRSYS4LSztk2K3016Y9VCyZISnlYUYsL2hzlS7tPqKHvNqmI5JSUJZprXloMvA=="],
|
|
20
|
-
|
|
21
|
-
"@shikijs/langs": ["@shikijs/langs@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0" } }, "sha512-WpRvEFvkVvO65uKYW4Rzxs+IG0gToyM8SARQMtGGsH4GDMNZrr60qdggXrFOsdfOVssG/QQGEl3FnJ3EZ+8w8A=="],
|
|
22
|
-
|
|
23
|
-
"@shikijs/themes": ["@shikijs/themes@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0" } }, "sha512-8ow2zWb1IDvCKjYb0KiLNrK4offFdkfNVPXb1OZykpLCzRU6j+efkY+Y7VQjNlNFXonSw+4AOdGYtmqykDbRiQ=="],
|
|
24
|
-
|
|
25
|
-
"@shikijs/types": ["@shikijs/types@3.15.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-BnP+y/EQnhihgHy4oIAN+6FFtmfTekwOLsQbRw9hOKwqgNy8Bdsjq8B05oAt/ZgvIWWFrshV71ytOrlPfYjIJw=="],
|
|
26
|
-
|
|
27
|
-
"@shikijs/vscode-textmate": ["@shikijs/vscode-textmate@10.0.2", "", {}, "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg=="],
|
|
28
|
-
|
|
29
|
-
"@types/bun": ["@types/bun@1.3.2", "", { "dependencies": { "bun-types": "1.3.2" } }, "sha512-t15P7k5UIgHKkxwnMNkJbWlh/617rkDGEdSsDbu+qNHTaz9SKf7aC8fiIlUdD5RPpH6GEkP0cK7WlvmrEBRtWg=="],
|
|
30
|
-
|
|
31
|
-
"@types/hast": ["@types/hast@3.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ=="],
|
|
32
|
-
|
|
33
|
-
"@types/node": ["@types/node@24.10.1", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ=="],
|
|
34
|
-
|
|
35
|
-
"@types/react": ["@types/react@19.2.5", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-keKxkZMqnDicuvFoJbzrhbtdLSPhj/rZThDlKWCDbgXmUg0rEUFtRssDXKYmtXluZlIqiC5VqkCgRwzuyLHKHw=="],
|
|
36
|
-
|
|
37
|
-
"@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="],
|
|
38
|
-
|
|
39
|
-
"argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="],
|
|
40
|
-
|
|
41
|
-
"balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="],
|
|
42
|
-
|
|
43
|
-
"brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="],
|
|
44
|
-
|
|
45
|
-
"bun-types": ["bun-types@1.3.2", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-i/Gln4tbzKNuxP70OWhJRZz1MRfvqExowP7U6JKoI8cntFrtxg7RJK3jvz7wQW54UuvNC8tbKHHri5fy74FVqg=="],
|
|
46
|
-
|
|
47
|
-
"csstype": ["csstype@3.2.2", "", {}, "sha512-D80T+tiqkd/8B0xNlbstWDG4x6aqVfO52+OlSUNIdkTvmNw0uQpJLeos2J/2XvpyidAFuTPmpad+tUxLndwj6g=="],
|
|
48
|
-
|
|
49
|
-
"entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="],
|
|
50
|
-
|
|
51
|
-
"linkify-it": ["linkify-it@5.0.0", "", { "dependencies": { "uc.micro": "^2.0.0" } }, "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ=="],
|
|
52
|
-
|
|
53
|
-
"lunr": ["lunr@2.3.9", "", {}, "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow=="],
|
|
54
|
-
|
|
55
|
-
"markdown-it": ["markdown-it@14.1.0", "", { "dependencies": { "argparse": "^2.0.1", "entities": "^4.4.0", "linkify-it": "^5.0.0", "mdurl": "^2.0.0", "punycode.js": "^2.3.1", "uc.micro": "^2.1.0" }, "bin": { "markdown-it": "bin/markdown-it.mjs" } }, "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg=="],
|
|
56
|
-
|
|
57
|
-
"mdurl": ["mdurl@2.0.0", "", {}, "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w=="],
|
|
58
|
-
|
|
59
|
-
"minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="],
|
|
60
|
-
|
|
61
|
-
"punycode.js": ["punycode.js@2.3.1", "", {}, "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA=="],
|
|
62
|
-
|
|
63
|
-
"typedoc": ["typedoc@0.28.14", "", { "dependencies": { "@gerrit0/mini-shiki": "^3.12.0", "lunr": "^2.3.9", "markdown-it": "^14.1.0", "minimatch": "^9.0.5", "yaml": "^2.8.1" }, "peerDependencies": { "typescript": "5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x" }, "bin": { "typedoc": "bin/typedoc" } }, "sha512-ftJYPvpVfQvFzpkoSfHLkJybdA/geDJ8BGQt/ZnkkhnBYoYW6lBgPQXu6vqLxO4X75dA55hX8Af847H5KXlEFA=="],
|
|
64
|
-
|
|
65
|
-
"typescript": ["typescript@5.8.2", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ=="],
|
|
66
|
-
|
|
67
|
-
"uc.micro": ["uc.micro@2.1.0", "", {}, "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A=="],
|
|
68
|
-
|
|
69
|
-
"undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="],
|
|
70
|
-
|
|
71
|
-
"yaml": ["yaml@2.8.1", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw=="],
|
|
72
|
-
}
|
|
73
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"lockfileVersion": 1,
|
|
3
|
+
"configVersion": 1,
|
|
4
|
+
"workspaces": {
|
|
5
|
+
"": {
|
|
6
|
+
"name": "@nickyzj2023/utils",
|
|
7
|
+
"devDependencies": {
|
|
8
|
+
"@types/bun": "latest",
|
|
9
|
+
"typedoc": "^0.28.14",
|
|
10
|
+
},
|
|
11
|
+
"peerDependencies": {
|
|
12
|
+
"typescript": "^5",
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
"packages": {
|
|
17
|
+
"@gerrit0/mini-shiki": ["@gerrit0/mini-shiki@3.15.0", "", { "dependencies": { "@shikijs/engine-oniguruma": "^3.15.0", "@shikijs/langs": "^3.15.0", "@shikijs/themes": "^3.15.0", "@shikijs/types": "^3.15.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-L5IHdZIDa4bG4yJaOzfasOH/o22MCesY0mx+n6VATbaiCtMeR59pdRqYk4bEiQkIHfxsHPNgdi7VJlZb2FhdMQ=="],
|
|
18
|
+
|
|
19
|
+
"@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-HnqFsV11skAHvOArMZdLBZZApRSYS4LSztk2K3016Y9VCyZISnlYUYsL2hzlS7tPqKHvNqmI5JSUJZprXloMvA=="],
|
|
20
|
+
|
|
21
|
+
"@shikijs/langs": ["@shikijs/langs@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0" } }, "sha512-WpRvEFvkVvO65uKYW4Rzxs+IG0gToyM8SARQMtGGsH4GDMNZrr60qdggXrFOsdfOVssG/QQGEl3FnJ3EZ+8w8A=="],
|
|
22
|
+
|
|
23
|
+
"@shikijs/themes": ["@shikijs/themes@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0" } }, "sha512-8ow2zWb1IDvCKjYb0KiLNrK4offFdkfNVPXb1OZykpLCzRU6j+efkY+Y7VQjNlNFXonSw+4AOdGYtmqykDbRiQ=="],
|
|
24
|
+
|
|
25
|
+
"@shikijs/types": ["@shikijs/types@3.15.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-BnP+y/EQnhihgHy4oIAN+6FFtmfTekwOLsQbRw9hOKwqgNy8Bdsjq8B05oAt/ZgvIWWFrshV71ytOrlPfYjIJw=="],
|
|
26
|
+
|
|
27
|
+
"@shikijs/vscode-textmate": ["@shikijs/vscode-textmate@10.0.2", "", {}, "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg=="],
|
|
28
|
+
|
|
29
|
+
"@types/bun": ["@types/bun@1.3.2", "", { "dependencies": { "bun-types": "1.3.2" } }, "sha512-t15P7k5UIgHKkxwnMNkJbWlh/617rkDGEdSsDbu+qNHTaz9SKf7aC8fiIlUdD5RPpH6GEkP0cK7WlvmrEBRtWg=="],
|
|
30
|
+
|
|
31
|
+
"@types/hast": ["@types/hast@3.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ=="],
|
|
32
|
+
|
|
33
|
+
"@types/node": ["@types/node@24.10.1", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ=="],
|
|
34
|
+
|
|
35
|
+
"@types/react": ["@types/react@19.2.5", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-keKxkZMqnDicuvFoJbzrhbtdLSPhj/rZThDlKWCDbgXmUg0rEUFtRssDXKYmtXluZlIqiC5VqkCgRwzuyLHKHw=="],
|
|
36
|
+
|
|
37
|
+
"@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="],
|
|
38
|
+
|
|
39
|
+
"argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="],
|
|
40
|
+
|
|
41
|
+
"balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="],
|
|
42
|
+
|
|
43
|
+
"brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="],
|
|
44
|
+
|
|
45
|
+
"bun-types": ["bun-types@1.3.2", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-i/Gln4tbzKNuxP70OWhJRZz1MRfvqExowP7U6JKoI8cntFrtxg7RJK3jvz7wQW54UuvNC8tbKHHri5fy74FVqg=="],
|
|
46
|
+
|
|
47
|
+
"csstype": ["csstype@3.2.2", "", {}, "sha512-D80T+tiqkd/8B0xNlbstWDG4x6aqVfO52+OlSUNIdkTvmNw0uQpJLeos2J/2XvpyidAFuTPmpad+tUxLndwj6g=="],
|
|
48
|
+
|
|
49
|
+
"entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="],
|
|
50
|
+
|
|
51
|
+
"linkify-it": ["linkify-it@5.0.0", "", { "dependencies": { "uc.micro": "^2.0.0" } }, "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ=="],
|
|
52
|
+
|
|
53
|
+
"lunr": ["lunr@2.3.9", "", {}, "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow=="],
|
|
54
|
+
|
|
55
|
+
"markdown-it": ["markdown-it@14.1.0", "", { "dependencies": { "argparse": "^2.0.1", "entities": "^4.4.0", "linkify-it": "^5.0.0", "mdurl": "^2.0.0", "punycode.js": "^2.3.1", "uc.micro": "^2.1.0" }, "bin": { "markdown-it": "bin/markdown-it.mjs" } }, "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg=="],
|
|
56
|
+
|
|
57
|
+
"mdurl": ["mdurl@2.0.0", "", {}, "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w=="],
|
|
58
|
+
|
|
59
|
+
"minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="],
|
|
60
|
+
|
|
61
|
+
"punycode.js": ["punycode.js@2.3.1", "", {}, "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA=="],
|
|
62
|
+
|
|
63
|
+
"typedoc": ["typedoc@0.28.14", "", { "dependencies": { "@gerrit0/mini-shiki": "^3.12.0", "lunr": "^2.3.9", "markdown-it": "^14.1.0", "minimatch": "^9.0.5", "yaml": "^2.8.1" }, "peerDependencies": { "typescript": "5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x" }, "bin": { "typedoc": "bin/typedoc" } }, "sha512-ftJYPvpVfQvFzpkoSfHLkJybdA/geDJ8BGQt/ZnkkhnBYoYW6lBgPQXu6vqLxO4X75dA55hX8Af847H5KXlEFA=="],
|
|
64
|
+
|
|
65
|
+
"typescript": ["typescript@5.8.2", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ=="],
|
|
66
|
+
|
|
67
|
+
"uc.micro": ["uc.micro@2.1.0", "", {}, "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A=="],
|
|
68
|
+
|
|
69
|
+
"undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="],
|
|
70
|
+
|
|
71
|
+
"yaml": ["yaml@2.8.1", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw=="],
|
|
72
|
+
}
|
|
73
|
+
}
|
package/dist/dom.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 附带时间的 console.log
|
|
3
|
-
* @param args
|
|
4
|
-
*
|
|
5
|
-
* @example
|
|
6
|
-
* timeLog("Hello", "World"); // 14:30:00 Hello World
|
|
7
|
-
*/
|
|
8
|
-
export declare const timeLog: (...args: any[]) => void;
|
|
1
|
+
/**
|
|
2
|
+
* 附带时间的 console.log
|
|
3
|
+
* @param args
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* timeLog("Hello", "World"); // 14:30:00 Hello World
|
|
7
|
+
*/
|
|
8
|
+
export declare const timeLog: (...args: any[]) => void;
|
package/dist/hoc.d.ts
CHANGED
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
type SetTtl = (seconds: number) => void;
|
|
2
|
-
/**
|
|
3
|
-
* 创建一个带缓存的高阶函数
|
|
4
|
-
*
|
|
5
|
-
* @template Args 被包装函数的参数类型数组
|
|
6
|
-
* @template Result 被包装函数的返回类型
|
|
7
|
-
*
|
|
8
|
-
* @param fn 需要被缓存的函数,参数里附带的 setTtl 方法用于根据具体情况改写过期时间
|
|
9
|
-
* @param ttlSeconds 以秒为单位的过期时间,-1 表示永不过期,默认 -1,会被回调函数里的 setTtl() 覆盖
|
|
10
|
-
*
|
|
11
|
-
* @returns 返回包装后的函数,以及缓存相关的额外方法
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* // 异步函数示例
|
|
15
|
-
* const fetchData = withCache(async (setTtl, url: string) => {
|
|
16
|
-
* const data = await fetch(url).then((res) => res.json());
|
|
17
|
-
* setTtl(data.expiresIn); // 根据实际情况调整过期时间
|
|
18
|
-
* return data;
|
|
19
|
-
* });
|
|
20
|
-
*
|
|
21
|
-
* await fetchData(urlA);
|
|
22
|
-
* await fetchData(urlA); // 使用缓存结果
|
|
23
|
-
|
|
24
|
-
* await fetchData(urlB);
|
|
25
|
-
* await fetchData(urlB); // 使用缓存结果
|
|
26
|
-
*
|
|
27
|
-
* fetchData.clear(); // urlA 和 urlB 的缓存都被清除
|
|
28
|
-
* await fetchData(urlA); // 重新请求数据
|
|
29
|
-
* await fetchData(urlB); // 重新请求数据
|
|
30
|
-
*
|
|
31
|
-
* // 缓存过期前
|
|
32
|
-
* fetchData.updateTtl(180); // 更新 ttl 并为所有未过期缓存续期
|
|
33
|
-
* await fetchData(urlA); // 使用缓存结果
|
|
34
|
-
* await fetchData(urlB); // 使用缓存结果
|
|
35
|
-
*/
|
|
36
|
-
export declare const withCache: <Args extends any[], Result>(fn: (setTtl: SetTtl, ...args: Args) => Result, ttlSeconds?: number) => {
|
|
37
|
-
(...args: Args): Result;
|
|
38
|
-
clear(): void;
|
|
39
|
-
updateTtl(seconds: number): void;
|
|
40
|
-
};
|
|
41
|
-
export {};
|
|
1
|
+
type SetTtl = (seconds: number) => void;
|
|
2
|
+
/**
|
|
3
|
+
* 创建一个带缓存的高阶函数
|
|
4
|
+
*
|
|
5
|
+
* @template Args 被包装函数的参数类型数组
|
|
6
|
+
* @template Result 被包装函数的返回类型
|
|
7
|
+
*
|
|
8
|
+
* @param fn 需要被缓存的函数,参数里附带的 setTtl 方法用于根据具体情况改写过期时间
|
|
9
|
+
* @param ttlSeconds 以秒为单位的过期时间,-1 表示永不过期,默认 -1,会被回调函数里的 setTtl() 覆盖
|
|
10
|
+
*
|
|
11
|
+
* @returns 返回包装后的函数,以及缓存相关的额外方法
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* // 异步函数示例
|
|
15
|
+
* const fetchData = withCache(async (setTtl, url: string) => {
|
|
16
|
+
* const data = await fetch(url).then((res) => res.json());
|
|
17
|
+
* setTtl(data.expiresIn); // 根据实际情况调整过期时间
|
|
18
|
+
* return data;
|
|
19
|
+
* });
|
|
20
|
+
*
|
|
21
|
+
* await fetchData(urlA);
|
|
22
|
+
* await fetchData(urlA); // 使用缓存结果
|
|
23
|
+
|
|
24
|
+
* await fetchData(urlB);
|
|
25
|
+
* await fetchData(urlB); // 使用缓存结果
|
|
26
|
+
*
|
|
27
|
+
* fetchData.clear(); // urlA 和 urlB 的缓存都被清除
|
|
28
|
+
* await fetchData(urlA); // 重新请求数据
|
|
29
|
+
* await fetchData(urlB); // 重新请求数据
|
|
30
|
+
*
|
|
31
|
+
* // 缓存过期前
|
|
32
|
+
* fetchData.updateTtl(180); // 更新 ttl 并为所有未过期缓存续期
|
|
33
|
+
* await fetchData(urlA); // 使用缓存结果
|
|
34
|
+
* await fetchData(urlB); // 使用缓存结果
|
|
35
|
+
*/
|
|
36
|
+
export declare const withCache: <Args extends any[], Result>(fn: (setTtl: SetTtl, ...args: Args) => Result, ttlSeconds?: number) => {
|
|
37
|
+
(...args: Args): Result;
|
|
38
|
+
clear(): void;
|
|
39
|
+
updateTtl(seconds: number): void;
|
|
40
|
+
};
|
|
41
|
+
export {};
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from "./dom";
|
|
2
|
-
export * from "./hoc";
|
|
3
|
-
export * from "./is";
|
|
4
|
-
export * from "./network";
|
|
1
|
+
export * from "./dom";
|
|
2
|
+
export * from "./hoc";
|
|
3
|
+
export * from "./is";
|
|
4
|
+
export * from "./network";
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
|
|
1
|
+
// @bun
|
|
2
|
+
<<<<<<< Updated upstream
|
|
3
|
+
var $=(...h)=>{console.log(`${new Date().toLocaleTimeString()}`,...h)};var C=(h,f=-1)=>{let a=new Map,x=(...c)=>{let K=JSON.stringify(c),z=Date.now(),j=a.get(K);if(j&&z<j.expiresAt)return j.value;let H=h((V)=>f=V,...c);if(H instanceof Promise){let V=H.then((M)=>{return a.set(K,{value:M,expiresAt:Date.now()+f*1000}),M});return a.set(K,{value:V,expiresAt:z+f*1000}),V}return a.set(K,{value:H,expiresAt:z+f*1000}),H};return x.clear=()=>a.clear(),x.updateTtl=(c)=>{f=c;let K=Date.now(),z=K+c*1000;for(let[j,g]of a.entries())if(g.expiresAt>K)g.expiresAt=z,a.set(j,g)},x};var W=(h)=>{return h?.constructor===Object};class v{cache;maxSize;constructor(h=10){this.cache=new Map,this.maxSize=h}get(h){let f=this.cache.get(h);if(!f)return;return this.cache.delete(h),this.cache.set(h,f),f}set(h,f){if(this.cache.has(h))this.cache.delete(h);else if(this.cache.size>=this.maxSize){let a=[...this.cache.keys()][0];if(a)this.cache.delete(a)}this.cache.set(h,f)}has(h){return this.cache.has(h)}}var D=v;var O=new D,X=(h="")=>{let f=async(a,x={})=>{let c=h?`${h}${a}`:a;if(W(x.body))x.body=JSON.stringify(x.body),x.headers={...x.headers,"Content-Type":"application/json"};let K=()=>fetch(c,x),z;if(!(x.method==="GET"||!x.method))z=K();else{let V=O.get(c);if(!V)V=K(),O.set(c,V);z=V}let g=(await z).clone();if(!g.ok)throw Error(g.statusText);return await g.json()};return{get:(a,x={})=>f(a,{...x,method:"GET"}),post:(a,x,c={})=>f(a,{...c,method:"POST",body:x}),put:(a,x,c={})=>f(a,{...c,method:"PUT",body:x}),delete:(a,x={})=>f(a,{...x,method:"DELETE"})}},Y=async(h)=>{try{return[null,await h]}catch(f){return[f,void 0]}};export{C as withCache,Y as to,$ as timeLog,W as isObject,X as fetcher};
|
|
4
|
+
=======
|
|
5
|
+
var S=(c)=>{return c?.constructor===Object};class j{cache;maxSize;constructor(c=10){this.cache=new Map,this.maxSize=c}get(c){let a=this.cache.get(c);if(!a)return;return this.cache.delete(c),this.cache.set(c,a),a}set(c,a){if(this.cache.has(c))this.cache.delete(c);else if(this.cache.size>=this.maxSize){let x=[...this.cache.keys()][0];if(x)this.cache.delete(x)}this.cache.set(c,a)}has(c){return this.cache.has(c)}}var M=j;var g=new M,I=(c="",a={})=>{let x=async(f,h={})=>{let K=c?`${c}${f}`:f;if(S(h.body))h.body=JSON.stringify(h.body),h.headers={...a.headers,...h.headers,"Content-Type":"application/json"};let V=()=>fetch(K,h),d=h.method==="GET"||!h.method,v;if(!d)v=V();else{let e=g.get(K);if(!e)e=V(),g.set(K,e);v=e}let z=(await v).clone();if(!z.ok)throw Error(z.statusText);return await z.json()};return{get:(f,h={})=>x(f,{...h,method:"GET"}),post:(f,h,K={})=>x(f,{...K,method:"POST",body:h}),put:(f,h,K={})=>x(f,{...K,method:"PUT",body:h}),delete:(f,h={})=>x(f,{...h,method:"DELETE"})}},J=async(c)=>{try{return[null,await c]}catch(a){return[a,void 0]}};export{J as to,S as isObject,I as fetcher};
|
|
6
|
+
>>>>>>> Stashed changes
|
package/dist/is.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 检测传入的值是否为**普通对象**
|
|
3
|
-
* @param value
|
|
4
|
-
* @returns {Boolean} 如果是普通对象,返回 true,否则返回 false
|
|
5
|
-
*/
|
|
6
|
-
export declare const isObject: (value: any) => value is object;
|
|
1
|
+
/**
|
|
2
|
+
* 检测传入的值是否为**普通对象**
|
|
3
|
+
* @param value
|
|
4
|
+
* @returns {Boolean} 如果是普通对象,返回 true,否则返回 false
|
|
5
|
+
*/
|
|
6
|
+
export declare const isObject: (value: any) => value is object;
|
package/dist/network.d.ts
CHANGED
|
@@ -1,32 +1,40 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 基于 Fetch API 的请求客户端
|
|
3
|
-
* @param baseURL 接口前缀,如 https://nickyzj.run:3030,也可以不填
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
*
|
|
7
|
-
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* // 用法
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
1
|
+
/**
|
|
2
|
+
* 基于 Fetch API 的请求客户端
|
|
3
|
+
* @param baseURL 接口前缀,如 https://nickyzj.run:3030,也可以不填
|
|
4
|
+
<<<<<<< Updated upstream
|
|
5
|
+
=======
|
|
6
|
+
* @param defaultOptions 客户端级别的请求选项,方法级别的选项会覆盖这里的相同值
|
|
7
|
+
>>>>>>> Stashed changes
|
|
8
|
+
*
|
|
9
|
+
* @remarks
|
|
10
|
+
* 特性:
|
|
11
|
+
* - 在 body 里直接传递对象
|
|
12
|
+
* - 能够缓存 GET 请求
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* // 用法1:创建客户端
|
|
16
|
+
<<<<<<< Updated upstream
|
|
17
|
+
* const api = fetcher("https://nickyzj.run:3030");
|
|
18
|
+
=======
|
|
19
|
+
* const api = fetcher("https://nickyzj.run:3030", { headers: { Authorization: "Bearer token" } });
|
|
20
|
+
>>>>>>> Stashed changes
|
|
21
|
+
* const res = await api.get<Blog>("/blogs/hello-world");
|
|
22
|
+
*
|
|
23
|
+
* // 用法2:直接发送请求
|
|
24
|
+
* const res = await fetcher().get<Blog>("https://nickyzj.run:3030/blogs/hello-world");
|
|
25
|
+
*/
|
|
26
|
+
export declare const fetcher: (baseURL?: string, defaultOptions?: RequestInit) => {
|
|
27
|
+
get: <T>(url: string, options?: Omit<RequestInit, "method">) => Promise<T>;
|
|
28
|
+
post: <T>(url: string, body?: any, options?: Omit<RequestInit, "method" | "body">) => Promise<T>;
|
|
29
|
+
put: <T>(url: string, body?: any, options?: Omit<RequestInit, "method" | "body">) => Promise<T>;
|
|
30
|
+
delete: <T>(url: string, options?: Omit<RequestInit, "method">) => Promise<T>;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Go 语言风格的异步处理方式
|
|
34
|
+
* @param promise 一个能被 await 的异步函数
|
|
35
|
+
* @returns 如果成功,返回 [null, 异步函数结果],否则返回 [Error, undefined]
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* const [error, response] = await to(fetcher().get<Blog>("/blogs/hello-world"));
|
|
39
|
+
*/
|
|
40
|
+
export declare const to: <T, Error>(promise: Promise<T>) => Promise<[null, T] | [Error, undefined]>;
|
|
@@ -1,92 +1,92 @@
|
|
|
1
|
-
:root {
|
|
2
|
-
--light-hl-0: #008000;
|
|
3
|
-
--dark-hl-0: #6A9955;
|
|
4
|
-
--light-hl-1: #795E26;
|
|
5
|
-
--dark-hl-1: #DCDCAA;
|
|
6
|
-
--light-hl-2: #000000;
|
|
7
|
-
--dark-hl-2: #D4D4D4;
|
|
8
|
-
--light-hl-3: #A31515;
|
|
9
|
-
--dark-hl-3: #CE9178;
|
|
10
|
-
--light-hl-4: #AF00DB;
|
|
11
|
-
--dark-hl-4: #CE92A4;
|
|
12
|
-
--light-hl-5: #001080;
|
|
13
|
-
--dark-hl-5: #9CDCFE;
|
|
14
|
-
--light-hl-6: #0000FF;
|
|
15
|
-
--dark-hl-6: #569CD6;
|
|
16
|
-
--light-hl-7: #0070C1;
|
|
17
|
-
--dark-hl-7: #4FC1FF;
|
|
18
|
-
--light-hl-8: #267F99;
|
|
19
|
-
--dark-hl-8: #4EC9B0;
|
|
20
|
-
--light-hl-9: #098658;
|
|
21
|
-
--dark-hl-9: #B5CEA8;
|
|
22
|
-
--light-code-background: #FFFFFF;
|
|
23
|
-
--dark-code-background: #1E1E1E;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
@media (prefers-color-scheme: light) { :root {
|
|
27
|
-
--hl-0: var(--light-hl-0);
|
|
28
|
-
--hl-1: var(--light-hl-1);
|
|
29
|
-
--hl-2: var(--light-hl-2);
|
|
30
|
-
--hl-3: var(--light-hl-3);
|
|
31
|
-
--hl-4: var(--light-hl-4);
|
|
32
|
-
--hl-5: var(--light-hl-5);
|
|
33
|
-
--hl-6: var(--light-hl-6);
|
|
34
|
-
--hl-7: var(--light-hl-7);
|
|
35
|
-
--hl-8: var(--light-hl-8);
|
|
36
|
-
--hl-9: var(--light-hl-9);
|
|
37
|
-
--code-background: var(--light-code-background);
|
|
38
|
-
} }
|
|
39
|
-
|
|
40
|
-
@media (prefers-color-scheme: dark) { :root {
|
|
41
|
-
--hl-0: var(--dark-hl-0);
|
|
42
|
-
--hl-1: var(--dark-hl-1);
|
|
43
|
-
--hl-2: var(--dark-hl-2);
|
|
44
|
-
--hl-3: var(--dark-hl-3);
|
|
45
|
-
--hl-4: var(--dark-hl-4);
|
|
46
|
-
--hl-5: var(--dark-hl-5);
|
|
47
|
-
--hl-6: var(--dark-hl-6);
|
|
48
|
-
--hl-7: var(--dark-hl-7);
|
|
49
|
-
--hl-8: var(--dark-hl-8);
|
|
50
|
-
--hl-9: var(--dark-hl-9);
|
|
51
|
-
--code-background: var(--dark-code-background);
|
|
52
|
-
} }
|
|
53
|
-
|
|
54
|
-
:root[data-theme='light'] {
|
|
55
|
-
--hl-0: var(--light-hl-0);
|
|
56
|
-
--hl-1: var(--light-hl-1);
|
|
57
|
-
--hl-2: var(--light-hl-2);
|
|
58
|
-
--hl-3: var(--light-hl-3);
|
|
59
|
-
--hl-4: var(--light-hl-4);
|
|
60
|
-
--hl-5: var(--light-hl-5);
|
|
61
|
-
--hl-6: var(--light-hl-6);
|
|
62
|
-
--hl-7: var(--light-hl-7);
|
|
63
|
-
--hl-8: var(--light-hl-8);
|
|
64
|
-
--hl-9: var(--light-hl-9);
|
|
65
|
-
--code-background: var(--light-code-background);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
:root[data-theme='dark'] {
|
|
69
|
-
--hl-0: var(--dark-hl-0);
|
|
70
|
-
--hl-1: var(--dark-hl-1);
|
|
71
|
-
--hl-2: var(--dark-hl-2);
|
|
72
|
-
--hl-3: var(--dark-hl-3);
|
|
73
|
-
--hl-4: var(--dark-hl-4);
|
|
74
|
-
--hl-5: var(--dark-hl-5);
|
|
75
|
-
--hl-6: var(--dark-hl-6);
|
|
76
|
-
--hl-7: var(--dark-hl-7);
|
|
77
|
-
--hl-8: var(--dark-hl-8);
|
|
78
|
-
--hl-9: var(--dark-hl-9);
|
|
79
|
-
--code-background: var(--dark-code-background);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
.hl-0 { color: var(--hl-0); }
|
|
83
|
-
.hl-1 { color: var(--hl-1); }
|
|
84
|
-
.hl-2 { color: var(--hl-2); }
|
|
85
|
-
.hl-3 { color: var(--hl-3); }
|
|
86
|
-
.hl-4 { color: var(--hl-4); }
|
|
87
|
-
.hl-5 { color: var(--hl-5); }
|
|
88
|
-
.hl-6 { color: var(--hl-6); }
|
|
89
|
-
.hl-7 { color: var(--hl-7); }
|
|
90
|
-
.hl-8 { color: var(--hl-8); }
|
|
91
|
-
.hl-9 { color: var(--hl-9); }
|
|
92
|
-
pre, code { background: var(--code-background); }
|
|
1
|
+
:root {
|
|
2
|
+
--light-hl-0: #008000;
|
|
3
|
+
--dark-hl-0: #6A9955;
|
|
4
|
+
--light-hl-1: #795E26;
|
|
5
|
+
--dark-hl-1: #DCDCAA;
|
|
6
|
+
--light-hl-2: #000000;
|
|
7
|
+
--dark-hl-2: #D4D4D4;
|
|
8
|
+
--light-hl-3: #A31515;
|
|
9
|
+
--dark-hl-3: #CE9178;
|
|
10
|
+
--light-hl-4: #AF00DB;
|
|
11
|
+
--dark-hl-4: #CE92A4;
|
|
12
|
+
--light-hl-5: #001080;
|
|
13
|
+
--dark-hl-5: #9CDCFE;
|
|
14
|
+
--light-hl-6: #0000FF;
|
|
15
|
+
--dark-hl-6: #569CD6;
|
|
16
|
+
--light-hl-7: #0070C1;
|
|
17
|
+
--dark-hl-7: #4FC1FF;
|
|
18
|
+
--light-hl-8: #267F99;
|
|
19
|
+
--dark-hl-8: #4EC9B0;
|
|
20
|
+
--light-hl-9: #098658;
|
|
21
|
+
--dark-hl-9: #B5CEA8;
|
|
22
|
+
--light-code-background: #FFFFFF;
|
|
23
|
+
--dark-code-background: #1E1E1E;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@media (prefers-color-scheme: light) { :root {
|
|
27
|
+
--hl-0: var(--light-hl-0);
|
|
28
|
+
--hl-1: var(--light-hl-1);
|
|
29
|
+
--hl-2: var(--light-hl-2);
|
|
30
|
+
--hl-3: var(--light-hl-3);
|
|
31
|
+
--hl-4: var(--light-hl-4);
|
|
32
|
+
--hl-5: var(--light-hl-5);
|
|
33
|
+
--hl-6: var(--light-hl-6);
|
|
34
|
+
--hl-7: var(--light-hl-7);
|
|
35
|
+
--hl-8: var(--light-hl-8);
|
|
36
|
+
--hl-9: var(--light-hl-9);
|
|
37
|
+
--code-background: var(--light-code-background);
|
|
38
|
+
} }
|
|
39
|
+
|
|
40
|
+
@media (prefers-color-scheme: dark) { :root {
|
|
41
|
+
--hl-0: var(--dark-hl-0);
|
|
42
|
+
--hl-1: var(--dark-hl-1);
|
|
43
|
+
--hl-2: var(--dark-hl-2);
|
|
44
|
+
--hl-3: var(--dark-hl-3);
|
|
45
|
+
--hl-4: var(--dark-hl-4);
|
|
46
|
+
--hl-5: var(--dark-hl-5);
|
|
47
|
+
--hl-6: var(--dark-hl-6);
|
|
48
|
+
--hl-7: var(--dark-hl-7);
|
|
49
|
+
--hl-8: var(--dark-hl-8);
|
|
50
|
+
--hl-9: var(--dark-hl-9);
|
|
51
|
+
--code-background: var(--dark-code-background);
|
|
52
|
+
} }
|
|
53
|
+
|
|
54
|
+
:root[data-theme='light'] {
|
|
55
|
+
--hl-0: var(--light-hl-0);
|
|
56
|
+
--hl-1: var(--light-hl-1);
|
|
57
|
+
--hl-2: var(--light-hl-2);
|
|
58
|
+
--hl-3: var(--light-hl-3);
|
|
59
|
+
--hl-4: var(--light-hl-4);
|
|
60
|
+
--hl-5: var(--light-hl-5);
|
|
61
|
+
--hl-6: var(--light-hl-6);
|
|
62
|
+
--hl-7: var(--light-hl-7);
|
|
63
|
+
--hl-8: var(--light-hl-8);
|
|
64
|
+
--hl-9: var(--light-hl-9);
|
|
65
|
+
--code-background: var(--light-code-background);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
:root[data-theme='dark'] {
|
|
69
|
+
--hl-0: var(--dark-hl-0);
|
|
70
|
+
--hl-1: var(--dark-hl-1);
|
|
71
|
+
--hl-2: var(--dark-hl-2);
|
|
72
|
+
--hl-3: var(--dark-hl-3);
|
|
73
|
+
--hl-4: var(--dark-hl-4);
|
|
74
|
+
--hl-5: var(--dark-hl-5);
|
|
75
|
+
--hl-6: var(--dark-hl-6);
|
|
76
|
+
--hl-7: var(--dark-hl-7);
|
|
77
|
+
--hl-8: var(--dark-hl-8);
|
|
78
|
+
--hl-9: var(--dark-hl-9);
|
|
79
|
+
--code-background: var(--dark-code-background);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.hl-0 { color: var(--hl-0); }
|
|
83
|
+
.hl-1 { color: var(--hl-1); }
|
|
84
|
+
.hl-2 { color: var(--hl-2); }
|
|
85
|
+
.hl-3 { color: var(--hl-3); }
|
|
86
|
+
.hl-4 { color: var(--hl-4); }
|
|
87
|
+
.hl-5 { color: var(--hl-5); }
|
|
88
|
+
.hl-6 { color: var(--hl-6); }
|
|
89
|
+
.hl-7 { color: var(--hl-7); }
|
|
90
|
+
.hl-8 { color: var(--hl-8); }
|
|
91
|
+
.hl-9 { color: var(--hl-9); }
|
|
92
|
+
pre, code { background: var(--code-background); }
|