yajm
v0.3.0
Published
'Yet Another Javascript Model' library
Downloads
18
Readme
Yet Another Javascript Model
Javascript Domain Model factory.
Install
npm install yajm --save
Usage
var Model = require('yajm').Model;
var Types = require('yajm').Types;
// define a model class
var User = Model.define({
id: Types.Integer,
username: String,
isAdmin: {
type: Boolean,
default: false
},
// array of string
tags: [String],
// array of anonymous contact model
contacts: [{
firstName: String,
lastName: String,
email: String
}]
});
// create a user
var user = new User({
id: '123',
tags: ['foo', 'bar'],
contacts: [{
firstName: 'aaron',
lastName: 'qian',
email: 'aq@gmail'
}]
});
// get attribute
user.id; // 123, note this is already been coreced into integer
user.tags; // ['foo', 'bar']
// set attribute and coersion
user.id = "456";
user.id; // 456
user.isAdmin = 'yes';
user.isAdmin // true
// setting undefined property:
user.undefinedProp = "foo";
// In strict mode, causes TypeError to be thrown.
// In non-strict mode, silently ignored.
// Silently ignored in either modes.
user._set('undefinedProp', 'foo');