-
-
Notifications
You must be signed in to change notification settings - Fork 60
/
index.d.ts
161 lines (130 loc) · 4.59 KB
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
import {BrowserWindow, IpcMain, IpcRenderer} from 'electron';
export interface MainProcessIpc extends IpcMain {
/**
Send a message to the given window.
In the renderer process, use `ipcRenderer.answerMain` to reply to this message.
@param browserWindow - The window to send the message to.
@param channel - The channel to send the message on.
@param data - The data to send to the receiver.
@returns - The reply from the renderer process.
@example
```
import {BrowserWindow} from 'electron';
import {ipcMain as ipc} from 'electron-better-ipc';
const browserWindow = BrowserWindow.getFocusedWindow();
const emoji = await ipc.callRenderer(browserWindow!, 'get-emoji', 'unicorn');
console.log(emoji);
//=> '🦄'
```
*/
callRenderer<DataType, ReturnType = unknown>(
browserWindow: BrowserWindow,
channel: string,
data?: DataType
): Promise<ReturnType>;
/**
Send a message to the focused window, as determined by `electron.BrowserWindow.getFocusedWindow`.
In the renderer process, use `ipcRenderer.answerMain` to reply to this message.
@param channel - The channel to send the message on.
@param data - The data to send to the receiver.
@returns - The reply from the renderer process.
@example
```
import {ipcMain as ipc} from 'electron-better-ipc';
const emoji = await ipc.callFocusedRenderer('get-emoji', 'unicorn');
console.log(emoji);
//=> '🦄'
```
*/
callFocusedRenderer<DataType, ReturnType = unknown>(
channel: string,
data?: DataType
): Promise<ReturnType>;
/**
This method listens for a message from `ipcRenderer.callMain` defined in a renderer process and replies back.
@param channel - The channel to send the message on.
@param callback - The return value is sent back to the `ipcRenderer.callMain` in the renderer process.
@returns A function, that when called, removes the listener.
@example
```
import {ipcMain as ipc} from 'electron-better-ipc';
ipc.answerRenderer('get-emoji', async emojiName => {
const emoji = await getEmoji(emojiName);
return emoji;
});
```
*/
answerRenderer<DataType, ReturnType = unknown>(
channel: string,
callback: (
data: DataType,
browserWindow: BrowserWindow
) => ReturnType | PromiseLike<ReturnType>
): () => void;
/**
This method listens for a message from `ipcRenderer.callMain` defined in the given BrowserWindow's renderer process and replies back.
@param browserWindow - The window for which to expect the message.
@param channel - The channel to send the message on.
@param callback - The return value is sent back to the `ipcRenderer.callMain` in the renderer process.
@returns A function, that when called, removes the listener.
@example
```
import {ipcMain as ipc} from 'electron-better-ipc';
ipc.answerRenderer('get-emoji', async emojiName => {
const emoji = await getEmoji(emojiName);
return emoji;
});
```
*/
answerRenderer<DataType, ReturnType = unknown>(
browserWindow: BrowserWindow,
channel: string,
callback: (
data: DataType,
browserWindow: BrowserWindow
) => ReturnType | PromiseLike<ReturnType>
): () => void;
/**
Send a message to all renderer processes (windows).
@param channel - The channel to send the message on.
@param data - The data to send to the receiver.
*/
sendToRenderers<DataType>(channel: string, data?: DataType): void;
}
export interface RendererProcessIpc extends IpcRenderer {
/**
Send a message to the main process.
In the main process, use `ipcMain.answerRenderer` to reply to this message.
@param channel - The channel to send the message on.
@param data - The data to send to the receiver.
@returns The reply from the main process.
@example
```
import {ipcRenderer as ipc} from 'electron-better-ipc';
const emoji = await ipc.callMain('get-emoji', 'unicorn');
console.log(emoji);
//=> '🦄'
```
*/
callMain<DataType, ReturnType = unknown>(channel: string, data?: DataType): Promise<ReturnType>;
/**
This method listens for a message from `ipcMain.callRenderer` defined in the main process and replies back.
@param channel - The channel to send the message on.
@param callback - The return value is sent back to the `ipcMain.callRenderer` in the main process.
@returns A function, that when called, removes the listener.
@example
```
import {ipcRenderer as ipc} from 'electron-better-ipc';
ipc.answerMain('get-emoji', async emojiName => {
const emoji = await getEmoji(emojiName);
return emoji;
});
```
*/
answerMain<DataType, ReturnType = unknown>(
channel: string,
callback: (data: DataType) => ReturnType | PromiseLike<ReturnType>
): () => void;
}
export const ipcMain: MainProcessIpc;
export const ipcRenderer: RendererProcessIpc;