feat: refactoring project
This commit is contained in:
36
node_modules/p-locate/index.js
generated
vendored
36
node_modules/p-locate/index.js
generated
vendored
@@ -1,5 +1,4 @@
|
||||
'use strict';
|
||||
const pLimit = require('p-limit');
|
||||
import pLimit from 'p-limit';
|
||||
|
||||
class EndError extends Error {
|
||||
constructor(value) {
|
||||
@@ -8,10 +7,10 @@ class EndError extends Error {
|
||||
}
|
||||
}
|
||||
|
||||
// The input can also be a promise, so we await it
|
||||
// The input can also be a promise, so we await it.
|
||||
const testElement = async (element, tester) => tester(await element);
|
||||
|
||||
// The input can also be a promise, so we `Promise.all()` them both
|
||||
// The input can also be a promise, so we `Promise.all()` them both.
|
||||
const finder = async element => {
|
||||
const values = await Promise.all(element);
|
||||
if (values[1] === true) {
|
||||
@@ -21,20 +20,21 @@ const finder = async element => {
|
||||
return false;
|
||||
};
|
||||
|
||||
const pLocate = async (iterable, tester, options) => {
|
||||
options = {
|
||||
concurrency: Infinity,
|
||||
preserveOrder: true,
|
||||
...options
|
||||
};
|
||||
export default async function pLocate(
|
||||
iterable,
|
||||
tester,
|
||||
{
|
||||
concurrency = Number.POSITIVE_INFINITY,
|
||||
preserveOrder = true,
|
||||
} = {},
|
||||
) {
|
||||
const limit = pLimit(concurrency);
|
||||
|
||||
const limit = pLimit(options.concurrency);
|
||||
|
||||
// Start all the promises concurrently with optional limit
|
||||
// Start all the promises concurrently with optional limit.
|
||||
const items = [...iterable].map(element => [element, limit(testElement, element, tester)]);
|
||||
|
||||
// Check the promises either serially or concurrently
|
||||
const checkLimit = pLimit(options.preserveOrder ? 1 : Infinity);
|
||||
// Check the promises either serially or concurrently.
|
||||
const checkLimit = pLimit(preserveOrder ? 1 : Number.POSITIVE_INFINITY);
|
||||
|
||||
try {
|
||||
await Promise.all(items.map(element => checkLimit(finder, element)));
|
||||
@@ -45,8 +45,4 @@ const pLocate = async (iterable, tester, options) => {
|
||||
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = pLocate;
|
||||
// TODO: Remove this for the next major release
|
||||
module.exports.default = pLocate;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user