@aiao/utils 0.0.5 → 0.0.6
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/@browser/broadcast-channel-pool.d.ts +26 -6
- package/dist/@browser/broadcast-channel-pool.d.ts.map +1 -1
- package/dist/@browser/index.d.ts +1 -0
- package/dist/@browser/index.d.ts.map +1 -1
- package/dist/@browser/opfs-detection.d.ts +12 -0
- package/dist/@browser/opfs-detection.d.ts.map +1 -0
- package/dist/array/sortBy.d.ts +1 -1
- package/dist/async/{AsyncTaskExecutor.d.ts → AsyncQueueExecutor.d.ts} +15 -10
- package/dist/async/AsyncQueueExecutor.d.ts.map +1 -0
- package/dist/async/index.d.ts +1 -1
- package/dist/async/index.d.ts.map +1 -1
- package/dist/index.js +412 -383
- package/dist/indexing/fractional-indexing.d.ts +6 -3
- package/dist/indexing/fractional-indexing.d.ts.map +1 -1
- package/dist/tools/event.d.ts +8 -1
- package/dist/tools/event.d.ts.map +1 -1
- package/dist/tools/index.d.ts +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/async/AsyncTaskExecutor.d.ts.map +0 -1
|
@@ -1,18 +1,38 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
|
-
export
|
|
2
|
+
export interface BroadcastTopic<T = any> {
|
|
3
3
|
message$: Observable<T>;
|
|
4
4
|
emit: (message: T) => void;
|
|
5
|
-
}
|
|
5
|
+
}
|
|
6
6
|
/**
|
|
7
|
-
* BroadcastChannel
|
|
8
|
-
* 统一管理所有的 BroadcastChannel
|
|
7
|
+
* BroadcastChannel 池
|
|
8
|
+
* 统一管理所有的 BroadcastChannel,支持自动资源清理
|
|
9
9
|
*/
|
|
10
10
|
declare class BroadcastChannelPool {
|
|
11
|
-
|
|
11
|
+
private cache;
|
|
12
|
+
/**
|
|
13
|
+
* 发送消息到指定频道
|
|
14
|
+
* @param event 频道名称
|
|
15
|
+
* @param data 消息数据
|
|
16
|
+
* @throws 如果频道不存在则抛出错误
|
|
17
|
+
*/
|
|
12
18
|
emit<T = any>(event: string, data: T): void;
|
|
13
|
-
|
|
19
|
+
/**
|
|
20
|
+
* 订阅指定频道的消息
|
|
21
|
+
* @param event 频道名称
|
|
22
|
+
* @returns Observable 消息流
|
|
23
|
+
*/
|
|
24
|
+
on<T = any>(event: string): Observable<T>;
|
|
25
|
+
/**
|
|
26
|
+
* 减少引用计数,当计数为 0 时关闭频道
|
|
27
|
+
*/
|
|
28
|
+
private decrementRef;
|
|
14
29
|
}
|
|
15
30
|
export declare const pool: BroadcastChannelPool;
|
|
31
|
+
/**
|
|
32
|
+
* 创建一个 BroadcastChannel 主题
|
|
33
|
+
* @param event 频道名称
|
|
34
|
+
* @returns BroadcastTopic 对象,包含消息流和发送方法
|
|
35
|
+
*/
|
|
16
36
|
export declare const createBroadcastTopic: <T = any>(event: string) => BroadcastTopic<T>;
|
|
17
37
|
export {};
|
|
18
38
|
//# sourceMappingURL=broadcast-channel-pool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broadcast-channel-pool.d.ts","sourceRoot":"","sources":["../../src/@browser/broadcast-channel-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"broadcast-channel-pool.d.ts","sourceRoot":"","sources":["../../src/@browser/broadcast-channel-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAyB,MAAM,MAAM,CAAC;AAEzD,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,GAAG;IACrC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC;CAC5B;AAQD;;;GAGG;AACH,cAAM,oBAAoB;IACxB,OAAO,CAAC,KAAK,CAAiC;IAE9C;;;;;OAKG;IACH,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAQ3C;;;;OAIG;IACH,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;IAmCzC;;OAEG;IACH,OAAO,CAAC,YAAY;CASrB;AAED,eAAO,MAAM,IAAI,sBAA6B,CAAC;AAE/C;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,GAAG,GAAG,EAAE,OAAO,MAAM,KAAG,cAAc,CAAC,CAAC,CAQ7E,CAAC"}
|
package/dist/@browser/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/@browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/@browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 检测浏览器是否支持 OPFS (Origin Private File System)
|
|
3
|
+
* @returns {boolean} 是否支持 OPFS
|
|
4
|
+
*/
|
|
5
|
+
export declare const isOPFSSupported: () => boolean;
|
|
6
|
+
/**
|
|
7
|
+
* 异步检测 OPFS 是否真正可用
|
|
8
|
+
* 有些浏览器可能有 API 但实际不可用
|
|
9
|
+
* @returns {Promise<boolean>} 是否可用
|
|
10
|
+
*/
|
|
11
|
+
export declare const checkOPFSAvailable: () => Promise<boolean>;
|
|
12
|
+
//# sourceMappingURL=opfs-detection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opfs-detection.d.ts","sourceRoot":"","sources":["../../src/@browser/opfs-detection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAO,OAAwE,CAAC;AAE5G;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAAa,OAAO,CAAC,OAAO,CAU1D,CAAC"}
|
package/dist/array/sortBy.d.ts
CHANGED
|
@@ -33,5 +33,5 @@
|
|
|
33
33
|
* @note 排序是原地(in-place)进行的,会修改原始数组
|
|
34
34
|
* @note 当属性不存在于对象中时,该对象会被视为值为undefined
|
|
35
35
|
*/
|
|
36
|
-
export declare const sortBy: (key: string) => (a: Record<string, any>, b: Record<string, any>) =>
|
|
36
|
+
export declare const sortBy: (key: string) => (a: Record<string, any>, b: Record<string, any>) => 1 | 0 | -1;
|
|
37
37
|
//# sourceMappingURL=sortBy.d.ts.map
|
|
@@ -2,31 +2,36 @@
|
|
|
2
2
|
* 执行器状态接口
|
|
3
3
|
*/
|
|
4
4
|
interface ExecutorStatus {
|
|
5
|
+
/**
|
|
6
|
+
* 当前运行中的任务数
|
|
7
|
+
*/
|
|
5
8
|
running: number;
|
|
9
|
+
/**
|
|
10
|
+
* 队列中等待的任务数
|
|
11
|
+
*/
|
|
6
12
|
queued: number;
|
|
13
|
+
/**
|
|
14
|
+
* 最大并发数
|
|
15
|
+
*/
|
|
7
16
|
maxConcurrent: number;
|
|
8
17
|
}
|
|
9
18
|
/**
|
|
10
19
|
* 异步任务执行器
|
|
11
20
|
* 支持并发控制和动态任务调度
|
|
12
21
|
*/
|
|
13
|
-
export declare class
|
|
22
|
+
export declare class AsyncQueueExecutor {
|
|
14
23
|
private maxConcurrent;
|
|
15
24
|
private running;
|
|
16
25
|
private queue;
|
|
26
|
+
private queue_map;
|
|
17
27
|
constructor(maxConcurrent?: number);
|
|
18
28
|
/**
|
|
19
29
|
* 添加任务到执行器
|
|
20
30
|
* @param task - 返回 Promise 的异步任务函数
|
|
31
|
+
* @param id - 任务唯一标识符(可选),用于去重相同任务
|
|
21
32
|
* @returns 返回任务执行结果的 Promise
|
|
22
33
|
*/
|
|
23
|
-
addTask<T>(task: () => Promise<T
|
|
24
|
-
/**
|
|
25
|
-
* 批量添加多个任务
|
|
26
|
-
* @param tasks - 任务数组
|
|
27
|
-
* @returns 返回所有任务结果的 Promise 数组
|
|
28
|
-
*/
|
|
29
|
-
addTasks<T>(tasks: (() => Promise<T>)[]): Promise<T[]>;
|
|
34
|
+
addTask<T>(task: () => Promise<T>, id?: string | number): Promise<T>;
|
|
30
35
|
/**
|
|
31
36
|
* 获取当前状态
|
|
32
37
|
* @returns 包含运行中任务数、队列长度和最大并发数
|
|
@@ -57,7 +62,7 @@ export declare class AsyncTaskExecutor {
|
|
|
57
62
|
/**
|
|
58
63
|
* 执行队列中的下一个任务
|
|
59
64
|
*/
|
|
60
|
-
private
|
|
65
|
+
private _run_next;
|
|
61
66
|
}
|
|
62
67
|
export {};
|
|
63
|
-
//# sourceMappingURL=
|
|
68
|
+
//# sourceMappingURL=AsyncQueueExecutor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AsyncQueueExecutor.d.ts","sourceRoot":"","sources":["../../src/async/AsyncQueueExecutor.ts"],"names":[],"mappings":"AAaA;;GAEG;AACH,UAAU,cAAc;IACtB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,SAAS,CAAiD;gBAEtD,aAAa,GAAE,MAAU;IAIrC;;;;;OAKG;IACH,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAiBpE;;;OAGG;IACH,SAAS,IAAI,cAAc;IAQ3B;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQtC;;OAEG;IACH,UAAU,IAAI,IAAI;IAQlB;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,OAAO,CAAC,SAAS;CAoBlB"}
|
package/dist/async/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/async/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/async/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
|