1.0.9 • Published 7 years ago

sequelize-ts-entity v1.0.9

Weekly downloads
1
License
ISC
Repository
-
Last release
7 years ago

Sequelize typescript entity

This project helps you to build sequelize models with typescript with different concept. Instead of building models with json, you can create typescript classes to represent a strongly type model.

Installing

sequelize-ts-entity is completely on top of sequelize, so you can add this dependency to your typescript project:

npm install sequelize-ts-entity --save-dev

Starting example

This repo has tests inside. Please clone the repository, install dependencies and run test:

git clone https://github.com/torabian/sequelize-ts-entity
cd sequelize-ts-entity
npm install
npm start

Implemention described below step by step.

Import sequelize-ts-entity

You need to import some set of classes and functions from sequelize-ts-entity library, also including Sequelize itself.

import {STRING, EntityModel} from "sequelize-ts-entity";
const Sequelize = require("sequelize");

Create a database connection

Normally you need to create a connection with database before using Sequelize. do it as normal:

const connection = new Sequelize('mysql://root:root@localhost:3306/nwsclub');

Defining a model

Here is the different part. Instead of creating the Sequelize way a model, like:

var User = sequelize.define('user', {
  firstName: {
    type: Sequelize.STRING,
    field: 'first_name' // Will result in an attribute that is firstName when user facing but first_name in the database
  },
  lastName: {
    type: Sequelize.STRING
  }
}, {
  freezeTableName: true // Model tableName will be the same as the model name
});

Now you can define by extending the EntityModel:

/**
 * Defining new modeling system
 */
class UserModel extends EntityModel {
   
    @STRING()
    public Firstname() {
      // This will automatically generate first name
    }

    @STRING()
    public Lastname() {
      // this will automatically generate last name
    }

    public Action1() {
      return "This not a field"
    }

}

let User = UserModel.GetInstance("user" , connection);

Using model

Now you can continue normally with User object to query. for more information about Sequelize functions, check: http://docs.sequelizejs.com/en/v3/docs/getting-started/

User.sync({force: true}).then(function () {
  // Table created
  
  return User.create({
    Firstname: 'John',
    Lastname: 'Hancock'
  });
}).then(function () {
  User.findOne().then(function (data) {
      console.log("Hello: " , data.dataValues);
  }) 
});
1.0.9

7 years ago

1.0.7

7 years ago

1.0.6

7 years ago

1.0.4

7 years ago

1.0.3

7 years ago