0.1.1 • Published 8 years ago

simple-dyno v0.1.1

Weekly downloads
13
License
MIT
Repository
github
Last release
8 years ago

simple-dyno

Build Status

Easy to use, minimalistic wrapper for AWS DynamoDB

Installation

$ npm install simple-dyno

Features

  • Easy way to create a model, keeping your code consistent and saving it to DynamoDB
  • Serializers to format your (json) response
  • Validation based on Joi
  • Encryption using bcrypt for your passwords
  • Local DynamoDB for testing purposes

Methods

To create a new entry, and options can include {skipValidation: true}:

Model.create(attributes, options)

To get an entry or multiple entries:

Model.get(keyValues)

To update an entry, and options can include {skipValidation: true}:

Model.update(keyValues, attributes, options)

To delete an entry:

Model.destroy(keyValues)

To perform a scan operation (not recommended):

Model.find(attributes)

To query using a secondary index:

Model.query(indexName, attributes)

To serialize the response attributes:

Model.serialize(response, options)

To run a local DynamoDB (which runs on Java), by default runs in memory but you can also store on disk using {inMemory: false} as options:

SimpleDyno.local(options)

To set the config, which you can pass the following options {accessKeyId: '', secretAccessKey: '', region: ''}:

SimpleDyno.config(options)

Example (in this case the config is set by default by AWS and assumes tables are already created)

// Import deps
import { Model } from 'simple-dyno';
import Joi from 'joi';

// Add your own methods
class UserModel extends Model {
  myAwesomeMethod(obj) {
    return obj.firstName+obj.lastName;
  }
}

// Create model instance
var User = new UserModel({
  table: 'users',
  hashKey: 'email',
  serializers: {
    default: ['email'],
    scary: ['access_token', 'password']
  },
  schema: {
    email: Joi.string().email(),
    access_token: Joi.string(),
    password: {
      format: Joi.string().regex(/[a-zA-Z0-9]{3,30}/),
      encrypt: true
    }
  }
});

var userObj = yield User.create({email: 'test@simpledyno.com', access_token: 'aW12k3KDASsd012Ms1Mf29Mc7', password: '******'})
return User.serialize(userObj, {format: 'scary'});

Example of running the local environment

// Import deps
import * as SimpleDyno from 'simple-dyno';

// Start a local DynamoDB
yield SimpleDyno.local();

// Create accociated tables for the following model(s)
SimpleDyno.load(User);

Todo

  • Fix CI by allowing Java to run on Travis
  • Migrations
  • Better docs (explain how AWS works)

How to contribute

Please create a pull request, make sure to include and update the tests and that they're working. And don't forget to build the minified version (with babel) with make simple-dyno.js.

Running tests

Use make test to do a test run using Mocha.

Legal stuff (MIT License)

Copyright (c) 2016 Awkward.

Distributed under MIT license.

0.1.1

8 years ago

0.1.0

8 years ago

0.0.9

8 years ago

0.0.8

8 years ago

0.0.7

8 years ago

0.0.6

8 years ago

0.0.5

8 years ago

0.0.4

8 years ago

0.0.3

8 years ago

0.0.2

8 years ago