@mazix/n8n-nodes-converter-documents
Version:
n8n node to convert various document formats (DOCX, DOC, XML, YML, XLSX, CSV, PDF, TXT, PPT, PPTX, HTML, JSON, ODT, ODP, ODS) to JSON or text format
35 lines • 1.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.promisePool = promisePool;
/**
* Promise pool для ограничения количества одновременных задач
* Использует Set вместо Array для корректного удаления (fix race condition)
*/
async function promisePool(items, worker, concurrency) {
const results = [];
let i = 0;
const executing = new Set();
async function enqueue() {
if (i >= items.length)
return;
const currentIndex = i++;
const p = worker(items[currentIndex], currentIndex).then((res) => {
results[currentIndex] = res;
});
const wrapped = p.then(() => {
executing.delete(wrapped);
});
executing.add(wrapped);
if (executing.size < concurrency) {
await enqueue();
}
else {
await Promise.race(executing);
await enqueue();
}
}
await enqueue();
await Promise.all(executing);
return results;
}
//# sourceMappingURL=promisePool.js.map