@moe-tech/dynamo-delta
TypeScript icon, indicating that this package has built-in type declarations

1.0.28 • Public • Published

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

  1. Install via npm:
npm install @moe-tech/dynamo-delta
  1. Reference:

Typescript:

import {generateDeltaUpdate, generateDeltaTransaction} from 'dynamo-delta';

Javascript

const dynamodelta = require('dynamo-delta');
  1. 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

  1. Before you share your improvement with the world, use it yourself.
  2. For new capabilities, write unit tests
  3. 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.

Readme

Keywords

none

Package Sidebar

Install

npm i @moe-tech/dynamo-delta

Weekly Downloads

2

Version

1.0.28

License

MIT License

Unpacked Size

53.8 kB

Total Files

12

Last publish

Collaborators

  • moetech
  • nkeating
  • build-user-mutualofenumclaw