UNPKG

@huggingface/gguf

Version:

a GGUF parser that works on remotely hosted files

24 lines (23 loc) 602 B
/** * Execute queue of promises. * * Inspired by github.com/rxaviers/async-pool */ export async function promisesQueue<T>(factories: (() => Promise<T>)[], concurrency: number): Promise<T[]> { const results: T[] = []; const executing: Set<Promise<void>> = new Set(); let index = 0; for (const factory of factories) { const closureIndex = index++; const e = factory().then((r) => { results[closureIndex] = r; executing.delete(e); }); executing.add(e); if (executing.size >= concurrency) { await Promise.race(executing); } } await Promise.all(executing); return results; }