dynamodb-niceupdate

0.0.5 • Public • Published

dynamodb-niceupdate

Creates DynamoDB's DocumentClient.update() param object that performs an update operation, using UpdateExpression. Any empty value will be recursively removed, to make DynamoDB happy.


npm Build Status Coverage Status

Usage

import { createFieldsUpdateParams } from 'dynamodb-niceupdate'
 
const params = createFieldsUpdateParams({
  tableName: 'DynamoDB_Table_name',
  keySchema: { Id: '123' },
  item: {
    a: 'b',
    b: { foo: ['bar'] },
    c: 3,
    d: [], // this empty list is removed
    e: {}, // this empty set is removed
    f: [{ x: '' }], // this empty object is removed
  }
})
 
assert.deepEqual(params, {
  TableName: 'DynamoDB_Table_name',
  ReturnValues: 'ALL_NEW',
  Key: { Id: '123' },
  ExpressionAttributeNames: {
    '#updatedOn': 'UpdatedOn',
    '#field0': `a`,
    '#field1': `b`,
    '#field2': `c`,
    '#field3': `d`,
    '#field4': `e`,
    '#field5': `f`
  },
  UpdateExpression: 'REMOVE #field3, #field4, #field5 SET #updatedOn=:now, #field0=:value0, #field1=:value1, #field2=:value2',
  ExpressionAttributeValues: {
    ':now': `${timestamp}`,
    ':value0': 'b',
    ':value1': { foo: ['bar'] },
    ':value2': 3
  }
})
 
const doc = new DynamoDB.DocumentClient({})
doc.update(params, callback)

Checkout the tests in src/index.spec.js.

Readme

Keywords

none

Package Sidebar

Install

npm i dynamodb-niceupdate

Weekly Downloads

0

Version

0.0.5

License

MIT

Last publish

Collaborators

  • maliciousintent