dynamo-delta
Create field updates to dynamodb by providing an original and modified object. This approach allows multiple processes to easily work with a single dynamodb record, and in the case where there's collisions with value updates, an error will be generated.
There are two methods:
- generateDeltaUpdate: Provides a method to generate field level update statements for a given object
- generateDeltaTransaction: Provides a method to generate transaction statements for a given object
Quick Start
- Install via npm:
npm install @moe-tech/dynamo-delta
- Reference:
Typescript:
import {generateDeltaUpdate, generateDeltaTransaction} from 'dynamo-delta';
Javascript
const dynamodelta = require('dynamo-delta');
- Use:
Typescript
const dynamodb = new DynamoDB.DocumentClient();
let object = {value: 1, key: 'demo row'};
let original = JSON.parse(JSON.stringify(object));
object.value = 2;
await dynamodb.update(generateDeltaUpdate('Table Name', {key: object.key}, original, object)).promise();
Javascript
const dynamodb = new DynamoDB.DocumentClient();
let object = {value: 1, key: 'demo row'};
let original = JSON.parse(JSON.stringify(object));
object.value = 2;
await dynamodb.update(dynamodelta.generateDeltaUpdate('Table Name', {key: object.key}, original, object)).promise();
##How can I contribute? dynamo-delta works best when we can all make it better.
Test
- Before you share your improvement with the world, use it yourself.
- For new capabilities, write unit tests
- Run lint, unit tests and coverage by running the following command
npm run lt
Be sure to make your feature globally accessible
When you add capabilities, make sure you're exporting them to the root index, so the rest of the world can easily access them.