0.1.12 • Published 9 years ago

sequelize-classes v0.1.12

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

Sequelize Six

travis-ci Stories in Ready

Overview

This package serves to assist in the creation of sequelize models via ES7 class syntax.

Requirements

  • Babel.js with --stage 0 flag OR using the stage 0 plugin for babel 6.0+
  • Sequelize.js

Extending from the Model Class

Lets start with an example of what a model could look like with Sequelize classes.

import {Model, hasMany} from 'sequelize-classes';
import {STRING} from 'sequelize';

@hasMany('Post', {as: 'posts', foreignKey: 'authorId'})
export default class User extends Model {
    username = {type: STRING, allowNull: false, unique: true};
    email: {type: STRING, allowNull: false, unique: true};
    firstName: {type: STRING};
    lastName: {type: STRING};
    
    get name() {
        return `${this.firstName} ${this.lastName}`;
    }
}

Note that this class is just a class, not a sequelize model at this point. The purpose of the Model class is to set up your classes in such a way so that the Builder tool can create your sequelize model definitions properly.

Using Builder to create your sequelize connection and define models

 import {Builder} from 'sequelize-classes';
 import {User} from './models/user';
 
 // Normal sequelize options.
 const options = {
   database: process.env.DB_NAME,
   username: process.env.DB_USER,
   pass: process.env.DB_PASS,
   config: {
     host: process.env.DB_HOST,
     port: process.env.DB_PORT,
     logging: false,
     dialect: 'postgres'
   }
 };
 
 // Pass sequelize connection options and an array of Classes extended from Model.
 const database = new Builder(options, [User]);
 
 // You can now access your sequelize instance via database.base and access all your models by name - database.User
0.1.12

9 years ago

0.1.11

9 years ago

0.1.10

9 years ago

0.1.9

10 years ago

0.1.8

10 years ago

0.1.7

10 years ago

0.1.6

10 years ago

0.1.5

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago