ectypes-sequelize

0.0.1 • Public • Published

ectypes-sequelize

A ectypes strategy for Sequelize.js - http://www.sequelizejs.com/.

Ectypes can be found at http://github.com/nicholasf/ectypes.js

Installation

npm install ectypes-sequelize

Explanation

Calls to build() and create() on a Sequelize model are supported.

First, create the Sequelize connection and configure it on the ectypes-sequelize strategy. Then load the strategy into ectypes.

var ectypes = require('ectypes');
var sequelize = new Sequelize('ectypes_test', 'nicholas', null);
var ectypesSequelize = require('ectypes-sequelize').setup(sequelize);

ectypes.load(ectypesSequelize);

Once you have defined an ectype for your model:

//the Sequelize model definition
var Project = sequelize.define('Project', {
  title: Sequelize.STRING,
  description: Sequelize.TEXT
});

//the ectype for the Project model
var projectType = {
    Project: {
        title: function(){ return Faker.Name.findName() }
    }
};

ectypes.add(projectType);

You may then call build() or create() upon it through ectypes to produce the object.

ectypes.Project.create().success(function(project){
    console.log(project.id, project.title);  //this logs something like 6 'Autumn Medhurst' (using Faker)
});

Use hooks to model associations.

    ectypes.plan(
        {
            Project: {
                title: function(){ return Faker.Name.findName() },
                description: function(){ return Faker.Lorem.findSentences() },
                _hooks: [ 'add a task to a project', function(project, functionName){
                    if (functionName === 'create'){				
                        Task.create().success(function(task){
                            project.task = task;
                            project.save();
                        });
                    }
                }]
            }
        });

    project = ectypes.Project.build();

Running Tests

mocha --ignore-leaks tests/ectypes-sequelize-test.js 

Credits

This library was made while working at Moneytribe - http://moneytribe.com.au.

Readme

Keywords

none

Package Sidebar

Install

npm i ectypes-sequelize

Weekly Downloads

2

Version

0.0.1

License

none

Last publish

Collaborators

  • nicholasf