UNPKG

moltres-utils

Version:
63 lines (48 loc) 1.67 kB
"use strict"; require("core-js/modules/es6.object.define-property"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _compact = _interopRequireDefault(require("./compact")); var _curry = _interopRequireDefault(require("../common/curry")); var _defn = _interopRequireDefault(require("../common/defn")); var _getProp = _interopRequireDefault(require("./getProp")); var _isArray = _interopRequireDefault(require("../lang/isArray")); var _isUndefined = _interopRequireDefault(require("../lang/isUndefined")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Retrieve the value at a given path. * * @function * @since v0.0.3 * @category data * @typedefn Idx = String | Int * @sig [Idx] -> {a} -> a | Undefined * @param {Array} path The path to use. * @param {Object} obj The object to retrieve the nested property from. * @returns {*} The data at `path`. * @example * * getPath(['a', 'b'], {a: {b: 2}}); //=> 2 * getPath(['a', 'b'], {c: {b: 2}}); //=> undefined */ var getPath = (0, _curry.default)((0, _defn.default)('getPath', function (path, obj) { if (!(0, _isArray.default)(path)) { throw new TypeError("getPath expected path to be an Array. Instead received ".concat(path)); } var pathParts = (0, _compact.default)(path); var val = obj; var idx = 0; while (idx < pathParts.length) { val = (0, _getProp.default)(pathParts[idx], val); if ((0, _isUndefined.default)(val)) { return val; } idx += 1; } return val; })); var _default = getPath; exports.default = _default; //# sourceMappingURL=getPath.js.map