jrshikoku/storageControl.ts
harukin-expo-dev-env ad98372df8 ファイルの分離
2024-09-09 10:41:18 +00:00

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()));