ai-functions
Version:
A powerful TypeScript library for building AI-powered applications with template literals and structured outputs
37 lines • 970 B
JavaScript
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