stackerjs-orm

1.4.2 • Public • Published

Travis Test Coverage Maintainability Dependencies npm

NPM

StackerJS

Database: ORM

An ORM to be used inside and outside StackerJS

Preparing

Entities must be configured:

// Entities/User.js
 
 
export class User
{
    
    metadata()
    {
        return {
            'table': 'users',
            'fields': [
                { 'name': 'id', 'type': 'pk' },
                { 'name': 'name', 'type': 'string', 'required': true },
                { 'name': 'active', 'type': 'boolean', 'default': true }
            ],
            'relations': []
        }
    }
 
}

And then Repository is declared:

// Repositories/UserRepository.js
import { User } from './../Entities/User';
 
 
export class UserRepository
{
 
    constructor()
    {
        this.entity = new User();
    }
 
}

Inserting

let user = new User();
user['name'] = 'My Name is...';
 
let usersRepository = new UserRepository();
usersRepository.save(user)
    .then(response => {
        if (!response)
            console.log(usersRepository.getErrors());
 
        return response;
    });

Querying

let usersRepository = new UserRepository();
 
// Fetching by ID
let user = await usersRepository.findById(1);
 
// Fetching one by filter as string
let user = await usersRepository.findOne("active = 1");
 
//Fetching many by filter as object
let user = await usersRepository.findAll({
    'active': { 'eq': true } // or 'active': [ 'eq', true ]
});

Comparisions

Term MySQL Term Description
eq = Looks for exactly equal results
neq <> Looks for exactly different
gt > Looks for greater values
gte >= Looks for greater or equal values
lt < Looks for lower values
lte <= Looks for lower or equal values
in IN Looks for values inside array
nin NOT INT Looks for values not inside array

Package Sidebar

Install

npm i stackerjs-orm

Weekly Downloads

29

Version

1.4.2

License

none

Unpacked Size

178 kB

Total Files

16

Last publish

Collaborators

  • parpeoficial