feat: 项目结构调整|新增依赖
This commit is contained in:
56
src/shared/types/ipc.types.ts
Normal file
56
src/shared/types/ipc.types.ts
Normal file
@@ -0,0 +1,56 @@
|
||||
export enum IPCChannel {
|
||||
APP_MINIMIZE ='app:minimize',
|
||||
APP_MAXIMIZE ='app:maximize',
|
||||
APP_QUIT ='app:quit',
|
||||
FILE_READ = 'file:read',
|
||||
FILE_WRITE = 'file:write',
|
||||
GET_WINDOW_ID='get-window-id',
|
||||
CUSTOM_EVENT ='custom:event',
|
||||
TIME_UPDATE = 'time:update'
|
||||
}
|
||||
|
||||
// 定义每个通道的参数和返回值类型
|
||||
export interface IPCTypings {
|
||||
// 同步通信
|
||||
[IPCChannel.APP_MINIMIZE]: {
|
||||
params: [window:number]
|
||||
return: {success: boolean, error?: string}
|
||||
}
|
||||
[IPCChannel.APP_MAXIMIZE]: {
|
||||
params: [window:number]
|
||||
return: {success: boolean, error?: string}
|
||||
}
|
||||
[IPCChannel.GET_WINDOW_ID]: {
|
||||
params: []
|
||||
return: number
|
||||
}
|
||||
|
||||
// 异步通信
|
||||
[IPCChannel.FILE_READ]: {
|
||||
params: [filePath: string]
|
||||
return: Promise<{success: boolean, data?: string, error?: string}>
|
||||
}
|
||||
[IPCChannel.FILE_WRITE]: {
|
||||
params: [filePath: string, content: string]
|
||||
return: Promise<{success: boolean, error?: string}>
|
||||
}
|
||||
|
||||
// 事件通信
|
||||
[IPCChannel.TIME_UPDATE]: {
|
||||
params: [time: string]
|
||||
return: void
|
||||
}
|
||||
[IPCChannel.CUSTOM_EVENT]: {
|
||||
params: [message: string]
|
||||
return: void
|
||||
}
|
||||
}
|
||||
|
||||
// 定义IPC API 接口
|
||||
export interface IPCAPI {
|
||||
invoke<T extends keyof IPCTypings>(channel: T, ...args: IPCTypings[T]['params']): IPCTypings[T]['return'],
|
||||
invokeAsync<T extends keyof IPCTypings>(channel: T, ...args: IPCTypings[T]['params']): IPCTypings[T]['return'],
|
||||
on<T extends keyof IPCTypings>(channel: T, callback: (...args: IPCTypings[T]['params']) => void): () => void
|
||||
send<T extends keyof IPCTypings>(channel: T, ...args: IPCTypings[T]['params']): void,
|
||||
getCurrentWindowId(): number
|
||||
}
|
||||
Reference in New Issue
Block a user