UNPKG

ai-functions

Version:

A powerful TypeScript library for building AI-powered applications with template literals and structured outputs

37 lines 970 B
import PQueue from 'p-queue'; export function createQueue(options) { if (!options.concurrency) { return undefined; } const queue = new PQueue({ concurrency: options.concurrency, autoStart: true, carryoverConcurrencyCount: true, }); return { add: queue.add.bind(queue), size: queue.size, pending: queue.pending, pause: queue.pause.bind(queue), start: queue.start.bind(queue), clear: queue.clear.bind(queue), concurrency: queue.concurrency }; } export async function* queueGenerator(generator, queue) { if (!queue) { yield* generator(); return; } const gen = await queue.add(async () => { const results = []; for await (const item of generator()) { results.push(item); } return results; }); for (const item of gen) { yield item; } } //# sourceMappingURL=manager.js.map