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