1.0.6 • Published 9 years ago

daoi v1.0.6

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

DAO

Simple Data Access Object interface with support for pluggable implementations based on versioned specs

Sample code

var dao = require('daoi');
var s3DaoAdapter = require('s3DaoAdapter');

dao
.use(s3DaoAdapter)
.on('create', function(model){
	// persisted model
})
.on('error', function(err){
	// error handler
})
.config({ storage: 'mybucket/users.json' })
.create({ name: 'joe', email: 'joe@test.com' });

Installation

npm install daoi --save

Implementations

daoi is just an interface. You need a concrete dao implementation in order to persist your models. Currently there is only one known implementation for AWS S3: dao-s3 (v0 compliant).

Below are the operations required to be implemented by a concrete dao implementation grouped by the compliance level. A dao implementation must be at least v0 compliant.

v0 compliant operations: create, read, update, delete

v1 compliant operations: v0 operations + count, find, findOne, remove

v2 compliant operations: v1 operations + save, upsert, bulkCreate, bulkUpdate, bulkDelete

Helpers

Once an implementor is set via dao.use(...), the complicance level can be queried using dao.getComplianceLevel().

The dao interface is completely model agnostic. A dao concrete implementation should handle any model. An additional register method allows for model discrimination via an injected $type property in the supplied model:

var userDao = dao.use(myAdapter).register('user');

userDao
.on('create', function(model){
	// model.$type === 'user' 
})
.create({name:'test'});
1.0.6

9 years ago

1.0.5

9 years ago

1.0.4

9 years ago

1.0.3

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago

0.7.4

10 years ago

0.7.3

10 years ago

0.7.2

10 years ago

0.7.1

10 years ago

0.7.0

10 years ago

0.6.0

10 years ago

0.5.2

10 years ago

0.5.1

10 years ago

0.5.0

10 years ago

0.4.2

10 years ago

0.4.1

10 years ago

0.4.0

10 years ago

0.3.3

10 years ago

0.3.2

10 years ago

0.3.1

10 years ago

0.3.0

10 years ago

0.1.0

10 years ago