xenforo-dl
Version:
XenForo Forum Downloader
36 lines • 1.06 kB
JavaScript
export default class ObjectHelper {
static getProperty(obj, prop, required = false) {
if (typeof obj !== 'object') {
if (required) {
throw new ObjectPropertyNotFoundError(prop);
}
return undefined;
}
const props = prop.split('.');
let v = obj;
while (props.length > 0) {
const p = props.shift();
if (v && typeof v === 'object') {
v = v[p];
if (v === undefined) {
if (required) {
throw new ObjectPropertyNotFoundError(prop);
}
return v;
}
}
else if (required) {
throw new ObjectPropertyNotFoundError(prop);
}
}
return v;
}
}
class ObjectPropertyNotFoundError extends Error {
constructor(prop) {
super();
this.name = 'ObjectPropertyNotFoundError';
this.prop = prop;
}
}
//# sourceMappingURL=ObjectHelper.js.map