Skip to content
/ neonjs Public

Yet another ODM for NeDB inspired by Mongorito.

Notifications You must be signed in to change notification settings

audinue/neonjs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5f2e220 · Jul 9, 2016

History

5 Commits
Jul 9, 2016
Jul 9, 2016
Jul 9, 2016
Jul 9, 2016

Repository files navigation

NeonJS

NeonJS Logo

Yet another ODM for NeDB inspired by Mongorito.

npm install neonjs

Tested on:

let neonjs = require('neonjs')
let Model = neonjs.Model

// Define your models
class UserModel extends Model {

  sayHello () {
    return 'Hello ' + this.name
  }
}

// Assign your models to NeDB instances
let Nedb = require('nedb')
let User = UserModel.for(new Nedb({ filename: 'users.db', autoload: true }))

// Use your models
let run = neonjs.run // Batteries included

run(function * () {
  let user = new User({
    name: 'John Doe'
  })

  // No callbacks required :)
  yield user.save()

  let users = yield User.find().limit(7).exec()
})

API

Expressed in TypeScript (though I don't use one).

class Model {

  save (): Promise<Model> {}

  remove (): Promise<Model> {}

  static for <T extends Model> (db: Nedb): T {}

  static find (query?: Object): ModelCursor {}

  static findOne (query?: Object): ModelCursor {}

  static count (query?: Object): ModelCursor {}

  static save (models: Array<Model>): Promise<Array<Model>> {}

  static remove (models: Array<Model>): Promise<Array<Model>> {}
}

class ModelCursor {

  sort (value): ModelCursor {}

  limit (value): ModelCursor {}

  skip (value): ModelCursor {}

  populate (property, model): ModelCursor {}

  exec(): Promise<any> {}
}

function run (generator: Function): Promise<any> {}

run.for = function (array: Array<any>, generator: Function): Promise<Array<any>> {}

More information later. Stay tuned.

About

Yet another ODM for NeDB inspired by Mongorito.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published