bookshelf-plugin-mode
v1.0.2
Published
bookshelf-plugin-mode is inspired by visibility plugin, providing functionality to specify different modes with corresponding visible/hidden fields of model.
Downloads
6
Readme
bookshelf-plugin-mode
bookshelf-plugin-mode is inspired by visibility plugin, providing functionality to specify different modes with corresponding visible/hidden fields of model.
install
npm install --save bookshelf-plugin-mode
usage
add plugin
var mode = require('bookshelf-plugin-mode');
bookshelf.plugin(mode);
define model modes
const User = bookshelf.Model.extend({
tableName: "user",
idAttribute: "user_id",
serialize: function () {
return {
id: this.get('user_id'),
name: this.get('name'),
tel: this.get('tel'),
email: this.get('email')
}
},
modes: {
info: {
hidden: ['id']
},
test: {
visible: ['name','tel']
}
}
});
use mode(...)
in query
new User().mode('info').fetch();
// {name: "username", tel: "user_tel", email: "user_email}
new User().mode('test').fetch();
// {name: "username, tel: "user_tel"}
use mode
in related
new User().fetch({
originalOptions: {
require: true,
withRelated: ['relatedTable', 'photo']
},
modeOptions: {
'relatedTable': 'mode',
'photo': 'info'
}
});