1.0.6 • Published 8 years ago

daoi v1.0.6

Weekly downloads
13
License
MIT
Repository
github
Last release
8 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

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago

0.7.4

9 years ago

0.7.3

9 years ago

0.7.2

9 years ago

0.7.1

9 years ago

0.7.0

9 years ago

0.6.0

9 years ago

0.5.2

9 years ago

0.5.1

9 years ago

0.5.0

9 years ago

0.4.2

9 years ago

0.4.1

9 years ago

0.4.0

9 years ago

0.3.3

9 years ago

0.3.2

9 years ago

0.3.1

9 years ago

0.3.0

9 years ago

0.1.0

9 years ago