26 lines
817 B
TypeScript
26 lines
817 B
TypeScript
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<any>;
|
|
|
|
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()));
|