You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

26 lines
503 B

export const safeParse = (json: string): Object => {
try {
return JSON.parse(json);
} catch(err) {
return {};
}
};
export const safeGet = (obj: any, keyChain: string, defaultVal?: any): any => {
if(typeof obj !== 'object' || obj === null) {
return defaultVal;
}
let retVal = obj;
const keys = keyChain.split('.');
for(const key of keys) {
if(retVal[key] === undefined) {
return defaultVal;
} else {
retVal = retVal[key];
}
}
return retVal;
};