Native Package Manager

    bookshelf-plugin-mode

    1.0.2 • Public • Published

    bookshelf-plugin-mode

    NPM version Build Status

    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'
       }
    });
     

    Install

    npm i bookshelf-plugin-mode

    DownloadsWeekly Downloads

    7

    Version

    1.0.2

    License

    MIT

    Last publish

    Collaborators

    • popodidi
    • rubyxiao