2.0.1 • Published 4 months ago

dinamo v2.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

Dinamo

Amazon Dynamo (Amazon DynamoDB) opinionated utilities for Node.js.

NPM version

npm

Getting started

First install the library:

npm i dinamo @aws-sdk/client-dynamodb @aws-sdk/lib-dynamodb

Note that @aws-sdk/client-dynamodb and @aws-sdk/lib-dynamodb are peer dependencies for this library, so instead of bundling it with the package you MUST install it separately.

Then create an instance in your code:

import Dinamo from 'dinamo'

const dinamo = new Dinamo({ tableName: 'my-table' })

If you are using DynamoDB in a Docker container you can pass the endpoint as a parameter:

const dinamo = new Dinamo({
  endpoint: 'http://localhost:8000',
  tableName: 'my-table',
})

You can also configure the AWS SDK client logger:

const dinamo = new Dinamo({
  logger: console,
  tableName: 'my-table',
})

Usage

batchGet

Gets items in batch.

await dinamo.batchGet({ keys: [{ id: 'a' }, { id: 'b' }, { id: 'c' }] })

decrement

Decrements an item. Step is optional.

await dinamo.decrement({ key: { id: 'a' }, field: 'count', step: 1 })

delete

Soft deletes an item, i.e., adds a flag deletedAt with the timestamp of deletion. This is true by default and query and scan will filter out the deleted items by default too.

await dinamo.delete({ key: { id: 'a' }, soft: true })

Deletes an item from the database.

await dinamo.delete({ key: { id: 'a' }, soft: false })

get

Gets a single item.

await dinamo.get({ key: { id: 'a' } })

increment

Increments an item. Step is optional.

await dinamo.increment({ key: { id: 'a' }, field: 'count', step: 1 })

put

Puts an item.

await dinamo.put({ item: { id: 'a', foo: 'bar' } })

query

Queries items from the database.

await dinamo.query({ key: { id: 'a' } })

With indexName.

await dinamo.query({ key: { id: 'a' }, indexName: 'dateIdIndex' })

Filtering items.

await dinamo.query({ key: { id: 'a' }, query: { foo: 'bar' } })

Disable filtering soft deletes.

await dinamo.query({ key: { id: 'a' }, filterDeleted: false })

Limiting items.

await dinamo.query({ key: { id: 'a' }, limit: 10 })

Reverse ordering items based on range key.

await dinamo.query({ key: { id: 'a' }, scanIndexForward: true })

scan

Scans items from the database.

await dinamo.scan({ query: { id: 'a' } })

Recursively scan items.

await dinamo.scan({ query: { id: 'a' }, recursive: true })

Disable filtering soft deletes

await dinamo.scan({ query: { id: 'a' }, filterDeleted: false })

update

Updates an item.

await dinamo.update({ key: { id: 'a' }, item: { foo: 'baz' } })

Contributing

Issues and pull requests are welcome.

License

MIT

2.0.1

4 months ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

2 years ago

1.0.2-990ea6b.0

1 year ago

1.0.2-990ea6b.1

1 year ago

1.0.2-990ea6b.2

1 year ago

1.0.2-990ea6b.3

1 year ago

1.0.2-990ea6b.4

1 year ago

1.0.2-990ea6b.5

1 year ago

1.0.2-990ea6b.6

1 year ago

1.0.2-990ea6b.7

1 year ago

1.0.2-990ea6b.8

1 year ago

1.0.2-990ea6b.9

1 year ago

2.0.0

1 year ago

0.0.1-alpha.14

2 years ago

0.0.1-alpha.13

2 years ago

0.0.1-alpha.16

2 years ago

0.0.1-alpha.15

2 years ago

1.0.1-12f23e0.0

1 year ago

0.0.1-alpha.17

2 years ago

0.0.1-alpha.12

2 years ago

0.0.1-alpha.11

2 years ago

0.0.1-alpha.10

2 years ago

0.0.1-alpha.9

2 years ago

0.0.1-alpha.8

2 years ago

0.0.1-alpha.7

2 years ago

0.0.1-alpha.6

2 years ago

0.0.1-alpha.5

2 years ago

0.0.1-alpha.4

2 years ago

0.0.1-alpha.3

2 years ago

0.0.1-alpha.2

2 years ago

0.0.1-alpha.1

2 years ago

0.0.1-alpha.0

2 years ago