3.4.1 • Published 7 years ago

seventy-eight v3.4.1

Weekly downloads
3
License
ISC
Repository
github
Last release
7 years ago

Active Record Lite

wercker status Coverage Status dependencies Status

var seventyEight = require('seventy-eight');

module.exports = seventyEight.createModel({
  constructor: function User(props) {

  },
  query: {
    findByUsername: function(username) {
      return this.where({ username: username }).one();
    }
  },
  instance: {
    hasRole: function(role) {
      return !!_.intersection([].concat(role), this.roles.split(',')).length;
    }
  }
});

Initialize

Configure DB connection at runtime:

DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_SCHEMA, DEBUG

Documentation

API

// model creation
seventyEight.createModel({ config });

Static Methods

all()

// return all records according to any conditionals applied
User.all().then(function(records) {
  records // Array
}, function(err) {
  err // SQL error
});

select()

// Array or csv syntax
User.select('id, name, date_created'])
User.select(['id', 'name', 'date_created'])

one()

User.where({ admin: 1 }).one().then(function(record) {
  record // User instance
}, function(err) {
  err // SQL error
});

joins()

User.select("id, name, zip_code, GROUP_CONCAT(roles.name SEPARATOR ',')")
  .joins([
    'INNER JOIN locations ON users.zip_code = locations.zip_code',
    'INNER JOIN user_roles ON users.id = user_roles.user_id',
    'INNER JOIN roles ON user_roles.role_id = roles.id'
  ])

where()

// simple JS object AND concatenation
User.where({ admin: 1 } })
  // WHERE admin = 1

// OR using a distributive syntax
User.where({ '$OR': { admin: 1, access: 1 } } })
  // WHERE admin = 1 OR access = 1

// multiple where statements with custom comparators
User.where({ id: 1 }).where({ id: ['!=', 1] }).where({ id: ['>=', 1] });
  // WHERE `id` = 1 AND `id` != 1 AND `id` >= 1

// multi-level AND OR compositions
User.where({ $OR: { name: 'root', $AND: { title: 'manager', $OR: { updated: 0, deleted: 1 } } } })
  // WHERE (`name` = 'root' OR (`title` = 'manager' AND (`updated` = 0 OR `deleted` = 1)))

order()

group()

limit()

then()

Instance Methods

save()

var user = new User({ name: 'Wiley Bennett', admin: 1 });
user.save().then(function(user) {
  // user instance with populated `id` field
});

update()

delete()

afterFind()

var seventyEight = require('seventy-eight');

module.exports = seventyEight.createModel({
  constructor: function User(props) {
    this.data_field = props.data;
  },
  instance: {
    afterFind: function() {
      this.data = JSON.parse(this.json);
    }
  }
});

beforeSave(properties)

var seventyEight = require('seventy-eight');

module.exports = seventyEight.createModel({
  constructor: function User(props) {

  },
  instance: {
    beforeSave: function(props) {
      props.json = JSON.stringify(props.data);
      return props;
    }
  }
});

Literal SQL

Write literal SQL by using the connector:

seventyEight.db.query("SELECT * FROM USERS;")
  .then(function(response) {}, function(err) {});

Development

Run tests

Create a .env file with your local MySQL connection credentials

DB_HOST=localhost
DB_USER=root
DB_PASSWORD=root
DB_PORT=3306
DB_SCHEMA=seventy_eight
3.4.1

7 years ago

3.4.0

7 years ago

3.3.6

8 years ago

3.3.4

8 years ago

3.3.3

8 years ago

3.3.1

8 years ago

3.3.0

8 years ago

3.2.0

8 years ago

3.1.2

8 years ago

3.1.1

8 years ago

3.1.0

8 years ago

3.0.0

8 years ago

2.2.0

8 years ago

2.1.11

8 years ago

2.1.10

8 years ago

2.1.9

8 years ago

2.1.8

8 years ago

2.1.7

8 years ago

2.1.6

8 years ago

2.1.5

8 years ago

2.1.4

8 years ago

2.1.3

8 years ago

2.1.2

8 years ago

2.1.1

8 years ago

2.1.0

8 years ago

2.0.6

8 years ago

2.0.4

8 years ago

2.0.3

8 years ago

2.0.2

8 years ago

2.0.1

8 years ago

1.2.1

8 years ago

1.1.0

8 years ago

1.0.0

8 years ago

0.7.1

8 years ago

0.7.0

8 years ago

0.6.0

8 years ago

0.5.11

8 years ago

0.5.10

8 years ago

0.5.9

8 years ago

0.5.8

8 years ago

0.5.7

8 years ago

0.5.6

8 years ago

0.5.5

8 years ago

0.5.4

8 years ago

0.5.3

8 years ago

0.5.2

8 years ago

0.5.1

8 years ago

0.5.0

8 years ago

0.3.19

8 years ago

0.3.18

8 years ago

0.3.17

8 years ago

0.3.16

8 years ago

0.3.15

8 years ago

0.3.14

9 years ago

0.3.13

9 years ago

0.3.12

9 years ago

0.3.11

9 years ago

0.3.10

9 years ago

0.3.9

9 years ago

0.3.8

9 years ago

0.3.7

9 years ago

0.3.6

9 years ago

0.3.5

9 years ago

0.3.4

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.2.18

9 years ago

0.2.17

9 years ago

0.2.16

9 years ago

0.2.15

9 years ago

0.2.14

9 years ago

0.2.13

9 years ago

0.2.12

9 years ago

0.2.11

9 years ago

0.2.10

9 years ago

0.2.9

9 years ago

0.2.8

9 years ago

0.2.7

9 years ago

0.2.6

9 years ago

0.2.4

9 years ago

0.2.3

9 years ago

0.2.0

10 years ago

0.1.21

10 years ago

0.1.20

10 years ago

0.1.18

10 years ago

0.1.16

10 years ago

0.1.15

10 years ago

0.1.14

10 years ago

0.1.13

10 years ago

0.1.12

10 years ago

0.1.11

10 years ago

0.1.10

10 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.0

10 years ago

0.0.47

10 years ago

0.0.45

10 years ago

0.0.44

10 years ago

0.0.43

10 years ago

0.0.42

10 years ago

0.0.41

10 years ago

0.0.40

10 years ago

0.0.39

10 years ago

0.0.38

10 years ago

0.0.37

10 years ago

0.0.36

10 years ago

0.0.35

10 years ago

0.0.34

10 years ago

0.0.33

10 years ago

0.0.31

10 years ago

0.0.29

10 years ago

0.0.28

10 years ago

0.0.27

10 years ago

0.0.26

10 years ago

0.0.25

10 years ago

0.0.24

10 years ago

0.0.23

10 years ago

0.0.22

10 years ago

0.0.21

10 years ago

0.0.20

10 years ago

0.0.14

10 years ago

0.0.12

10 years ago

0.0.11

10 years ago

0.0.10

10 years ago

0.0.9

10 years ago

0.0.8

10 years ago

0.0.7

10 years ago

0.0.6

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago