import storage from "./storageConfig"; import * as Updates from "expo-updates"; export const AS = { getItem: (key: string) => storage.load({ key }), setItem: (key: string, data: any) => storage.save({ key, // Note: Do not use underscore("_") in key! data, // if expires not specified, the defaultExpires will be applied instead. // if set to null, then it will never expire. expires: null, }), removeItem: (key: string) => storage.remove({ key }), }; type ASCoreProps = (s: { k: any; s: any; d: any; u: any }) => Promise; export const ASCore: ASCoreProps = ({ k, s, d, u }) => AS.getItem(k) .then((d) => d ? s(d) : AS.setItem(k, d).then(() => u && Updates.reloadAsync()) ) .catch(() => AS.setItem(k, d).then(() => u && Updates.reloadAsync()));