Bump @isaacs/brace-expansion from 5.0.0 to 5.0.1 (#342)
* Bump @isaacs/brace-expansion from 5.0.0 to 5.0.1 Bumps @isaacs/brace-expansion from 5.0.0 to 5.0.1. --- updated-dependencies: - dependency-name: "@isaacs/brace-expansion" dependency-version: 5.0.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> * regenerate dist Signed-off-by: Meredith Lancaster <[email protected]> * regenerate package-lock Signed-off-by: Meredith Lancaster <[email protected]> * regenerate dist Signed-off-by: Meredith Lancaster <[email protected]> --------- Signed-off-by: dependabot[bot] <[email protected]> Signed-off-by: Meredith Lancaster <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Meredith Lancaster <[email protected]> Co-authored-by: Meredith Lancaster <[email protected]>
This commit is contained in:
co-authored by
Meredith Lancaster
Meredith Lancaster
parent
9a85e4f48a
commit
a82737a684
+23
-9
@@ -19,7 +19,7 @@ async function pMap(
|
|||||||
signal,
|
signal,
|
||||||
} = {},
|
} = {},
|
||||||
) {
|
) {
|
||||||
return new Promise((resolve, reject_) => {
|
return new Promise((resolve_, reject_) => {
|
||||||
if (iterable[Symbol.iterator] === undefined && iterable[Symbol.asyncIterator] === undefined) {
|
if (iterable[Symbol.iterator] === undefined && iterable[Symbol.asyncIterator] === undefined) {
|
||||||
throw new TypeError(`Expected \`input\` to be either an \`Iterable\` or \`AsyncIterable\`, got (${typeof iterable})`);
|
throw new TypeError(`Expected \`input\` to be either an \`Iterable\` or \`AsyncIterable\`, got (${typeof iterable})`);
|
||||||
}
|
}
|
||||||
@@ -42,10 +42,24 @@ async function pMap(
|
|||||||
let currentIndex = 0;
|
let currentIndex = 0;
|
||||||
const iterator = iterable[Symbol.iterator] === undefined ? iterable[Symbol.asyncIterator]() : iterable[Symbol.iterator]();
|
const iterator = iterable[Symbol.iterator] === undefined ? iterable[Symbol.asyncIterator]() : iterable[Symbol.iterator]();
|
||||||
|
|
||||||
|
const signalListener = () => {
|
||||||
|
reject(signal.reason);
|
||||||
|
};
|
||||||
|
|
||||||
|
const cleanup = () => {
|
||||||
|
signal?.removeEventListener('abort', signalListener);
|
||||||
|
};
|
||||||
|
|
||||||
|
const resolve = value => {
|
||||||
|
resolve_(value);
|
||||||
|
cleanup();
|
||||||
|
};
|
||||||
|
|
||||||
const reject = reason => {
|
const reject = reason => {
|
||||||
isRejected = true;
|
isRejected = true;
|
||||||
isResolved = true;
|
isResolved = true;
|
||||||
reject_(reason);
|
reject_(reason);
|
||||||
|
cleanup();
|
||||||
};
|
};
|
||||||
|
|
||||||
if (signal) {
|
if (signal) {
|
||||||
@@ -53,9 +67,7 @@ async function pMap(
|
|||||||
reject(signal.reason);
|
reject(signal.reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
signal.addEventListener('abort', () => {
|
signal.addEventListener('abort', signalListener, {once: true});
|
||||||
reject(signal.reason);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const next = async () => {
|
const next = async () => {
|
||||||
@@ -203,31 +215,32 @@ function pMapIterable(
|
|||||||
const iterator = iterable[Symbol.asyncIterator] === undefined ? iterable[Symbol.iterator]() : iterable[Symbol.asyncIterator]();
|
const iterator = iterable[Symbol.asyncIterator] === undefined ? iterable[Symbol.iterator]() : iterable[Symbol.asyncIterator]();
|
||||||
|
|
||||||
const promises = [];
|
const promises = [];
|
||||||
let runningMappersCount = 0;
|
let pendingPromisesCount = 0;
|
||||||
let isDone = false;
|
let isDone = false;
|
||||||
let index = 0;
|
let index = 0;
|
||||||
|
|
||||||
function trySpawn() {
|
function trySpawn() {
|
||||||
if (isDone || !(runningMappersCount < concurrency && promises.length < backpressure)) {
|
if (isDone || !(pendingPromisesCount < concurrency && promises.length < backpressure)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pendingPromisesCount++;
|
||||||
|
|
||||||
const promise = (async () => {
|
const promise = (async () => {
|
||||||
const {done, value} = await iterator.next();
|
const {done, value} = await iterator.next();
|
||||||
|
|
||||||
if (done) {
|
if (done) {
|
||||||
|
pendingPromisesCount--;
|
||||||
return {done: true};
|
return {done: true};
|
||||||
}
|
}
|
||||||
|
|
||||||
runningMappersCount++;
|
|
||||||
|
|
||||||
// Spawn if still below concurrency and backpressure limit
|
// Spawn if still below concurrency and backpressure limit
|
||||||
trySpawn();
|
trySpawn();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const returnValue = await mapper(await value, index++);
|
const returnValue = await mapper(await value, index++);
|
||||||
|
|
||||||
runningMappersCount--;
|
pendingPromisesCount--;
|
||||||
|
|
||||||
if (returnValue === pMapSkip) {
|
if (returnValue === pMapSkip) {
|
||||||
const index = promises.indexOf(promise);
|
const index = promises.indexOf(promise);
|
||||||
@@ -242,6 +255,7 @@ function pMapIterable(
|
|||||||
|
|
||||||
return {done: false, value: returnValue};
|
return {done: false, value: returnValue};
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
pendingPromisesCount--;
|
||||||
isDone = true;
|
isDone = true;
|
||||||
return {error};
|
return {error};
|
||||||
}
|
}
|
||||||
|
|||||||
+30028
-101200
File diff suppressed because one or more lines are too long
Generated
+1724
-1061
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user