@sonarwatch/portfolio-plugins 0.12.91 → 0.12.93
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/CHANGELOG.md +8 -0
- package/package.json +1 -1
- package/src/AirdropFetcher.d.ts +2 -2
- package/src/AirdropFetcher.js +7 -7
- package/src/AirdropFetcher.js.map +1 -1
- package/src/utils/misc/runInParallel.d.ts +11 -0
- package/src/utils/misc/runInParallel.js +42 -0
- package/src/utils/misc/runInParallel.js.map +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [0.12.93](https://github.com/sonarwatch/portfolio/compare/plugins-0.12.92...plugins-0.12.93) (2024-07-25)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## [0.12.92](https://github.com/sonarwatch/portfolio/compare/plugins-0.12.91...plugins-0.12.92) (2024-07-25)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
5
13
|
## [0.12.91](https://github.com/sonarwatch/portfolio/compare/plugins-0.12.90...plugins-0.12.91) (2024-07-25)
|
|
6
14
|
|
|
7
15
|
|
package/package.json
CHANGED
package/src/AirdropFetcher.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export declare function setAirdropItemPrices(params: {
|
|
|
12
12
|
label: string;
|
|
13
13
|
price: number;
|
|
14
14
|
}[], networkId: NetworkIdType, cache: Cache): Promise<void>;
|
|
15
|
-
export declare function runAirdropFetchersByNetworkId(owner: string, networkId: NetworkIdType, fetchers: AirdropFetcher[], cache: Cache): Promise<AirdropFetchersResult>;
|
|
15
|
+
export declare function runAirdropFetchersByNetworkId(owner: string, networkId: NetworkIdType, fetchers: AirdropFetcher[], cache: Cache, useCache?: boolean): Promise<AirdropFetchersResult>;
|
|
16
16
|
export type AirdropStatics = Omit<AirdropRaw, 'status' | 'items'>;
|
|
17
17
|
export declare function getAirdropRaw(params: {
|
|
18
18
|
statics: AirdropStatics;
|
|
@@ -24,6 +24,6 @@ export declare function getAirdropRaw(params: {
|
|
|
24
24
|
isClaimed: IsClaimed;
|
|
25
25
|
}[];
|
|
26
26
|
}): AirdropRaw;
|
|
27
|
-
export declare function runAirdropFetchers(owner: string, addressSystem: AddressSystemType, fetchers: AirdropFetcher[], cache: Cache): Promise<AirdropFetchersResult>;
|
|
27
|
+
export declare function runAirdropFetchers(owner: string, addressSystem: AddressSystemType, fetchers: AirdropFetcher[], cache: Cache, useCache?: boolean): Promise<AirdropFetchersResult>;
|
|
28
28
|
export declare function runAirdropFetcher(owner: string, fetcher: AirdropFetcher, cache: Cache, useCache?: boolean): Promise<AirdropFetcherResult>;
|
|
29
29
|
export declare function airdropFetcherToFetcher(airdropFetcher: AirdropFetcher, platformId: string, id: string, claimEnd?: number): Fetcher;
|
package/src/AirdropFetcher.js
CHANGED
|
@@ -16,6 +16,7 @@ exports.airdropFetcherToFetcher = exports.runAirdropFetcher = exports.runAirdrop
|
|
|
16
16
|
const portfolio_core_1 = require("@sonarwatch/portfolio-core");
|
|
17
17
|
const promiseTimeout_1 = __importDefault(require("./utils/misc/promiseTimeout"));
|
|
18
18
|
const tokenPriceToAssetToken_1 = __importDefault(require("./utils/misc/tokenPriceToAssetToken"));
|
|
19
|
+
const runInParallel_1 = __importDefault(require("./utils/misc/runInParallel"));
|
|
19
20
|
exports.airdropItemPriceCachePrefix = 'airdropitemprice';
|
|
20
21
|
function setAirdropItemPrices(params, networkId, cache) {
|
|
21
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -84,13 +85,13 @@ function enhanceAirdropItem(airdropItem, airdropId, airdropStatus, price, owner)
|
|
|
84
85
|
price, status: (0, portfolio_core_1.getAirdropItemStatus)(airdropStatus, airdropItem.amount, airdropItem.isClaimed), value: price ? price * airdropItem.amount : null, owner });
|
|
85
86
|
}
|
|
86
87
|
const runAirdropFetcherTimeout = 10000;
|
|
87
|
-
function runAirdropFetchersByNetworkId(owner, networkId, fetchers, cache) {
|
|
88
|
+
function runAirdropFetchersByNetworkId(owner, networkId, fetchers, cache, useCache = true) {
|
|
88
89
|
return __awaiter(this, void 0, void 0, function* () {
|
|
89
90
|
const isFetchersValids = fetchers.every((f) => f.networkId === networkId);
|
|
90
91
|
if (!isFetchersValids)
|
|
91
92
|
throw new Error(`Not all airdrop fetchers have the right network id: ${networkId}`);
|
|
92
93
|
const { addressSystem } = portfolio_core_1.networks[networkId];
|
|
93
|
-
return runAirdropFetchers(owner, addressSystem, fetchers, cache);
|
|
94
|
+
return runAirdropFetchers(owner, addressSystem, fetchers, cache, useCache);
|
|
94
95
|
});
|
|
95
96
|
}
|
|
96
97
|
exports.runAirdropFetchersByNetworkId = runAirdropFetchersByNetworkId;
|
|
@@ -111,14 +112,13 @@ function getAirdropItems(items) {
|
|
|
111
112
|
};
|
|
112
113
|
});
|
|
113
114
|
}
|
|
114
|
-
function runAirdropFetchers(owner, addressSystem, fetchers, cache) {
|
|
115
|
+
function runAirdropFetchers(owner, addressSystem, fetchers, cache, useCache = true) {
|
|
115
116
|
return __awaiter(this, void 0, void 0, function* () {
|
|
116
117
|
const fOwner = (0, portfolio_core_1.formatAddress)(owner, addressSystem);
|
|
117
118
|
const isFetchersValids = fetchers.every((f) => portfolio_core_1.networks[f.networkId].addressSystem === addressSystem);
|
|
118
119
|
if (!isFetchersValids)
|
|
119
120
|
throw new Error(`Not all fetchers have the right address system: ${addressSystem}`);
|
|
120
|
-
const
|
|
121
|
-
const result = yield Promise.allSettled(promises);
|
|
121
|
+
const result = yield (0, runInParallel_1.default)(fetchers.map((f) => () => runAirdropFetcher(fOwner, f, cache, useCache)), 5);
|
|
122
122
|
const fReports = [];
|
|
123
123
|
const airdrops = result.flatMap((r, index) => {
|
|
124
124
|
let fReport;
|
|
@@ -156,7 +156,7 @@ exports.runAirdropFetchers = runAirdropFetchers;
|
|
|
156
156
|
const airdropCachePrefix = 'airdropraw';
|
|
157
157
|
function internalRunAirdropFetcher(owner, fetcher, cache, useCache = true) {
|
|
158
158
|
return __awaiter(this, void 0, void 0, function* () {
|
|
159
|
-
if (useCache) {
|
|
159
|
+
if (useCache === true) {
|
|
160
160
|
const cAirdropRaw = yield cache.getItem(`${fetcher.id}_${owner}`, {
|
|
161
161
|
prefix: airdropCachePrefix,
|
|
162
162
|
networkId: fetcher.networkId,
|
|
@@ -165,7 +165,7 @@ function internalRunAirdropFetcher(owner, fetcher, cache, useCache = true) {
|
|
|
165
165
|
return enhanceAirdrop(cAirdropRaw, owner, fetcher.networkId, cache);
|
|
166
166
|
}
|
|
167
167
|
const airdrop = yield fetcher.executor(owner, cache);
|
|
168
|
-
if (useCache) {
|
|
168
|
+
if (useCache === true) {
|
|
169
169
|
// TTL is 120000 ms (2min)
|
|
170
170
|
// If ineligible or claimed 240000 ms (4min)
|
|
171
171
|
// If not claimable yet 240000 ms (4min) or until claim start
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AirdropFetcher.js","sourceRoot":"","sources":["../../../../packages/plugins/src/AirdropFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+DA2BoC;AAEpC,iFAAyD;AAEzD,iGAAyE;
|
|
1
|
+
{"version":3,"file":"AirdropFetcher.js","sourceRoot":"","sources":["../../../../packages/plugins/src/AirdropFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+DA2BoC;AAEpC,iFAAyD;AAEzD,iGAAyE;AACzE,+EAAuD;AAa1C,QAAA,2BAA2B,GAAG,kBAAkB,CAAC;AAC9D,SAAsB,oBAAoB,CACxC,MAGG,EACH,SAAwB,EACxB,KAAY;;QAEZ,MAAM,KAAK,CAAC,QAAQ,CAClB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YAChC,GAAG,EAAE,KAAK;YACV,KAAK,EAAE,KAAK;SACb,CAAC,CAAC,EACH;YACE,SAAS;YACT,MAAM,EAAE,mCAA2B;SACpC,CACF,CAAC;IACJ,CAAC;CAAA;AAlBD,oDAkBC;AAED,SAAe,oBAAoB,CACjC,MAAgB,EAChB,UAAyB,EACzB,KAAY;;QAEZ,MAAM,SAAS,GAA0B,IAAI,GAAG,EAAE,CAAC;QACnD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAE1C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAS,MAAM,EAAE;YAClD,SAAS,EAAE,UAAU;YACrB,MAAM,EAAE,mCAA2B;SACpC,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACtB,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;CAAA;AAED,SAAe,qBAAqB,CAClC,OAAmB,EACnB,SAAwB,EACxB,KAAY;;QAEZ,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC1B,IAAI,CAAC,CAAC,OAAO;gBAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;;gBACpC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACpD,KAAK,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC;YAC/C,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC;SAC/C,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7B,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC7C,IAAI,MAAM;oBAAE,OAAO,MAAM,CAAC,KAAK,CAAC;YAClC,CAAC;YACD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;CAAA;AAED,SAAe,cAAc,CAC3B,UAAsB,EACtB,KAAa,EACb,SAAwB,EACxB,KAAY;;QAEZ,MAAM,aAAa,GAAG,IAAA,iCAAgB,EACpC,UAAU,CAAC,UAAU,EACrB,UAAU,CAAC,QAAQ,CACpB,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACzE,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK;aAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAChB,kBAAkB,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAC1E;aACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAA,4BAAW,EAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACjD,uCACK,UAAU,KACb,KAAK;YACL,SAAS,EACT,MAAM,EAAE,aAAa,EACrB,KAAK,EACL,KAAK,EAAE,IAAA,+BAAc,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAChD;IACJ,CAAC;CAAA;AAED,SAAS,kBAAkB,CACzB,WAA2B,EAC3B,SAAiB,EACjB,aAA4B,EAC5B,KAAe,EACf,KAAa;IAEb,uCACK,WAAW,KACd,SAAS;QACT,KAAK,EACL,MAAM,EAAE,IAAA,qCAAoB,EAC1B,aAAa,EACb,WAAW,CAAC,MAAM,EAClB,WAAW,CAAC,SAAS,CACtB,EACD,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAChD,KAAK,IACL;AACJ,CAAC;AAED,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAEvC,SAAsB,6BAA6B,CACjD,KAAa,EACb,SAAwB,EACxB,QAA0B,EAC1B,KAAY,EACZ,QAAQ,GAAG,IAAI;;QAEf,MAAM,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QAC1E,IAAI,CAAC,gBAAgB;YACnB,MAAM,IAAI,KAAK,CACb,uDAAuD,SAAS,EAAE,CACnE,CAAC;QAEJ,MAAM,EAAE,aAAa,EAAE,GAAG,yBAAQ,CAAC,SAAS,CAAC,CAAC;QAC9C,OAAO,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC7E,CAAC;CAAA;AAfD,sEAeC;AAID,SAAgB,aAAa,CAAC,MAS7B;IACC,uCACK,MAAM,CAAC,OAAO,KACjB,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,IACpC;AACJ,CAAC;AAdD,sCAcC;AAED,SAAS,eAAe,CACtB,KAMG;IAEH,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,MAAM,UAAU,GAAG,IAAA,iCAAgB,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS;YACxD,UAAU;YACV,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAsB,kBAAkB,CACtC,KAAa,EACb,aAAgC,EAChC,QAA0B,EAC1B,KAAY,EACZ,QAAQ,GAAG,IAAI;;QAEf,MAAM,MAAM,GAAG,IAAA,8BAAa,EAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QACnD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,yBAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,KAAK,aAAa,CAC7D,CAAC;QACF,IAAI,CAAC,gBAAgB;YACnB,MAAM,IAAI,KAAK,CACb,mDAAmD,aAAa,EAAE,CACnE,CAAC;QAEJ,MAAM,MAAM,GAAG,MAAM,IAAA,uBAAa,EAChC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,EACxE,CAAC,CACF,CAAC;QAEF,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;YAC3C,IAAI,OAA6B,CAAC;YAClC,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBAC7B,OAAO,GAAG;oBACR,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;oBACtB,MAAM,EAAE,WAAW;oBACnB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ;oBAC1B,KAAK,EAAE,SAAS;iBACjB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG;oBACR,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;oBACtB,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,SAAS;oBACnB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,eAAe;iBAC3C,CAAC;YACJ,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEvB,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU;gBAAE,OAAO,EAAE,CAAC;YACvC,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;YAChB,KAAK,EAAE,MAAM;YACb,aAAa;YACb,cAAc,EAAE,QAAQ;YACxB,QAAQ;SACT,CAAC;IACJ,CAAC;CAAA;AAnDD,gDAmDC;AAED,MAAM,kBAAkB,GAAG,YAAY,CAAC;AACxC,SAAe,yBAAyB,CACtC,KAAa,EACb,OAAuB,EACvB,KAAY,EACZ,QAAQ,GAAG,IAAI;;QAEf,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,OAAO,CACrC,GAAG,OAAO,CAAC,EAAE,IAAI,KAAK,EAAE,EACxB;gBACE,MAAM,EAAE,kBAAkB;gBAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CACF,CAAC;YACF,IAAI,WAAW;gBACb,OAAO,cAAc,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAErD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,0BAA0B;YAC1B,4CAA4C;YAC5C,6DAA6D;YAC7D,IAAI,GAAG,GAAG,MAAM,CAAC;YACjB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,iCAAgB,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAAE,GAAG,GAAG,MAAM,CAAC;iBACrE,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC;gBAAE,GAAG,GAAG,MAAM,CAAC;iBACnE,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;gBACxD,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,KAAK,CAAC,OAAO,CAAa,GAAG,OAAO,CAAC,EAAE,IAAI,KAAK,EAAE,EAAE,OAAO,EAAE;gBACjE,GAAG;gBACH,MAAM,EAAE,kBAAkB;gBAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC;CAAA;AAED,SAAsB,iBAAiB,CACrC,KAAa,EACb,OAAuB,EACvB,KAAY,EACZ,QAAQ,GAAG,IAAI;;QAEf,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAA,yCAAwB,EAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAClE,MAAM,cAAc,GAAG,yBAAyB,CAC9C,KAAK,EACL,OAAO,EACP,KAAK,EACL,QAAQ,CACT,CAAC,IAAI,CAAC,CAAC,OAAO,EAAwB,EAAE;YACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,OAAO;gBACL,KAAK,EAAE,MAAM;gBACb,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,UAAU,EAAE,OAAO,CAAC,SAAS;gBAC7B,QAAQ,EAAE,GAAG,GAAG,SAAS;gBACzB,OAAO;gBACP,IAAI,EAAE,GAAG;aACV,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,IAAA,wBAAc,EACnB,cAAc,EACd,wBAAwB,EACxB,sBAAsB,OAAO,CAAC,EAAE,EAAE,CACnC,CAAC;IACJ,CAAC;CAAA;AA7BD,8CA6BC;AAED,SAAgB,uBAAuB,CACrC,cAA8B,EAC9B,UAAkB,EAClB,EAAU,EACV,QAAiB;IAEjB,OAAO;QACL,EAAE;QACF,SAAS,EAAE,cAAc,CAAC,SAAS;QACnC,QAAQ,EAAE,CACR,KAAa,EACb,KAAY,EACyB,EAAE;YACvC,IAAI,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ;gBAAE,OAAO,EAAE,CAAC;YAEjD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;YAE1E,MAAM,MAAM,GAAoD,EAAE,CAAC;YACnE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC7B,IACE,IAAI,CAAC,MAAM,KAAK,kCAAiB,CAAC,SAAS;oBAC3C,IAAI,CAAC,MAAM,KAAK,kCAAiB,CAAC,cAAc;oBAEhD,OAAO;gBAET,MAAM,KAAK,GAAgD,IAAI,CAAC,OAAO;oBACrE,CAAC,CAAC,IAAA,gCAAsB,EACpB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX,cAAc,CAAC,SAAS,EACxB,SAAS,EACT,IAAI,CAAC,KAAK,IAAI,SAAS,EACvB,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,UAAU,EAAE,CACvD;oBACH,CAAC,CAAC;wBACE,IAAI,EAAE,mCAAkB,CAAC,OAAO;wBAChC,IAAI,EAAE;4BACJ,MAAM,EAAE,IAAI,CAAC,MAAM;4BACnB,KAAK,EAAE,IAAI,CAAC,KAAK;yBAClB;wBACD,IAAI,EAAE,IAAI,CAAC,KAAK;wBAChB,SAAS,EAAE,cAAc,CAAC,SAAS;wBACnC,UAAU,EAAE;4BACV,WAAW,EAAE,IAAI;4BACjB,WAAW,EAAE,OAAO,CAAC,UAAU;yBAChC;wBACD,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;qBACxB,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YACnC,OAAO;gBACL;oBACE,SAAS,EAAE,cAAc,CAAC,SAAS;oBACnC,KAAK,EAAE,SAAS;oBAChB,IAAI,EAAE;wBACJ,MAAM;qBACP;oBACD,UAAU;oBACV,IAAI,EAAE,qCAAoB,CAAC,QAAQ;oBACnC,KAAK,EAAE,IAAA,+BAAc,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBACjD,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,SAAS;iBAChC;aACF,CAAC;QACJ,CAAC,CAAA;KACF,CAAC;AACJ,CAAC;AApED,0DAoEC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runs an array of asynchronous functions in parallel with a specified concurrency limit.
|
|
3
|
+
* @template T The type of the resolved value of the promises returned by the functions.
|
|
4
|
+
*
|
|
5
|
+
* @param {(() => Promise<T>)[]} functionsToRun - An array of functions that return promises.
|
|
6
|
+
* Each function is expected to return a promise when called.
|
|
7
|
+
*
|
|
8
|
+
* @param {number} [limit=100] - The maximum number of promises that can be executed concurrently.
|
|
9
|
+
* If the limit is set to 0 or less, all functions will run concurrently without any limit.
|
|
10
|
+
*/
|
|
11
|
+
export default function runInParallel<T>(functionsToRun: (() => Promise<T>)[], limit?: number): Promise<PromiseSettledResult<T>[]>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
/**
|
|
13
|
+
* Runs an array of asynchronous functions in parallel with a specified concurrency limit.
|
|
14
|
+
* @template T The type of the resolved value of the promises returned by the functions.
|
|
15
|
+
*
|
|
16
|
+
* @param {(() => Promise<T>)[]} functionsToRun - An array of functions that return promises.
|
|
17
|
+
* Each function is expected to return a promise when called.
|
|
18
|
+
*
|
|
19
|
+
* @param {number} [limit=100] - The maximum number of promises that can be executed concurrently.
|
|
20
|
+
* If the limit is set to 0 or less, all functions will run concurrently without any limit.
|
|
21
|
+
*/
|
|
22
|
+
function runInParallel(functionsToRun, limit = 100) {
|
|
23
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
const results = [];
|
|
25
|
+
const executing = [];
|
|
26
|
+
for (const func of functionsToRun) {
|
|
27
|
+
const p = func().then((value) => ({ status: 'fulfilled', value }), (reason) => ({ status: 'rejected', reason }));
|
|
28
|
+
results.push(p);
|
|
29
|
+
const e = p.then(() => {
|
|
30
|
+
executing.splice(executing.indexOf(e), 1);
|
|
31
|
+
});
|
|
32
|
+
executing.push(e);
|
|
33
|
+
if (executing.length >= limit && limit > 0) {
|
|
34
|
+
yield Promise.race(executing);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
yield Promise.all(executing);
|
|
38
|
+
return Promise.all(results);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
exports.default = runInParallel;
|
|
42
|
+
//# sourceMappingURL=runInParallel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runInParallel.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/misc/runInParallel.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,SAA8B,aAAa,CACzC,cAAoC,EACpC,KAAK,GAAG,GAAG;;QAEX,MAAM,OAAO,GAAuC,EAAE,CAAC;QACvD,MAAM,SAAS,GAAoB,EAAE,CAAC;QAEtC,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CACnB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAY,CAAA,EACpD,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAY,CAAA,CACtD,CAAC;YAEF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAEhB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBACpB,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YACH,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAElB,IAAI,SAAS,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBAC3C,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7B,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;CAAA;AA3BD,gCA2BC"}
|