feat: refactoring project

This commit is contained in:
Carlos
2024-11-23 14:56:07 -05:00
parent f0c2a50c18
commit 1c6db5818d
2351 changed files with 39323 additions and 60326 deletions

36
node_modules/p-locate/index.js generated vendored
View File

@@ -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;
}