Simple DynamoDB wrapper for Node.js
Note: This is still under active development
Requires Node.js 8.6.0+.
$ npm install @giladno/dynamodb --save
const dynamodb = require('@giladno/dynamodb');
const {User} = dynamodb();
User.define({
attributes: {username: {type: 'S'}},
throughput: 5,
});
await User.put({username: 'bob', age: 42});
await User.put({username: 'alice', age: 38});
console.log(await User.scan());Creates a database instance
optionsAWSAWS sdk to use. Defaults torequire('aws-sdk').waitForActiveHow long to wait for anACTIVEstate when creating a new table. Defaults to180000(3 minutes). Use0to disable waiting and-1to wait indefinitely.
- returns: a database instance
The database instance will automatically create a table instance simply by accessing it:
db.User.get(...);
db.Post.put(...);Names are case-sensitive.
db.useranddb.Userwill create different table names!
Defines a schema for that table
schemaattributesAn object representing attributes/keys for table creationtypeDynamoDB type (S,N,B)rangeSet totrueforRANGEkey type (default toHASHtype)
throughputProvisioned throughput. Can use a single number for both read/write capacity or an object withread/writekeys. Whenthroughputis not defined, this will set billing mode toPAY_PER_REQUEST.PAY_PER_REQUESTis not supported when testing locally using dynamodb-localkmsOptional KMS master key to use.
This method is only required if you want to allow the database to create tables implicitly when required. It is not required if you create them yourself (using the CLI/CloudFormation or by calling
table.init).
Creates a table in DynamoDB
schemaSame as table.define
This method will be called automatically when trying to access a table which does not exist.
Returns all items in the table
Finds a single item by key
Create/update a single item
Updates a single item
Deletes a single item
Deletes the table
- Finish documentation
- Add query/filter/projection support
PR's are more than welcome! You can also drop me a line at [email protected]
MIT