/
Alex_Ural
/
opencode
Обзор
Документация
Войти
/
Alex_Ural
/
opencode
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
packages/desktop/src/main/store.ts
35 строк
1 KB
Luke Parker
fix(desktop): keep window tabs across app close (#34807)
02 июл 2026, 02:23
Не верифицирован
02 июл 2026, 02:23
f266e82
Код
Авторство
О чём код?
import Store from "electron-store" import electron from "electron" import { rmSync } from "node:fs" import { join } from "node:path" import { SETTINGS_STORE } from "./store-keys" import { deleteStoreFileIfEmpty } from "./store-cleanup" const cache = new Map<string, Store>() // We cannot instantiate the electron-store at module load time because // module import hoisting causes this to run before app.setPath("userData", ...) // in index.ts has executed, which would result in files being written to the default directory // (e.g. bad: %APPDATA%\@opencode-ai\desktop\opencode.settings vs good: %APPDATA%\ai.opencode.desktop.dev\opencode.settings). export function getStore(name = SETTINGS_STORE) { const cached = cache.get(name) if (cached) return cached const next = new Store({ name, cwd: electron.app.getPath("userData"), fileExtension: "", accessPropertiesByDotNotation: false, }) cache.set(name, next) return next } export async function removeStoreFileIfEmpty(name: string) { if (await deleteStoreFileIfEmpty(electron.app.getPath("userData"), name)) cache.delete(name) } export function removeStoreFile(name: string) { rmSync(join(electron.app.getPath("userData"), name), { force: true }) cache.delete(name) }