UNPKG

2.22 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = undefined;
7
8var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
9
10var _lib = require('./lib');
11
12function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
13
14var Controller = function () {
15 function Controller() {
16 _classCallCheck(this, Controller);
17
18 this.filterMode = 'omit';
19 }
20
21 _createClass(Controller, [{
22 key: 'bindMethods',
23 value: function bindMethods(array) {
24 var _this = this;
25
26 array.map(function (method) {
27 _this[method] = _this['can'].bind(_this);
28 });
29 }
30 }, {
31 key: 'filtrate',
32 value: function filtrate(target) {
33 if (!target) return false;
34 if (!(0, _lib.isObject)(target)) {
35 throw new Error('method "filtrate" in "BaseController" gets only object');
36 }
37 var filter = this.filter,
38 filterMode = this.filterMode;
39
40 if (!filter) return target;
41
42 switch (filterMode) {
43
44 case 'omit':
45 if (target.length > 0) {
46 return target.map(function (target) {
47 return (0, _lib.omit)(target, filter);
48 });
49 } else {
50 return (0, _lib.omit)(target, filter);
51 }
52
53 case 'pick':
54 if (target.length > 0) {
55 return target.map(function (target) {
56 return (0, _lib.pick)(target, filter);
57 });
58 } else {
59 return (0, _lib.pick)(target, filter);
60 }
61
62 }
63 }
64 }]);
65
66 return Controller;
67}();
68
69Controller.displayName = 'Controller';
70exports.default = Controller;
\No newline at end of file