feat: 调整项目结构

This commit is contained in:
DEV_DSW
2025-12-25 08:47:59 +08:00
parent 63592b2c3b
commit 50c7282ff2
9 changed files with 236 additions and 33 deletions

36
global.d.ts vendored
View File

@@ -42,6 +42,16 @@ declare global {
}
}
type TabId = string
interface TabInfo {
id: TabId
url: string
title: string
isLoading: boolean
canGoBack: boolean
canGoForward: boolean
}
// 定义IPC API 接口
interface WindowApi {
invoke<T extends keyof IPCTypings>(channel: T, ...args: IPCTypings[T]['params']): IPCTypings[T]['return'],
@@ -51,7 +61,7 @@ declare global {
getCurrentWindowId(): number,
versions: NodeJS.ProcessVersions,
external: {
open: (url: string) => void
open: (url: string) => Promise<void>
},
minimizeWindow: () => void,
maximizeWindow: () => void,
@@ -60,19 +70,19 @@ declare global {
isWindowMaximized: () => Promise<boolean>,
viewIsReady: () => void
app: {
setFrameless: (route?: string) => void,
loadPage: (page: string) => void
setFrameless: (route?: string) => Promise<void>,
loadPage: (page: string) => Promise<void>
},
tabs: {
create: (url?: string) => void,
list: () => void,
navigate: (tabId: string, url: string) => void,
reload: (tabId: string) => void,
back: (tabId: string) => void,
forward: (tabId: string) => void,
switch: (tabId: string) => void,
close: (tabId: string) => void,
on: (event: 'tab-updated' | 'tab-created' | 'tab-closed' | 'tab-switched', handler: (payload: any) => void) => void
create: (url?: string) => Promise<TabInfo>,
list: () => Promise<TabInfo[]>,
navigate: (tabId: string, url: string) => Promise<void>,
reload: (tabId: string) => Promise<void>,
back: (tabId: string) => Promise<void>,
forward: (tabId: string) => Promise<void>,
switch: (tabId: string) => Promise<void>,
close: (tabId: string) => Promise<void>,
on: (event: 'tab-updated' | 'tab-created' | 'tab-closed' | 'tab-switched', handler: (payload: any) => void) => () => void
},
readFile: (filePath: string) => Promise<{success: boolean, data?: string, error?: string}>,
logger: {
@@ -83,7 +93,7 @@ declare global {
},
}
declare interface Window {
interface Window {
api: WindowApi;
}