A promise batcher, collect promises and run them in batch.
npm i p-batcher
import { createPBatch } from "p-batcher"
const api = createPBatch((keys: number[]) => {
console.log("batching", keys)
return keys.map((k) => `res-${k}`)
}, {
maxBatchSize: 3,
})
const res = await Promise.all([
api(1),
api(2),
api(3),
api(4),
api(5),
])
console.log(res)
/*
output:
batching [ 1, 2, 3 ]
batching [ 4, 5 ]
[ 'res-1', 'res-2', 'res-3', 'res-4', 'res-5' ]
*/
MIT © vaakian