Skip to content
Eugene Lazutkin edited this page Apr 19, 2026 · 31 revisions

dynamodb-toolkit (v3)

NPM version

Opinionated zero-runtime-dependency micro-library for AWS DynamoDB. Built on the AWS JS SDK v3 (@aws-sdk/client-dynamodb + @aws-sdk/lib-dynamodb). ESM-only, hand-written .d.ts sidecars, no build step. Tested on Node, Deno, and Bun — usable from TypeScript and CommonJS consumers alike.

v2 documentation lives at the v2.3-docs git tag of this wiki repo. v2 source remains available on npm as dynamodb-toolkit@2.3.0.

"Toolkit", not "framework"

The pieces are independent. You don't need to adopt the Adapter to use the expression builders, and you don't need the builders to use the batch chunkers. Every layer has a public surface and is consumable on its own:

  • Use buildUpdate / buildCondition to prep a params object, then send it with the raw SDK UpdateCommand — no Adapter in sight.
  • Hand-build your own params and pass them to applyBatch / applyTransaction for chunking, UnprocessedItems retry, and exponential backoff.
  • Use the Adapter for CRUD + hooks but swap in your own @aws-sdk/lib-dynamodb Command invocation anywhere you want raw control.
  • Take the REST handler or leave it — the Adapter works standalone.

Two concrete payoffs: migration (adopt one piece at a time starting from raw-SDK code) and debugging (peel layers back one at a time when something looks off). The boundary between caller code and toolkit machinery stays explicit.

Start here

Adapter

Expression builders (dynamodb-toolkit/expressions)

Batch / transactions / mass / paths

  • Batch and transactionsapplyBatch, applyTransaction, getBatch, getTransaction
  • Mass operationspaginateList, iterateList, read*, write*, delete*, copy*, move*
  • PathsgetPath, setPath, applyPatch, subsetObject, normalizeFields

REST surface

  • REST core — parsers, builders, policy (framework-agnostic)
  • HTTP handlernode:http (req, res) handler with the standard route pack

Clone this wiki locally