feat: init
This commit is contained in:
30
node_modules/nitropack/dist/_chunks/parallel.mjs
generated
vendored
Normal file
30
node_modules/nitropack/dist/_chunks/parallel.mjs
generated
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
async function runParallel(inputs, cb, opts) {
|
||||
const errors = [];
|
||||
const tasks = /* @__PURE__ */ new Set();
|
||||
function queueNext() {
|
||||
const route = inputs.values().next().value;
|
||||
if (!route) {
|
||||
return;
|
||||
}
|
||||
inputs.delete(route);
|
||||
const task = (opts.interval ? new Promise((resolve) => setTimeout(resolve, opts.interval)) : Promise.resolve()).then(() => cb(route)).catch((error) => {
|
||||
console.error(error);
|
||||
errors.push(error);
|
||||
});
|
||||
tasks.add(task);
|
||||
return task.then(() => {
|
||||
tasks.delete(task);
|
||||
if (inputs.size > 0) {
|
||||
return refillQueue();
|
||||
}
|
||||
});
|
||||
}
|
||||
function refillQueue() {
|
||||
const workers = Math.min(opts.concurrency - tasks.size, inputs.size);
|
||||
return Promise.all(Array.from({ length: workers }, () => queueNext()));
|
||||
}
|
||||
await refillQueue();
|
||||
return { errors };
|
||||
}
|
||||
|
||||
export { runParallel as r };
|
||||
Reference in New Issue
Block a user