@dotvirus/tunisia

Super simple, model-less DynamoDB wrapper

Usage no npm install needed!

<script type="module">
  import dotvirusTunisia from 'https://cdn.skypack.dev/@dotvirus/tunisia';
</script>

README

tunisia

Super simple, model-less DynamoDB wrapper

npm version codecov

Install

npm i @dotvirus/tunisia aws-sdk@2
yarn add @dotvirus/tunisia aws-sdk@2
import Tunisia from "@dotvirus/tunisia";

const tunisia = new Tunisia({
  region: "us-east-1",
  credentials: {
    accessKeyId: "fakeId",
    secretAccessKey: "fakeSecret",
  },
});

Examples

Insert item

const item = {
  id: "abc",
  name: "Tunisia",
};
await tunisia.insert(tableName).one(item);

Get by ID

const item = tunisia
  .get(tableName)
  .one("id", "abc");

Update property

await tunisia
  .update(tableName)
  .key("id", "abc")
  .set("name", "Updated")
  .run();

Delete item

await tunisia.delete(tableName).one("id", "abc");

Transaction write

await tunisia.transactWrite().run([
  tunisia.insert(tableName).transaction({
    id: "abc",
    name: "Transaction write test",
  }),
  tunisia.delete(tableName).transaction("id", "another_id"),
]);

Iterate through index

const iterator = tunisia
  .query(tableName)
  .eq("userId", "abc")
  .iterate()

for await (const { items } of iterator) {
  console.log(items)
}