UNPKG

light-ning

Version:

(ALPHA) framework without dependecies...

64 lines (50 loc) 1.89 kB
'use strict'; 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'); } };