code: function filterStore(operation, store, args) {
    const filter = obj => {
      switch (operation) {
        case 'omit':
          return _.isFunction(args[0])
            ? _.omitBy(obj, args[0])
            : _.omit(obj, args);
        case 'pick':
          return _.isFunction(args[0])
            ? _.pickBy(obj, args[0])
            : _.pick(obj, args);
        default:
          break;
      }
    };
    switch (store) {
      case 'context':
      case 'functions':
      case 'directives':
      case 'plugins':
      case 'types':
        _.set(this, `_${store}`, filter(_.get(this, `_${store}`)));
        break;
      default:
        assert(false, `invalid store for ${operation} operation`);
        break;
    }
    return this;
  }
docs: performs a filter operation on a specified store
  @param {*} operation
  @param {*} store
  @param {*} args