From 0d124ffd6bc7b85d6e3b5573be1aad3a320d024b Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Wed, 22 Jan 2025 22:38:44 +0800 Subject: [PATCH] chore: better type safe for electron store --- apps/main/src/index.ts | 3 +-- apps/main/src/lib/proxy.ts | 2 +- apps/main/src/lib/store.ts | 9 +++++++++ apps/main/src/lib/tray.ts | 2 +- apps/main/src/lib/user.ts | 2 +- apps/main/src/window.ts | 7 +------ 6 files changed, 14 insertions(+), 11 deletions(-) diff --git a/apps/main/src/index.ts b/apps/main/src/index.ts index e01cf6ce4..7104401e3 100644 --- a/apps/main/src/index.ts +++ b/apps/main/src/index.ts @@ -5,7 +5,6 @@ import { env } from "@follow/shared/env" import { imageRefererMatches, selfRefererMatches } from "@follow/shared/image" import { parse } from "cookie-es" import { app, BrowserWindow, session } from "electron" -import type { Cookie } from "electron/main" import squirrelStartup from "electron-squirrel-startup" import { DEVICE_ID } from "./constants/system" @@ -77,7 +76,7 @@ function bootstrap() { mainWindow = createMainWindow() // restore cookies - const cookies = store.get("cookies") as Cookie[] + const cookies = store.get("cookies") if (cookies) { Promise.all( cookies.map((cookie) => { diff --git a/apps/main/src/lib/proxy.ts b/apps/main/src/lib/proxy.ts index edd8a2460..38ef651b9 100644 --- a/apps/main/src/lib/proxy.ts +++ b/apps/main/src/lib/proxy.ts @@ -25,7 +25,7 @@ export const setProxyConfig = (inputProxy: string) => { } export const getProxyConfig = () => { - const proxyConfig = store.get("proxy") as string | undefined + const proxyConfig = store.get("proxy") if (!proxyConfig) { return } diff --git a/apps/main/src/lib/store.ts b/apps/main/src/lib/store.ts index 6e0a3a86a..edb1abf0c 100644 --- a/apps/main/src/lib/store.ts +++ b/apps/main/src/lib/store.ts @@ -1,4 +1,5 @@ import type { Credentials } from "@eneris/push-receiver/dist/types" +import type { Cookie } from "electron" import Store from "electron-store" // @keep-sorted @@ -8,8 +9,16 @@ type StoreData = { appearance?: "light" | "dark" | "system" | null betterAuthSessionCookie?: string | null cacheSizeLimit?: number | null + cookies?: Cookie[] | null + minimizeToTray?: boolean | null proxy?: string | null user?: string | null + windowState?: { + height: number + width: number + x: number + y: number + } | null } export const store = new Store({ name: "db" }) diff --git a/apps/main/src/lib/tray.ts b/apps/main/src/lib/tray.ts index 60c83612b..d459cf6a7 100644 --- a/apps/main/src/lib/tray.ts +++ b/apps/main/src/lib/tray.ts @@ -54,7 +54,7 @@ const destroyAppTray = () => { const DEFAULT_MINIMIZE_TO_TRAY = isMacOS ? false : true -export const getTrayConfig = (): boolean => store.get("minimizeToTray") ?? DEFAULT_MINIMIZE_TO_TRAY +export const getTrayConfig = () => store.get("minimizeToTray") ?? DEFAULT_MINIMIZE_TO_TRAY export const setTrayConfig = (input: boolean) => { store.set("minimizeToTray", input) diff --git a/apps/main/src/lib/user.ts b/apps/main/src/lib/user.ts index d63a9afa1..0a61e5c3f 100644 --- a/apps/main/src/lib/user.ts +++ b/apps/main/src/lib/user.ts @@ -8,7 +8,7 @@ import { store } from "./store" const BetterAuthKey = "betterAuthSessionCookie" export const setBetterAuthSessionCookie = (cookie: string) => store.set(BetterAuthKey, cookie) -export const getBetterAuthSessionCookie = (): string | null => store.get(BetterAuthKey) || null +export const getBetterAuthSessionCookie = () => store.get(BetterAuthKey) export const cleanBetterAuthSessionCookie = () => store.set(BetterAuthKey, null) const UserKey = "user" diff --git a/apps/main/src/window.ts b/apps/main/src/window.ts index aa6b15eb7..e854e5a57 100644 --- a/apps/main/src/window.ts +++ b/apps/main/src/window.ts @@ -222,12 +222,7 @@ export function createWindow( } export const windowStateStoreKey = "windowState" export const createMainWindow = () => { - const windowState = store.get(windowStateStoreKey) as { - height: number - width: number - x: number - y: number - } | null + const windowState = store.get(windowStateStoreKey) const primaryDisplay = screen.getPrimaryDisplay() const { workArea } = primaryDisplay