await-num-q 1.2.7 → 1.3.0

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/.eslintrc.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "env": {
3
+ "browser": true,
4
+ "es2021": true
5
+ },
6
+ "extends": [
7
+ "eslint:recommended",
8
+ "plugin:@typescript-eslint/recommended"
9
+ ],
10
+ "parser": "@typescript-eslint/parser",
11
+ "parserOptions": {
12
+ "ecmaVersion": 2020,
13
+ "sourceType": "module"
14
+ },
15
+ "plugins": ["@typescript-eslint"],
16
+ "rules": {
17
+ // 基础规则
18
+ "no-console": ["warn"],
19
+ "no-debugger": ["error"],
20
+
21
+ // TypeScript 特定规则
22
+ "@typescript-eslint/no-explicit-any": ["off"],
23
+ "@typescript-eslint/no-inferrable-types": ["warn", { "ignoreParameters": true }],
24
+ "@typescript-eslint/no-non-null-assertion": ["error"],
25
+ "semi": ["error", "always"],
26
+ "comma-dangle": ["error", "always-multiline"],
27
+ "comma-spacing": ["error", { "before": false, "after": true }],
28
+ "space-infix-ops": ["error"],
29
+ "keyword-spacing": ["error"],
30
+ "object-curly-spacing": ["error", "always"],
31
+ "array-bracket-spacing": ["error", "never"]
32
+ }
33
+ }
package/README.md CHANGED
@@ -1,11 +1,19 @@
1
+ - [await-num-q 限数阀](#await-num-q-限数阀)
2
+ - [场景](#场景)
3
+ - [介绍](#介绍)
4
+ - [下载](#下载)
5
+ - [使用](#使用)
6
+ - [api列表](#api列表)
7
+ - [仓库地址](#仓库地址)
8
+
1
9
  # await-num-q 限数阀
2
- ## 关键字
3
- - 异步
4
- - 队列
5
- - 限数阀
6
- - 限制异步任务数量
7
- - 压缩请求
8
- - 合并请求
10
+
11
+ 不知道大家有没有遇到这种场景,在上传文件分片的时候很多分片一起上传,导致浏览器对单个域名的请求过多其他的请求全都挂起了,页面直接其他请求无响应但是 页面又不可以刷新。这个时候要是能有一个工具帮我们发送请求并且控制并发数量的话就不会有这个限制了,并且还能够失败重试。或者是在一个列表上单个位置可能需要请求多个相同的接口,其实可以等待之前的接口结束直接使用,但是需要做的判断就比较多,不如我直接在这个接口返回数据的过程中丢弃其他相同的请求只用等待这一个。
12
+
13
+ ## 场景
14
+ 在多个不同请求的时候需要限制并发数量使用 asyncQueue
15
+
16
+ 在多个参数相同请求且几乎同一时刻发出的时候需要做到合并,使用MergeAsync
9
17
  ## 介绍
10
18
  这是一个用于解决异步任务数量太大需要`限制异步任务数量的库`,比如浏览器端 一次性发送很多的请求会导致请求挂起,例如在有大量图片加载时 网络不太好会导致后续其他的接口请求挂起得不到反馈,这时需要一个工具来解决同时请求图片的数量不得大于某个值,这样后续的接口请求才能正常的发送。于是此库便诞生了
11
19
  ## 下载
@@ -21,18 +29,57 @@ yarn i await-num-q
21
29
 
22
30
  > 导入
23
31
  ```js
24
- import { asyncQueue } from 'await-num-q'
32
+ import { asyncQueue, MergeAsync } from 'await-num-q'
25
33
  ```
26
34
  > 初始化队列
27
35
  ```js
28
- let q = new asyncQueue(3)// 3 表示能够同时在当前队列执行的任务数量
36
+ /**
37
+ *
38
+ * 异步参数对象
39
+ * @property max 最大并发数
40
+ * @property retry 失败重试次数
41
+ * @property endCallback 队列结束回调函数
42
+ */
43
+ // export type AsyncParams = {
44
+ // max?: number;
45
+ // retry?: number;
46
+ // endCallback?: () => void;
47
+ // };
48
+
49
+ // 所有任务完成的回调
50
+ function endCallback() {}
51
+ // 最大并发数量
52
+ const max = 3
53
+ // 失败重试次数
54
+ const retry = 3
55
+
56
+ let q = new asyncQueue(max,retry,endCallback)
29
57
  ```
30
58
  > 执行
31
59
  ```js
32
60
  async function test(){
33
61
  async function _get(){}
62
+ // 可以把请求推进去但是不直接执行
63
+ // q.push(_get)
64
+ // q.run()
65
+ // 若是想直接执行
66
+ // q.run(_get, data => {}, err => {})
67
+ // ----------------------
68
+ // 但是 一般直接使用下面这种方式 这个函数是对上面的封装
34
69
  let data = await q.wait(_get) // 这样就能拿到请求的数据 且不会超过指定数量
35
70
  }
71
+ test()
72
+ // 合并多个请求
73
+ async function test2(){
74
+ // 该函数模拟多个请求
75
+ // 这里被包装的是某个接口
76
+ }
77
+
78
+
79
+ // 模拟多个位置 需要使用这个请求
80
+ for(let i = 0; i < 10; i++){
81
+ await MergeAsync(test2,"请求用的参数或者是唯一的key")
82
+ }
36
83
  ```
37
84
  ## api列表
38
85
 
@@ -48,16 +95,17 @@ export type AsyncParams = {
48
95
  retry?: number;
49
96
  endCallback?: () => void;
50
97
  };
98
+ export type RunFun = (...args: any) => Promise<any>;
51
99
  /**
52
100
  * 异步任务对象
53
101
  */
54
- export type RunFunBoj = {
102
+ export interface RunFunBoj<T extends RunFun = () => Promise<any>> {
55
103
  status: "wait" | "ing" | "end" | "fail";
56
- target: Function;
104
+ target: T;
57
105
  retry: number;
58
- callback?: Function;
59
- err?: Function;
60
- };
106
+ callback?: <D>(data: D) => void;
107
+ err?: (e: any) => void;
108
+ }
61
109
  /**
62
110
  * 异步队列
63
111
  */
@@ -71,7 +119,7 @@ export declare class asyncQueue {
71
119
  * @param err 错误回调函数
72
120
  * @returns 添加成功与否
73
121
  */
74
- push(f: Function, callback?: Function, err?: Function): boolean;
122
+ push<T extends RunFun>(f: T, callback?: <D>(data: D) => void, err?: (e: any) => void): boolean;
75
123
  /**
76
124
  * 清除运行完成的任务
77
125
  */
@@ -83,18 +131,19 @@ export declare class asyncQueue {
83
131
  * @param err 错误回调函数
84
132
  * @returns 添加成功与否
85
133
  */
86
- run(f?: Function, callback?: Function, err?: Function): Promise<void>;
134
+ run<T extends RunFun>(f?: T, callback?: <D>(data: D) => void, err?: (e: any) => void): Promise<void>;
135
+ get status(): "ing" | "end";
87
136
  /**
88
137
  * 获取所有的 任务
89
138
  * @returns
90
139
  */
91
- getTasks(): RunFunBoj[];
140
+ getTasks(): RunFunBoj<() => Promise<any>>[];
92
141
  /**
93
142
  * 异步运行并得到返回值
94
143
  * @param fun 目标函数
95
144
  * @returns
96
145
  */
97
- wait(fun: (...arg: any) => any): Promise<any>;
146
+ wait<T extends RunFun>(fun: T): Promise<ReturnType<T>>;
98
147
  }
99
148
  /**
100
149
  * 在某个异步请求 参数相同 返回的值相同
@@ -105,6 +154,12 @@ export declare class asyncQueue {
105
154
  * @param param 函数传参 必须传入支持序列化的
106
155
  * @returns
107
156
  */
108
- export declare function MergeAsync<T extends (...args: any) => Promise<any>>(asyncFun: T, ...param: Parameters<T>): Promise<ReturnType<T>>;
157
+ export declare function MergeAsync<T extends RunFun>(asyncFun: T, ...param: Parameters<T>): Promise<ReturnType<T>>;
158
+
159
+ ```
160
+
161
+ ## 仓库地址
162
+ - [码云 gitee](https://gitee.com/fan-yanxi/await-num-q.git)
163
+ - [华为 gitcode](https://gitcode.com/black-hole/async-q)
109
164
 
110
- ```
165
+ 喜欢的话给个star吧
package/dist/index.d.ts CHANGED
@@ -9,16 +9,17 @@ export type AsyncParams = {
9
9
  retry?: number;
10
10
  endCallback?: () => void;
11
11
  };
12
+ export type RunFun = (...args: any) => Promise<any>;
12
13
  /**
13
14
  * 异步任务对象
14
15
  */
15
- export type RunFunBoj = {
16
+ export interface RunFunBoj<T extends RunFun = () => Promise<any>> {
16
17
  status: "wait" | "ing" | "end" | "fail";
17
- target: Function;
18
+ target: T;
18
19
  retry: number;
19
- callback?: Function;
20
- err?: Function;
21
- };
20
+ callback?: <D>(data: D) => void;
21
+ err?: (e: any) => void;
22
+ }
22
23
  /**
23
24
  * 异步队列
24
25
  */
@@ -32,7 +33,7 @@ export declare class asyncQueue {
32
33
  * @param err 错误回调函数
33
34
  * @returns 添加成功与否
34
35
  */
35
- push(f: Function, callback?: Function, err?: Function): boolean;
36
+ push<T extends RunFun>(f: T, callback?: <D>(data: D) => void, err?: (e: any) => void): boolean;
36
37
  /**
37
38
  * 清除运行完成的任务
38
39
  */
@@ -44,18 +45,19 @@ export declare class asyncQueue {
44
45
  * @param err 错误回调函数
45
46
  * @returns 添加成功与否
46
47
  */
47
- run(f?: Function, callback?: Function, err?: Function): Promise<void>;
48
+ run<T extends RunFun>(f?: T, callback?: <D>(data: D) => void, err?: (e: any) => void): Promise<void>;
49
+ get status(): "ing" | "end";
48
50
  /**
49
51
  * 获取所有的 任务
50
52
  * @returns
51
53
  */
52
- getTasks(): RunFunBoj[];
54
+ getTasks(): RunFunBoj<() => Promise<any>>[];
53
55
  /**
54
56
  * 异步运行并得到返回值
55
57
  * @param fun 目标函数
56
58
  * @returns
57
59
  */
58
- wait(fun: (...arg: any) => any): Promise<any>;
60
+ wait<T extends RunFun>(fun: T): Promise<ReturnType<T>>;
59
61
  }
60
62
  /**
61
63
  * 在某个异步请求 参数相同 返回的值相同
@@ -66,4 +68,4 @@ export declare class asyncQueue {
66
68
  * @param param 函数传参 必须传入支持序列化的
67
69
  * @returns
68
70
  */
69
- export declare function MergeAsync<T extends (...args: any) => Promise<any>>(asyncFun: T, ...param: Parameters<T>): Promise<ReturnType<T>>;
71
+ export declare function MergeAsync<T extends RunFun>(asyncFun: T, ...param: Parameters<T>): Promise<ReturnType<T>>;
package/dist/index.js CHANGED
@@ -30,7 +30,13 @@ class asyncQueue {
30
30
  _asyncQueue_Queue.set(this, []);
31
31
  _asyncQueue_runNum.set(this, 0);
32
32
  _asyncQueue_retry.set(this, 0);
33
+ /**
34
+ * 最大运行时 请求数量
35
+ */
33
36
  _asyncQueue_maxNum.set(this, 3);
37
+ /**
38
+ * 当前队列的运行状况
39
+ */
34
40
  _asyncQueue_status.set(this, "end");
35
41
  _asyncQueue_endCallback.set(this, void 0);
36
42
  if (max) {
@@ -52,7 +58,8 @@ class asyncQueue {
52
58
  if (f.constructor.name !== "Function") {
53
59
  return false;
54
60
  }
55
- let funObj = {
61
+ // 队列对象 运行时
62
+ const funObj = {
56
63
  status: "wait",
57
64
  target: f,
58
65
  retry: __classPrivateFieldGet(this, _asyncQueue_retry, "f"),
@@ -80,13 +87,14 @@ class asyncQueue {
80
87
  return __awaiter(this, void 0, void 0, function* () {
81
88
  var _a, _b;
82
89
  if (f) {
90
+ // 注入函数
83
91
  this.push(f, callback, err);
84
92
  }
85
93
  if (__classPrivateFieldGet(this, _asyncQueue_runNum, "f") >= __classPrivateFieldGet(this, _asyncQueue_maxNum, "f")) {
86
94
  return;
87
95
  }
88
96
  let fun = null;
89
- for (let f of __classPrivateFieldGet(this, _asyncQueue_Queue, "f")) {
97
+ for (const f of __classPrivateFieldGet(this, _asyncQueue_Queue, "f")) {
90
98
  if (f.status == "wait") {
91
99
  fun = f;
92
100
  break;
@@ -122,20 +130,19 @@ class asyncQueue {
122
130
  }
123
131
  }
124
132
  else {
125
- for (let f of __classPrivateFieldGet(this, _asyncQueue_Queue, "f")) {
133
+ for (const f of __classPrivateFieldGet(this, _asyncQueue_Queue, "f")) {
126
134
  if (f.status != "end" && f.status != "fail") {
127
135
  return;
128
136
  }
129
137
  }
130
- // if (this.#status == "ing") {
131
138
  __classPrivateFieldSet(this, _asyncQueue_status, "end", "f");
132
139
  __classPrivateFieldGet(this, _asyncQueue_endCallback, "f").call(this);
133
- // }else if(this.#Queue.length === 0){
134
- // this.#endCallback();
135
- // }
136
140
  }
137
141
  });
138
142
  }
143
+ get status() {
144
+ return __classPrivateFieldGet(this, _asyncQueue_status, "f");
145
+ }
139
146
  /**
140
147
  * 获取所有的 任务
141
148
  * @returns
@@ -170,14 +177,15 @@ const mergePromise = new WeakMap();
170
177
  */
171
178
  function MergeAsync(asyncFun, ...param) {
172
179
  return __awaiter(this, void 0, void 0, function* () {
173
- let key = JSON.stringify(param);
180
+ const key = JSON.stringify(param);
174
181
  if (mergePromise.has(key)) {
175
182
  return mergePromise.get(key);
176
183
  }
177
- let r = (yield asyncFun(...param));
184
+ mergePromise.set(key, asyncFun(...param));
185
+ const r = (yield asyncFun(...param));
178
186
  mergePromise.delete(key);
179
187
  return r;
180
188
  });
181
189
  }
182
190
  exports.MergeAsync = MergeAsync;
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBdUJBOztHQUVHO0FBQ0gsTUFBYSxVQUFVO0lBT3JCLFlBQVksRUFDVixHQUFHLEVBQ0gsS0FBSyxFQUNMLFdBQVcsR0FDQztRQVZkLDRCQUFzQixFQUFFLEVBQUM7UUFDekIsNkJBQVUsQ0FBQyxFQUFDO1FBQ1osNEJBQVMsQ0FBQyxFQUFDO1FBQ1gsNkJBQVUsQ0FBQyxFQUFDO1FBQ1osNkJBQXlCLEtBQUssRUFBQztRQUMvQiwwQ0FBeUI7UUFNdkIsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNSLHVCQUFBLElBQUksc0JBQVcsR0FBRyxNQUFBLENBQUM7UUFDckIsQ0FBQztRQUNELElBQUksS0FBSyxFQUFFLENBQUM7WUFDVix1QkFBQSxJQUFJLHFCQUFVLEtBQUssTUFBQSxDQUFDO1FBQ3RCLENBQUM7UUFFRCx1QkFBQSxJQUFJLDJCQUFnQixXQUFXLElBQUksY0FBYyxDQUFDLE1BQUEsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSxDQUFDLENBQVcsRUFBRSxRQUFtQixFQUFFLEdBQWM7UUFDbkQsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUN0QyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLE1BQU0sR0FBYztZQUN0QixNQUFNLEVBQUUsTUFBTTtZQUNkLE1BQU0sRUFBRSxDQUFDO1lBQ1QsS0FBSyxFQUFFLHVCQUFBLElBQUkseUJBQU87WUFDbEIsUUFBUTtZQUNSLEdBQUc7U0FDSixDQUFDO1FBQ0YsdUJBQUEsSUFBSSx5QkFBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSztRQUNoQix1QkFBQSxJQUFJLHFCQUFVLHVCQUFBLElBQUkseUJBQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUN4QyxJQUFJLENBQUMsTUFBTSxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzlELE1BQUEsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDRyxHQUFHLENBQUMsQ0FBWSxFQUFFLFFBQW1CLEVBQUUsR0FBYzs7O1lBQ3pELElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLENBQUM7WUFDRCxJQUFJLHVCQUFBLElBQUksMEJBQVEsSUFBSSx1QkFBQSxJQUFJLDBCQUFRLEVBQUUsQ0FBQztnQkFDakMsT0FBTztZQUNULENBQUM7WUFDRCxJQUFJLEdBQUcsR0FBcUIsSUFBSSxDQUFDO1lBQ2pDLEtBQUssSUFBSSxDQUFDLElBQUksdUJBQUEsSUFBSSx5QkFBTyxFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDdkIsR0FBRyxHQUFHLENBQUMsQ0FBQztvQkFDUixNQUFNO2dCQUNSLENBQUM7WUFDSCxDQUFDO1lBQ0QsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDUixJQUFJLElBQUksR0FBUSxJQUFJLENBQUM7Z0JBQ3JCLElBQUksQ0FBQztvQkFDSCx1QkFBQSxJQUFJLHNCQUFXLEtBQUssTUFBQSxDQUFDO29CQUNyQixHQUFHLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztvQkFDbkIsaURBQUEsQ0FBQSwwREFBWSxFQUFaLElBQWMsSUFBQSxDQUFBLE1BQUEsQ0FBQztvQkFDZixJQUFJLEdBQUcsTUFBTSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzFCLElBQUksR0FBRyxDQUFDLFFBQVEsWUFBWSxRQUFRLEVBQUUsQ0FBQzt3QkFDckMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDckIsQ0FBQztvQkFDRCxHQUFHLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztnQkFDckIsQ0FBQztnQkFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO29CQUNYLElBQUksR0FBRyxDQUFDLEdBQUcsWUFBWSxRQUFRLEVBQUUsQ0FBQzt3QkFDaEMsSUFBSSxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDOzRCQUNsQixHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQzs0QkFDcEIsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUNkLENBQUM7NkJBQU0sQ0FBQzs0QkFDTixHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUNYLEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO3dCQUN0QixDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQzt3QkFBUyxDQUFDO29CQUNULGlEQUFBLENBQUEsMERBQVksRUFBWixJQUFjLElBQUEsQ0FBQSxNQUFBLENBQUM7b0JBQ2YsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNiLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sS0FBSyxJQUFJLENBQUMsSUFBSSx1QkFBQSxJQUFJLHlCQUFPLEVBQUUsQ0FBQztvQkFDMUIsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLE1BQU0sRUFBRSxDQUFDO3dCQUM1QyxPQUFPO29CQUNULENBQUM7Z0JBQ0gsQ0FBQztnQkFDRCwrQkFBK0I7Z0JBQy9CLHVCQUFBLElBQUksc0JBQVcsS0FBSyxNQUFBLENBQUM7Z0JBQ3JCLHVCQUFBLElBQUksK0JBQWEsTUFBakIsSUFBSSxDQUFlLENBQUM7Z0JBQ3BCLHNDQUFzQztnQkFDdEMseUJBQXlCO2dCQUN6QixJQUFJO1lBQ04sQ0FBQztRQUNILENBQUM7S0FBQTtJQUVEOzs7T0FHRztJQUNILFFBQVE7UUFDTixPQUFPLHVCQUFBLElBQUkseUJBQU8sQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNHLElBQUksQ0FBQyxHQUF5Qjs7WUFDbEMsT0FBTyxNQUFNLElBQUksT0FBTyxDQUF5QixDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtnQkFDNUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0NBQ0Y7QUFySUQsZ0NBcUlDOztBQUVELE1BQU0sWUFBWSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7QUFFbkM7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFzQixVQUFVLENBQzlCLFFBQVcsRUFDWCxHQUFHLEtBQW9COztRQUV2QixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBVyxDQUFDO1FBQzFDLElBQUksWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzFCLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQWtCLENBQUM7UUFDaEQsQ0FBQztRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBa0IsQ0FBQztRQUNwRCxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztDQUFBO0FBWEQsZ0NBV0MifQ==
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBeUJBOztHQUVHO0FBQ0gsTUFBYSxVQUFVO0lBYXJCLFlBQVksRUFDVixHQUFHLEVBQ0gsS0FBSyxFQUNMLFdBQVcsR0FDQztRQWhCZCw0QkFBc0IsRUFBRSxFQUFDO1FBQ3pCLDZCQUFVLENBQUMsRUFBQztRQUNaLDRCQUFTLENBQUMsRUFBQztRQUNYOztXQUVHO1FBQ0gsNkJBQVUsQ0FBQyxFQUFDO1FBQ1o7O1dBRUc7UUFDSCw2QkFBeUIsS0FBSyxFQUFDO1FBQy9CLDBDQUF5QjtRQU12QixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1IsdUJBQUEsSUFBSSxzQkFBVyxHQUFHLE1BQUEsQ0FBQztRQUNyQixDQUFDO1FBQ0QsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLHVCQUFBLElBQUkscUJBQVUsS0FBSyxNQUFBLENBQUM7UUFDdEIsQ0FBQztRQUVELHVCQUFBLElBQUksMkJBQWdCLFdBQVcsSUFBSSxjQUFjLENBQUMsTUFBQSxDQUFDO0lBQ3JELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxJQUFJLENBQW1CLENBQUksRUFBRSxRQUE4QixFQUFFLEdBQXFCO1FBQ2hGLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDdEMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsV0FBVztRQUNYLE1BQU0sTUFBTSxHQUFjO1lBQ3hCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsTUFBTSxFQUFFLENBQUM7WUFDVCxLQUFLLEVBQUUsdUJBQUEsSUFBSSx5QkFBTztZQUNsQixRQUFRO1lBQ1IsR0FBRztTQUNKLENBQUM7UUFDRix1QkFBQSxJQUFJLHlCQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxL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
package/package.json CHANGED
@@ -1,13 +1,32 @@
1
- {
2
- "name": "await-num-q",
3
- "version": "1.2.7",
4
- "description": "一个用于 处理 指定并行异步任务数量的 队列",
5
- "keywords":["q","await","async","队列","异步","并行"],
6
- "main": "dist/index.js",
7
- "scripts": {
8
- "test": "echo \"Error: no test specified\" && exit 1"
9
- },
10
- "types": "dist/index.d.ts",
11
- "author": "xxl.nice@foxmail.com",
12
- "license": "ISC"
13
- }
1
+ {
2
+ "name": "await-num-q",
3
+ "version": "1.3.0",
4
+ "description": "一个用于 处理 指定并行异步任务数量的 队列",
5
+ "keywords": [
6
+ "q",
7
+ "await",
8
+ "async",
9
+ "队列",
10
+ "异步",
11
+ "并行"
12
+ ],
13
+ "main": "dist/index.js",
14
+ "scripts": {
15
+ "lint": "eslint . --ext .ts,.tsx",
16
+ "lint:fix": "eslint . --ext .ts,.tsx --fix",
17
+ "build": "tsc",
18
+ "version:main": "npm version major",
19
+ "version:update": "npm version minor",
20
+ "version:fix": "npm version patch"
21
+ },
22
+ "types": "dist/index.d.ts",
23
+ "author": "xxl.nice@foxmail.com",
24
+ "license": "ISC",
25
+ "devDependencies": {
26
+ "@types/estree": "^1.0.7",
27
+ "@types/json-schema": "^7.0.15",
28
+ "@typescript-eslint/eslint-plugin": "^8.32.1",
29
+ "@typescript-eslint/parser": "^8.32.1",
30
+ "eslint": "^8.57.1"
31
+ }
32
+ }