react-native-gigya-sdk
Version:
SAP CDC/Gigya SDK for your React Native applications
45 lines (34 loc) • 1.54 kB
JavaScript
import { state, initialState } from '../internals/state';
export default function () {
return new Promise(async (resolve, reject) => {
try {
var _output, _output2;
if (!Object.is(state, initialState)) {
return resolve(state);
}
let output = null;
const rehydrateState = async storeKey => {
let persistedState = null;
try {
var _state$storage, _state$storage$getIte;
const data = await Promise.resolve((_state$storage = state.storage) === null || _state$storage === void 0 ? void 0 : (_state$storage$getIte = _state$storage.getItem) === null || _state$storage$getIte === void 0 ? void 0 : _state$storage$getIte.call(_state$storage, storeKey));
if (data) {
persistedState = JSON.parse(data);
}
} catch (error) {
reject(error);
}
return persistedState;
};
output = await rehydrateState(state.storageKey);
if ((_output = output) !== null && _output !== void 0 && _output.storageKey && ((_output2 = output) === null || _output2 === void 0 ? void 0 : _output2.storageKey) !== state.storageKey && (state === null || state === void 0 ? void 0 : state.storageKey) === initialState.storageKey) {
var _output3;
output = await rehydrateState((_output3 = output) === null || _output3 === void 0 ? void 0 : _output3.storageKey);
}
resolve(output || initialState);
} catch (e) {
reject(e);
}
});
}
//# sourceMappingURL=getState.js.map