light-ning
Version:
(ALPHA) framework without dependecies...
64 lines (50 loc) • 1.89 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _isArray = require('../array/isArray');
var _isArray2 = _interopRequireDefault(_isArray);
var _isString = require('../string/isString');
var _isString2 = _interopRequireDefault(_isString);
var _isObject = require('./isObject');
var _isObject2 = _interopRequireDefault(_isObject);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
*
* @name pick
* @param data {object}
* @param rules {string} or {array}
* @returns {array}
*
* @example pick({ user: 'zxc', pass: 'secret' }, 'pass') // returns ['zxc']
* @example pick({ user: 'zxc', pass: 'secret' }, ['pass']) // returns ['zxc']
*
* @description if element not found, pick returns @param data
* @copyright Vladimir Sentiurin 2017
*/
exports.default = function (data, rules) {
if ((0, _isObject2.default)(data)) {
var _ret = function () {
var keys = Object.keys(data);
var picked = {};
if ((0, _isArray2.default)(rules)) {
keys.map(function (key) {
rules.map(function (rule) {
if (key === rule) picked[key] = data[key];
});
});
} else if ((0, _isString2.default)(rules)) {
keys.map(function (key) {
if (key === rules) picked[key] = data[key];
});
}
return {
v: picked
};
}();
if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v;
} else {
throw new Error('first argument "' + data + '" must be object in pick function');
}
};
;