Browse Source

docs: add missing `ipcRenderer.off()` / `ipcRenderer.addListener()` aliases (#39816)

* docs: add missing `ipcRenderer.off()` / `ipcRenderer.addListener()` aliases

* Update docs/api/ipc-renderer.md

Co-authored-by: David Sanders <[email protected]>

* fix ipcRenderer.removeListener

* update ts-smoke

---------

Co-authored-by: David Sanders <[email protected]>
Milan Burda 1 year ago
parent
commit
9c7086074e
4 changed files with 38 additions and 7 deletions
  1. 19 0
      docs/api/ipc-renderer.md
  2. 4 4
      spec/ts-smoke/electron/main.ts
  3. 12 0
      spec/ts-smoke/electron/renderer.ts
  4. 3 3
      yarn.lock

+ 19 - 0
docs/api/ipc-renderer.md

@@ -32,6 +32,15 @@ The `ipcRenderer` module has the following method to listen for events and send
 Listens to `channel`, when a new message arrives `listener` would be called with
 `listener(event, args...)`.
 
+### `ipcRenderer.off(channel, listener)`
+
+* `channel` string
+* `listener` Function
+  * `event` [IpcRendererEvent][ipc-renderer-event]
+  * `...args` any[]
+
+Alias for [`ipcRenderer.removeListener`](#ipcrendererremovelistenerchannel-listener).
+
 ### `ipcRenderer.once(channel, listener)`
 
 * `channel` string
@@ -42,10 +51,20 @@ Listens to `channel`, when a new message arrives `listener` would be called with
 Adds a one time `listener` function for the event. This `listener` is invoked
 only the next time a message is sent to `channel`, after which it is removed.
 
+### `ipcRenderer.addListener(channel, listener)`
+
+* `channel` string
+* `listener` Function
+  * `event` [IpcRendererEvent][ipc-renderer-event]
+  * `...args` any[]
+
+Alias for [`ipcRenderer.on`](#ipcrendereronchannel-listener).
+
 ### `ipcRenderer.removeListener(channel, listener)`
 
 * `channel` string
 * `listener` Function
+  * `event` [IpcRendererEvent][ipc-renderer-event]
   * `...args` any[]
 
 Removes the specified `listener` from the listener array for the specified

+ 4 - 4
spec/ts-smoke/electron/main.ts

@@ -562,14 +562,14 @@ globalShortcut.unregisterAll();
 // ipcMain
 // https://github.com/electron/electron/blob/main/docs/api/ipc-main.md
 
-ipcMain.on('asynchronous-message', (event, arg: any) => {
+ipcMain.handle('ping-pong', (event, arg: any) => {
   console.log(arg); // prints "ping"
-  event.sender.send('asynchronous-reply', 'pong');
+  return 'pong';
 });
 
-ipcMain.on('synchronous-message', (event, arg: any) => {
+ipcMain.on('asynchronous-message', (event, arg: any) => {
   console.log(arg); // prints "ping"
-  event.returnValue = 'pong';
+  event.sender.send('asynchronous-reply', 'pong');
 });
 
 ipcMain.on('synchronous-message', (event, arg: any) => {

+ 12 - 0
spec/ts-smoke/electron/renderer.ts

@@ -4,8 +4,20 @@ import { clipboard, crashReporter, shell } from 'electron/common';
 
 // In renderer process (web page).
 // https://github.com/electron/electron/blob/main/docs/api/ipc-renderer.md
+
+(async () => {
+  console.log(await ipcRenderer.invoke('ping-pong')); // prints "pong"
+})();
+
 console.log(ipcRenderer.sendSync('synchronous-message', 'ping')); // prints "pong"
 
+ipcRenderer.on('test', () => {});
+ipcRenderer.off('test', () => {});
+ipcRenderer.once('test', () => {});
+ipcRenderer.addListener('test', () => {});
+ipcRenderer.removeListener('test', () => {});
+ipcRenderer.removeAllListeners('test');
+
 ipcRenderer.on('asynchronous-reply', (event, arg: any) => {
   console.log(arg); // prints "pong"
   event.sender.send('another-message', 'Hello World!');

+ 3 - 3
yarn.lock

@@ -220,9 +220,9 @@
     vscode-uri "^3.0.7"
 
 "@electron/typescript-definitions@^8.14.5":
-  version "8.14.6"
-  resolved "https://registry.yarnpkg.com/@electron/typescript-definitions/-/typescript-definitions-8.14.6.tgz#78ba1fa8314f06255bb9309791b33c9695ac42ef"
-  integrity sha512-HK70Q3nrp6h4cCxb/P65vFixdJ99vABLIG8TpqU21/fmuHdYboL4zcleWaYhXhU2EwduuOPfORFMrUTdBRc+lw==
+  version "8.14.7"
+  resolved "https://registry.yarnpkg.com/@electron/typescript-definitions/-/typescript-definitions-8.14.7.tgz#f8838eac200fa8106ce0a6b7044463b0fd86e9b6"
+  integrity sha512-y1kOB9Ckkd09+KpNDIID6LHO7WP69WoMiogGwNIRtBnEZIeK/aN5uy6plEF1OXYoJVkRKkM/ZSBhhwhk4H1rEA==
   dependencies:
     "@types/node" "^11.13.7"
     chalk "^2.4.2"