mirror of
https://github.com/hicccc77/WeFlow.git
synced 2026-03-22 07:32:29 +08:00
66 lines
1.4 KiB
TypeScript
66 lines
1.4 KiB
TypeScript
import Store from 'electron-store'
|
|
|
|
interface ConfigSchema {
|
|
// 数据库相关
|
|
dbPath: string // 数据库根目录 (xwechat_files)
|
|
decryptKey: string // 解密密钥
|
|
myWxid: string // 当前用户 wxid
|
|
onboardingDone: boolean
|
|
imageXorKey: number
|
|
imageAesKey: string
|
|
|
|
// 缓存相关
|
|
cachePath: string
|
|
lastOpenedDb: string
|
|
lastSession: string
|
|
|
|
// 界面相关
|
|
theme: 'light' | 'dark' | 'system'
|
|
themeId: string
|
|
language: string
|
|
logEnabled: boolean
|
|
llmModelPath: string
|
|
}
|
|
|
|
export class ConfigService {
|
|
private store: Store<ConfigSchema>
|
|
|
|
constructor() {
|
|
this.store = new Store<ConfigSchema>({
|
|
name: 'WeFlow-config',
|
|
defaults: {
|
|
dbPath: '',
|
|
decryptKey: '',
|
|
myWxid: '',
|
|
onboardingDone: false,
|
|
imageXorKey: 0,
|
|
imageAesKey: '',
|
|
cachePath: '',
|
|
lastOpenedDb: '',
|
|
lastSession: '',
|
|
theme: 'system',
|
|
themeId: 'cloud-dancer',
|
|
language: 'zh-CN',
|
|
logEnabled: false,
|
|
llmModelPath: ''
|
|
}
|
|
})
|
|
}
|
|
|
|
get<K extends keyof ConfigSchema>(key: K): ConfigSchema[K] {
|
|
return this.store.get(key)
|
|
}
|
|
|
|
set<K extends keyof ConfigSchema>(key: K, value: ConfigSchema[K]): void {
|
|
this.store.set(key, value)
|
|
}
|
|
|
|
getAll(): ConfigSchema {
|
|
return this.store.store
|
|
}
|
|
|
|
clear(): void {
|
|
this.store.clear()
|
|
}
|
|
}
|