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')