UNPKG

react-native-gigya-sdk

Version:
45 lines (35 loc) 1.16 kB
import type { GigyaSdkStateType } from '../types' import { state, initialState } from '../internals/state' export default function (): Promise<GigyaSdkStateType> { return new Promise(async (resolve, reject) => { try { if (!Object.is(state, initialState)) { return resolve(state) } let output: GigyaSdkStateType | null = null const rehydrateState = async (storeKey: string): Promise<GigyaSdkStateType | null> => { let persistedState = null try { const data = await Promise.resolve(state.storage?.getItem?.(storeKey)) if (data) { persistedState = JSON.parse(data) as GigyaSdkStateType } } catch (error) { reject(error) } return persistedState } output = await rehydrateState(state.storageKey) if ( output?.storageKey && output?.storageKey !== state.storageKey && state?.storageKey === initialState.storageKey ) { output = await rehydrateState(output?.storageKey as string) } resolve(output || initialState) } catch (e) { reject(e) } }) }