@hsui/sdk
Version:
Hundsun frontend framework JSSDK
41 lines • 1.33 kB
JavaScript
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
};