mirror of
https://github.com/whyour/qinglong.git
synced 2025-05-22 14:26:07 +08:00
35 lines
909 B
TypeScript
35 lines
909 B
TypeScript
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<IKeyvStore>({ store: keyvSqlite });
|
|
|
|
export const shareStore = {
|
|
getAuthInfo() {
|
|
return keyvStore.get<IKeyvStore['authInfo']>(EKeyv.authInfo);
|
|
},
|
|
updateAuthInfo(value: IKeyvStore['authInfo']) {
|
|
return keyvStore.set<IKeyvStore['authInfo']>(EKeyv.authInfo, value);
|
|
},
|
|
getApps() {
|
|
return keyvStore.get<IKeyvStore['apps']>(EKeyv.apps);
|
|
},
|
|
updateApps(apps: App[]) {
|
|
return keyvStore.set<IKeyvStore['apps']>(EKeyv.apps, apps);
|
|
},
|
|
};
|