Have ideas to improve npm?Join in the discussion! ¬Ľ

    dynamo-table

    0.8.3¬†‚Äʬ†Public¬†‚Äʬ†Published

    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!

    Install

    npm i dynamo-table

    DownloadsWeekly Downloads

    44

    Version

    0.8.3

    License

    MIT

    Last publish

    Collaborators

    • avatar