dynamo-table

Maps JS objects and queries to DynamoDB tables

npm install dynamo-table
103 downloads in the last week
604 downloads in the last month

dynamo-table

Build Status

A lightweight module to map JS objects and queries to DynamoDB tables (supports the latest API version, 2012-08-10).

This builds upon the dynamo-client module, although any client that supports a simple request method will also work.

Example

var dynamoTable = require('dynamo-table')

// Will use us-east-1 and credentials from process.env unless otherwise specified
var table = dynamoTable('Orders', {key: ['customerId', 'orderId']})

table.put({customerId: 23, orderId: 101, lineItemIds: [1, 2, 3]}, function(err) {
  if (err) throw err

  table.put({customerId: 23, orderId: 102, lineItemIds: [4, 5, 6]}, function(err) {
    if (err) throw err

    table.query({customerId: 23, orderId: {'>': 101}}, function(err, items) {
      if (err) throw err

      console.log(items)
      // [{customerId: 23, orderId: 102, lineItemIds: [4, 5, 6]}]
    })
  })
})

API

dynamoTable(name, [options])

new DynamoTable(name, [options])

Constructor of the table, including DynamoDB details, keys, mappings, etc

get(key, [options], callback)

Corresponds to GetItem

put(jsObj, [options], callback)

Corresponds to PutItem

delete(key, [options], callback)

Corresponds to DeleteItem

update(key, actions, [options], callback)

update(jsObj, [options], callback)

Corresponds to UpdateItem

query(conditions, [options], callback)

Corresponds to Query

scan([conditions], [options], callback)

Corresponds to Scan

batchGet(keys, [options], [tables], callback)

Corresponds to BatchGetItem

batchWrite([operations], [tables], callback)

Corresponds to BatchWriteItem

createTable(readCapacity, writeCapacity, [indexes], [options], callback)

Corresponds to CreateTable

updateTable(readCapacity, writeCapacity, [options], callback)

Corresponds to UpdateTable

describeTable([options], callback)

Corresponds to DescribeTable

deleteTable([options], callback)

Corresponds to DeleteTable

listTables([options], callback)

Corresponds to ListTables

increment(key, attr, [incrAmt], [options], callback)

Helper to increment an attribute by a certain amount

mapToDb(jsObj)

Maps a JavaScript object to a DynamoDB-friendly object

mapFromDb(dbItem)

Maps a DynamoDB object to a JavaScript object

mapAttrToDb(val, [key], [jsObj])

Maps an individual attribute/value to a DynamoDB-friendly attribute

mapAttrFromDb(val, [key], [dbItem])

Maps an individual DynamoDB attribute to a JavaScript value

Installation

With npm do:

npm install dynamo-table

Thanks

Thanks to @jed for his lightweight dynamo-client lib!

npm loves you