コンテンツにスキップ

chunk-process

N 個の非同期タスクを並列に実行し、終わったら次のバッチへ。API のレート制限やリソース制御のために作られています。
import { batchProcess } from 'chunk-process'
// 100 件の API 呼び出しを 5 件ずつ処理する
const results = await batchProcess(userIds, async (userId) => {
return await fetchUserFromAPI(userId)
}, { batchSize: 5 })

チャンク単位のレート制限

バッチ内の要素は Promise.all で並列に実行し、バッチ同士は順番に実行します。バッチ間に待機時間も挟めます。

リトライとタイムアウト

失敗したタスクを線形または指数バックオフでリトライし、タスクごとにタイムアウトを設定できます。

エラー耐性

continueOnError を使うと、失敗した要素は全体を reject せず Error 値として結果に返ります。

型安全・依存ゼロ

TypeScript のジェネリクスとオーバーロードで型付けされ、ESM と CommonJS の両方を配布しています。