UNPKG

javascriptx

Version:

javascript 基础库扩展

149 lines (128 loc) 4.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; // Object var _replaceAlls = require("./replaceAlls"); var _replaceAlls2 = _interopRequireDefault(_replaceAlls); var _test = require("./test"); var _test2 = _interopRequireDefault(_test); var _testSome = require("./testSome"); var _testSome2 = _interopRequireDefault(_testSome); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var _getValueX = function _getValueX(object, field) { var repeat = []; var totalIndex = 0; var fields = field.split("."); var fs = fields.map(function (f, i) { return fields.slice(0, i + 1).join("."); }); var variable = []; var maxIndex = 10; if (fields.every(function (f) { return f !== "*"; })) { maxIndex = fields.length; } var getKeys = function getKeys(subObjects) { var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; if (index > maxIndex || totalIndex > 10000) { return undefined; } variable[index] = {}; for (var subObjectKey in subObjects) { var subObject = subObjects[subObjectKey]; for (var key in subObject) { totalIndex++; try { var val = subObject[key]; if ((subObjectKey ? field.includes('.') : true) && (0, _test2.default)(subObjectKey + key, field)) { return val; } if (val instanceof Object && !repeat.includes(val) && (0, _testSome2.default)(subObjectKey + key, fs.slice(0, index))) { repeat.push(val); variable[index][subObjectKey + key + "."] = val; } } catch (ex) { continue; } } } return Object.isEmpty(variable[index]) || index > maxIndex ? undefined : getKeys(variable[index], index + 1); }; return getKeys({ "": object }); }; var _getValue = function _getValue(object, field) { var fields = field.split('.'); var result = _extends({}, object); var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = fields[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var key = _step.value; if (result !== undefined && result !== null && result[key] !== undefined) { result = result[key]; } else { return undefined; } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } return result; }; var getValue = function getValue(object, field, defaultValue) { if (!field) { return defaultValue; } if (!object || !Object.keys(object).length || !field) { return defaultValue; } if (_replaceAlls2.default) { field = (0, _replaceAlls2.default)(field, ['[', ']', '"', "'"], ['.', '', '', '']); } var fields = field.split('|'); var result = defaultValue; var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = fields[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var f = _step2.value; var res = ~f.indexOf('*') ? _getValueX(object, f) : _getValue(object, f); if (res !== undefined) { result = res; if (res !== null) { break; } } } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } return result === undefined || result === null ? defaultValue : result; }; exports.default = getValue;