light-ning
Version:
(ALPHA) framework without dependecies...
70 lines (55 loc) • 2.22 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = undefined;
var _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; }; }();
var _lib = require('./lib');
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var Controller = function () {
function Controller() {
_classCallCheck(this, Controller);
this.filterMode = 'omit';
}
_createClass(Controller, [{
key: 'bindMethods',
value: function bindMethods(array) {
var _this = this;
array.map(function (method) {
_this[method] = _this['can'].bind(_this);
});
}
}, {
key: 'filtrate',
value: function filtrate(target) {
if (!target) return false;
if (!(0, _lib.isObject)(target)) {
throw new Error('method "filtrate" in "BaseController" gets only object');
}
var filter = this.filter,
filterMode = this.filterMode;
if (!filter) return target;
switch (filterMode) {
case 'omit':
if (target.length > 0) {
return target.map(function (target) {
return (0, _lib.omit)(target, filter);
});
} else {
return (0, _lib.omit)(target, filter);
}
case 'pick':
if (target.length > 0) {
return target.map(function (target) {
return (0, _lib.pick)(target, filter);
});
} else {
return (0, _lib.pick)(target, filter);
}
}
}
}]);
return Controller;
}();
Controller.displayName = 'Controller';
exports.default = Controller;
;