import { AuthInfo } from '../data/system'; import { App } from '../data/open'; import Keyv from 'keyv'; import KeyvSqlite from '@keyv/sqlite'; import config from '../config'; import path from 'path'; export enum EKeyv { 'apps' = 'apps', 'authInfo' = 'authInfo', } export interface IKeyvStore { apps: App[]; authInfo: AuthInfo; } const keyvSqlite = new KeyvSqlite(path.join(config.dbPath, 'keyv.sqlite')); export const keyvStore = new Keyv({ store: keyvSqlite }); export const shareStore = { getAuthInfo() { return keyvStore.get(EKeyv.authInfo); }, updateAuthInfo(value: IKeyvStore['authInfo']) { return keyvStore.set(EKeyv.authInfo, value); }, getApps() { return keyvStore.get(EKeyv.apps); }, updateApps(apps: App[]) { return keyvStore.set(EKeyv.apps, apps); }, };