UNPKG

@boneframework/native-components

Version:
81 lines (66 loc) 2.02 kB
import * as SecureStore from 'expo-secure-store'; import AsyncStorage from "@react-native-async-storage/async-storage"; import jwtDecode from 'jwt-decode'; const userKey = 'user'; const tokenKey = 'authToken'; const getUser = async () => { return await fetch(userKey); }; const storeUser = user => { store(userKey, user, 'error storing the user'); }; const storeAuthToken = async token => { await storeSecure(tokenKey, token, 'error storing the auth token'); }; const getAuthToken = async () => { return await fetchSecure(tokenKey); }; const removeAuthToken = () => { removeSecure(tokenKey); } const removeUser = () => { remove(userKey); } const removeSecure = async key => { try { await SecureStore.deleteItemAsync(key); } catch (error) { console.error('error removing ' + key + ' from storage', error); } } const storeSecure = async (key, value, errorMessage = 'error storing value') => { try { await SecureStore.setItemAsync(key, JSON.stringify(value)); } catch (error) { console.error(errorMessage, error); } } const fetchSecure = async key => { try { return JSON.parse(await SecureStore.getItemAsync(key)); } catch (error) { console.error('error fetcghing storage key ' + key, error); } } const store = async (key, value, errorMessage = 'error storing value') => { try { await AsyncStorage.setItem(key, JSON.stringify(value)); } catch (error) { console.error(errorMessage, error); } } const fetch = async key => { try { return JSON.parse(await AsyncStorage.getItem(key)); } catch (error) { console.error('error fetcghing storage key ' + key, error); } } const remove = async key => { try { await AsyncStorage.removeItem(key); } catch (error) { console.error('error removing ' + key + ' from storage', error); } } export default { getAuthToken, getUser, removeAuthToken, removeUser, storeAuthToken, storeUser };