@nickyzj2023/utils 1.0.10 → 1.0.12
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/dom.d.ts +8 -8
- package/dist/hoc.d.ts +43 -41
- package/dist/index.d.ts +5 -4
- package/dist/index.js +2 -6
- package/dist/is.d.ts +6 -6
- package/dist/network.d.ts +48 -40
- package/dist/object.d.ts +1 -0
- package/dist/time.d.ts +7 -0
- package/docs/assets/highlight.css +92 -92
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/functions/fetcher.html +14 -16
- package/docs/functions/isObject.html +3 -7
- package/docs/functions/sleep.html +6 -0
- package/docs/functions/timeLog.html +5 -5
- package/docs/functions/to.html +7 -11
- package/docs/functions/withCache.html +12 -12
- package/docs/modules.html +1 -1
- package/package.json +1 -1
- package/src/hoc.ts +114 -109
- package/src/index.ts +5 -4
- package/src/network.ts +106 -101
- package/src/object.ts +32 -0
- package/src/time.ts +11 -0
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,43 @@
|
|
|
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 (
|
|
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
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* fetchData
|
|
28
|
-
* await fetchData(
|
|
29
|
-
*
|
|
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: (
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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 function (url: string) {
|
|
16
|
+
* const data = await fetch(url).then((res) => res.json());
|
|
17
|
+
* this.setTtl(data.expiresIn); // 根据实际情况调整过期时间
|
|
18
|
+
* return data;
|
|
19
|
+
* });
|
|
20
|
+
*
|
|
21
|
+
* await fetchData(urlA);
|
|
22
|
+
* await fetchData(urlA); // 使用缓存结果
|
|
23
|
+
* await fetchData(urlB);
|
|
24
|
+
* await fetchData(urlB); // 使用缓存结果
|
|
25
|
+
*
|
|
26
|
+
* fetchData.clear(); // 清除缓存
|
|
27
|
+
* await fetchData(urlA); // 重新请求
|
|
28
|
+
* await fetchData(urlB); // 重新请求
|
|
29
|
+
*
|
|
30
|
+
* // 缓存过期前
|
|
31
|
+
* await sleep();
|
|
32
|
+
* fetchData.updateTtl(180); // 更新 ttl 并为所有未过期的缓存续期
|
|
33
|
+
* await fetchData(urlA); // 使用缓存结果
|
|
34
|
+
* await fetchData(urlB); // 使用缓存结果
|
|
35
|
+
*/
|
|
36
|
+
export declare const withCache: <Args extends any[], Result>(fn: (this: {
|
|
37
|
+
setTtl: SetTtl;
|
|
38
|
+
}, ...args: Args) => Result, ttlSeconds?: number) => {
|
|
39
|
+
(...args: Args): Result;
|
|
40
|
+
clear(): void;
|
|
41
|
+
updateTtl(seconds: number): void;
|
|
42
|
+
};
|
|
43
|
+
export {};
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
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";
|
|
5
|
+
export * from "./time";
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
|
|
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
|
|
1
|
+
// @bun
|
|
2
|
+
var M=(...P)=>{console.log(`${new Date().toLocaleTimeString()}`,...P)};var Q=(P,W=-1)=>{let D=new Map,m=(...x)=>{let H=JSON.stringify(x),$=Date.now(),f=D.get(H);if(f&&$<f.expiresAt)return f.value;let z={setTtl:(F)=>W=F},I=W===-1?1/0:$+W*1000,C=P.apply(z,x);if(C instanceof Promise){let F=C.then((K)=>{return D.set(H,{value:K,expiresAt:I}),K});return D.set(H,{value:F,expiresAt:I}),F}return D.set(H,{value:C,expiresAt:I}),C};return m.clear=()=>D.clear(),m.updateTtl=(x)=>{W=x;let H=Date.now(),$=H+x*1000;for(let[f,z]of D.entries())if(z.expiresAt>H)z.expiresAt=$,D.set(f,z)},m};var B=(P)=>{return P?.constructor===Object};var J=(...P)=>{return P.reduce((W,D)=>{if(!B(D))return W;return Object.keys(D).forEach((m)=>{let x=W[m],H=D[m];if(Array.isArray(x)&&Array.isArray(H))W[m]=[...x,...H];else if(B(H)&&B(x))W[m]=J(x,H);else W[m]=H}),W},{})};var E=(P="",W={})=>{let D=async(m,x={})=>{let H=P?`${P}${m}`:m,$=J(W,x);if(B($.body))$.body=JSON.stringify($.body),$.headers={"Content-Type":"application/json"};let f=await fetch(H,$);if(!f.ok)throw Error(f.statusText);return await f.json()};return{get:(m,x={})=>D(m,{...x,method:"GET"}),post:(m,x,H={})=>D(m,{...H,method:"POST",body:x}),put:(m,x,H={})=>D(m,{...H,method:"PUT",body:x}),delete:(m,x={})=>D(m,{...x,method:"DELETE"})}},T=async(P)=>{try{return[null,await P]}catch(W){return[W,void 0]}};var g=async(P=150)=>{return new Promise((W)=>{setTimeout(W,P)})};export{Q as withCache,T as to,M as timeLog,g as sleep,B as isObject,E as fetcher};
|
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,40 +1,48 @@
|
|
|
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
|
-
* const
|
|
20
|
-
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
1
|
+
/**
|
|
2
|
+
* 基于 Fetch API 的请求客户端
|
|
3
|
+
* @param baseURL 接口前缀,如 https://nickyzj.run:3030,也可以不填
|
|
4
|
+
* @param defaultOptions 客户端级别的请求选项,方法级别的选项会覆盖这里的相同值
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* 特性:
|
|
8
|
+
* - 合并客户端级别、方法级别的请求选项
|
|
9
|
+
* - 在 body 里直接传递对象
|
|
10
|
+
* - 可选择使用 to() 处理返回结果为 [Error, Response]
|
|
11
|
+
* - 可选择使用 withCache() 缓存请求结果
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* // 用法1:创建客户端
|
|
15
|
+
* const api = fetcher("https://nickyzj.run:3030", { headers: { Authorization: "Bearer token" } });
|
|
16
|
+
* const res = await api.get<Blog>("/blogs/hello-world");
|
|
17
|
+
*
|
|
18
|
+
* // 用法2:直接发送请求
|
|
19
|
+
* const res = await fetcher().get<Blog>("https://nickyzj.run:3030/blogs/hello-world");
|
|
20
|
+
*
|
|
21
|
+
* // 安全处理返回结果
|
|
22
|
+
* const [error, data] = await to(api.get<Blog>("/blogs/hello-world"));
|
|
23
|
+
* if (error) {
|
|
24
|
+
* console.error(error);
|
|
25
|
+
* return;
|
|
26
|
+
* }
|
|
27
|
+
*
|
|
28
|
+
* // 缓存请求结果
|
|
29
|
+
* const getBlogs = withCache(api.get);
|
|
30
|
+
* await getBlogs("/blogs");
|
|
31
|
+
* await sleep(1000);
|
|
32
|
+
* await getBlogs("/blogs"); // 不请求,使用缓存结果
|
|
33
|
+
*/
|
|
34
|
+
export declare const fetcher: (baseURL?: string, defaultOptions?: RequestInit) => {
|
|
35
|
+
get: <T>(url: string, options?: Omit<RequestInit, "method">) => Promise<T>;
|
|
36
|
+
post: <T>(url: string, body: any, options?: Omit<RequestInit, "method" | "body">) => Promise<T>;
|
|
37
|
+
put: <T>(url: string, body: any, options?: Omit<RequestInit, "method" | "body">) => Promise<T>;
|
|
38
|
+
delete: <T>(url: string, options?: Omit<RequestInit, "method" | "body">) => Promise<T>;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Go 语言风格的异步处理方式
|
|
42
|
+
* @param promise 一个能被 await 的异步函数
|
|
43
|
+
* @returns 如果成功,返回 [null, 异步函数结果],否则返回 [Error, undefined]
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* const [error, response] = await to(fetcher().get<Blog>("/blogs/hello-world"));
|
|
47
|
+
*/
|
|
48
|
+
export declare const to: <T, U = Error>(promise: Promise<T>) => Promise<[null, T] | [U, undefined]>;
|
package/dist/object.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const mergeObjects: (...objects: Record<string, any>[]) => Record<string, any>;
|
package/dist/time.d.ts
ADDED
|
@@ -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); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
window.navigationData = "eJyLrlYqSa0oUbJSSkstSc5ILVLSUSpILMkACZTmJZdk5ucV60Ol9DJKcnOUdJSyM/NSlKzMTGp14Jozi/
|
|
1
|
+
window.navigationData = "eJyLrlYqSa0oUbJSSkstSc5ILVLSUSpILMkACZTmJZdk5ucV60Ol9DJKcnOUdJSyM/NSlKzMTGp14Jozi/2TslKTS7Dphsnh0V6ck5pagE0vWAKPxpLM3FSf/HRsWqFS+DTnY9WXj0dLeWZJhnNickYqNp1wSQwDYgFf6Hjx"
|
package/docs/assets/search.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
window.searchData = "
|
|
1
|
+
window.searchData = "eJyNk0trhDAUhf/LWYcZH7HQbLsqFLrrJkiZxjudtGoG48wUxP9e4qMZMVB3em++L+DxdGjMzULIDt+6LiAeOEN9qAgCR2rViRowXJrSvV9q1WpT2/202Z3aqgSDKg/WkoUAehYQafv68UWqDZjm1VaVLYnOAc8w3yppdUUv5jOgmTabRSbkMFvxm25PTwd1ooDlbxeS5Qy6LugHosOVGqtNDYFkl+4ewXDUVBYu0/EeBmWqimr3+QujLsNjPh17I9Waxh0eT+8jMBmxONvxiOc5kzM8LIbB7PCTAYzBZBwC4xUYL8AETCYhMFmByQJMwWQaAtMVmC5ADiZ5COQrkC/ADExmITBbgeNkCOpKTUvF8xiYlL5XHd6nGKP5n+gQQXR970MTXX+Xm9u5e7Q1U6W8JPaSeJNkKpM3JN6QbDK4vpSuSd6Reke6zWHuce5xvgl3RVFjibwl85bsf0vOcNZnKnVNEDLv+1/caKN7";
|