From 00ae01dc3f052eb5c68823c410a10b868b20bd84 Mon Sep 17 00:00:00 2001 From: leejooy96 Date: Wed, 8 Feb 2023 16:20:39 +0900 Subject: [PATCH] preload: fix handle preload data arguments --- src/preload/index.ts | 17 ++++++++++++++--- src/renderer/screens/MainScreen.vue | 2 +- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/preload/index.ts b/src/preload/index.ts index 1754e71..46b96bf 100644 --- a/src/preload/index.ts +++ b/src/preload/index.ts @@ -5,14 +5,25 @@ const mainAvailChannels = ['msgRequestGetVersion', 'msgOpenExternalLink'] const rendererAvailChannels = ['msgReceivedVersion'] contextBridge.exposeInMainWorld('mainApi', { - send: (channel, data) => { + send: (channel, ...data) => { if (mainAvailChannels.includes(channel)) { - ipcRenderer.send(channel, data) + ipcRenderer.send.apply(null, [channel, ...data]) + } else { + throw new Error(`Send failed: Unknown ipc channel name: ${channel}`) } }, receive: (channel, cbFunc) => { if (rendererAvailChannels.includes(channel)) { - ipcRenderer.on(channel, (event, ...args) => cbFunc(...args)) + ipcRenderer.on(channel, (event, ...args) => cbFunc(event, ...args)) + } else { + throw new Error(`Receive failed: Unknown ipc channel name: ${channel}`) } + }, + invoke: async (channel, ...data) => { + if (mainAvailChannels.includes(channel)) { + const result = await ipcRenderer.invoke.apply(null, [channel, ...data]) + return result + } + throw new Error(`Invoke failed: Unknown ipc channel name: ${channel}`) } }) diff --git a/src/renderer/screens/MainScreen.vue b/src/renderer/screens/MainScreen.vue index f251871..30baa99 100644 --- a/src/renderer/screens/MainScreen.vue +++ b/src/renderer/screens/MainScreen.vue @@ -17,7 +17,7 @@ onMounted((): void => { languages.value = availableLocales // Get application version from package.json version string (Using IPC communication) - window.mainApi.receive('msgReceivedVersion', (version: string) => { + window.mainApi.receive('msgReceivedVersion', (event: Event, version: string) => { appVersion.value = version }) window.mainApi.send('msgRequestGetVersion')