Batch

// --- basic usage ---
await db.batch([
    { type: 'write',  tag: 'user:1', data: { name: 'Alice', role: 'admin', score: 100 } },
    { type: 'kv',     tag: 'user:2', key: 'score', value: 50 },
    { type: 'delete', tag: 'user:3' },
])

// --- best-effort mode: failures don't abort the batch ---
const results = await db.batch([
    { type: 'write', tag: 'user:1', data: { name: 'Alice', role: 'admin', score: 200 } },
    { type: 'write', tag: 'user:99', data: { name: 'Ghost' } },
    { type: 'kv',   tag: 'user:2', key: 'score', value: 75 },
], { mode: 'allSettled' })

const failed = results.filter(r => r.status === 'rejected')
if (failed.length) {
    failed.forEach(r => console.error(`Op[${r.index}] failed: ${r.reason.message}`))
}

// --- concurrency cap: useful for large batches hitting the lockfile system ---
const bulkUpdates = Array.from({ length: 200 }, (_, i) => ({
    type: 'kv',
    tag:  `user:${i + 1}`,
    key:  'updatedAt',
    value: new Date().toISOString(),
}))

await db.batch(bulkUpdates, { concurrency: 10 })

Last updated