INNER CODE UNIT · TypeScript
runPool
PaulWoitaschek/Voice · artwork/src/render/render.ts:106
async function runPool<T>(jobs: T[], concurrency: number, worker: (j: T) => Promise<void>): Promise<void> {
let cursor = 0
const runners = Array.from({ length: Math.min(concurrency, jobs.length) }, async () => {
while (true) {
const i = cursor++
if (i >= jobs.length) return
await worker(jobs[i])
}
})
await Promise.all(runners)
}
function cleanGeneratedImages(locale: string): void {
const dir = imagesDir(locale)
if (!existsSync(dir)) return
for (const file of GENERATED_IMAGE_FILES) {
rmSync(join(dir, file), { force: true })