import TemporalUtils from './temporal-utils'; export default class ObjectPostProcessor { /** * Post-process JS object to auto-load some common framework types * * @param jsObj * @param jsonAdapter */ static postProcessJsObject(jsObj: T, jsonAdapter?: any): T { const recIterate = function (obj) { for (const key in obj) { const keyVal = obj[key]; if (jsonAdapter != null) { jsonAdapter( keyVal, key, obj, ); } if (Array.isArray(keyVal)) { keyVal.forEach((arrItem) => { recIterate(arrItem); }); } else if (keyVal != null && typeof keyVal === 'object') { recIterate(keyVal); } else { if (keyVal != null && keyVal.indexOf && TemporalUtils.isSerializedDate(keyVal)) { try { obj[key] = TemporalUtils.fromString(keyVal); } catch (e) { obj[key] = keyVal; } } } } }; recIterate(jsObj); return jsObj; } }