UNPKG

@hsui/sdk

Version:

Hundsun frontend framework JSSDK

41 lines 1.33 kB
import _typeof from "@babel/runtime/helpers/esm/typeof"; import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper"; // 格式化要获取的对象属性参数 function compilePointer(pointer) { if (typeof pointer === 'string') { pointer = pointer.split('/'); if (pointer[0] === '') return pointer.slice(1); throw new Error('Invalid JSON pointer.'); } else if (Array.isArray(pointer)) { var _iterator = _createForOfIteratorHelper(pointer), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var part = _step.value; if (typeof part !== 'string' && typeof part !== 'number') { throw new Error('Invalid JSON pointer. Must be of type string or number.'); } } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } return pointer; } throw new Error('Invalid JSON pointer.'); } function get(obj, pointer) { if (_typeof(obj) !== 'object') throw new Error('Invalid input object.'); pointer = compilePointer(pointer); var len = pointer.length; if (len === 0) return obj; for (var p = 0; p < len;) { obj = obj[pointer[p++]]; if (len === p) return obj; if (_typeof(obj) !== 'object' || obj === null) return undefined; } } export default { get: get };