From 9c7086074eb0e883e8af5a7b1ba8b59f3b3de1f9 Mon Sep 17 00:00:00 2001 From: Milan Burda Date: Mon, 18 Sep 2023 18:58:20 +0200 Subject: [PATCH] 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 * fix ipcRenderer.removeListener * update ts-smoke --------- Co-authored-by: David Sanders --- docs/api/ipc-renderer.md | 19 +++++++++++++++++++ spec/ts-smoke/electron/main.ts | 10 +++++----- spec/ts-smoke/electron/renderer.ts | 12 ++++++++++++ yarn.lock | 6 +++--- 4 files changed, 39 insertions(+), 8 deletions(-) diff --git a/docs/api/ipc-renderer.md b/docs/api/ipc-renderer.md index 6c229a76126f..cf9b219c8d3b 100644 --- a/docs/api/ipc-renderer.md +++ b/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 diff --git a/spec/ts-smoke/electron/main.ts b/spec/ts-smoke/electron/main.ts index 228ee8199c5b..53699804ce90 100644 --- a/spec/ts-smoke/electron/main.ts +++ b/spec/ts-smoke/electron/main.ts @@ -562,6 +562,11 @@ globalShortcut.unregisterAll(); // ipcMain // https://github.com/electron/electron/blob/main/docs/api/ipc-main.md +ipcMain.handle('ping-pong', (event, arg: any) => { + console.log(arg); // prints "ping" + return 'pong'; +}); + ipcMain.on('asynchronous-message', (event, arg: any) => { console.log(arg); // prints "ping" event.sender.send('asynchronous-reply', 'pong'); @@ -572,11 +577,6 @@ ipcMain.on('synchronous-message', (event, arg: any) => { event.returnValue = 'pong'; }); -ipcMain.on('synchronous-message', (event, arg: any) => { - console.log(arg); // prints "ping" - event.returnValue = 'pong'; -}); - const winWindows = new BrowserWindow({ width: 800, height: 600, diff --git a/spec/ts-smoke/electron/renderer.ts b/spec/ts-smoke/electron/renderer.ts index 331594179b88..f7dae4a0460b 100644 --- a/spec/ts-smoke/electron/renderer.ts +++ b/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!'); diff --git a/yarn.lock b/yarn.lock index edeee9d5666e..16ea82b91b4a 100644 --- a/yarn.lock +++ b/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"