refactor: remove .bridge
This commit is contained in:
parent
38f0a11824
commit
e6b82ec838
|
@ -1,5 +1,4 @@
|
|||
import fs from 'fs'
|
||||
import path from 'path'
|
||||
import { contextBridge, ipcRenderer } from 'electron'
|
||||
import { domReady } from './utils'
|
||||
import { useLoading } from './loading'
|
||||
|
@ -13,16 +12,10 @@ const { appendLoading, removeLoading } = useLoading()
|
|||
appendLoading()
|
||||
})();
|
||||
|
||||
// ---------------------------------------------------
|
||||
|
||||
contextBridge.exposeInMainWorld('bridge', {
|
||||
__dirname,
|
||||
__filename,
|
||||
fs,
|
||||
path,
|
||||
ipcRenderer: withPrototype(ipcRenderer),
|
||||
removeLoading,
|
||||
})
|
||||
// --------- Expose some API to Renderer process. ---------
|
||||
contextBridge.exposeInMainWorld('fs', fs)
|
||||
contextBridge.exposeInMainWorld('removeLoading', removeLoading)
|
||||
contextBridge.exposeInMainWorld('ipcRenderer', withPrototype(ipcRenderer))
|
||||
|
||||
// `exposeInMainWorld` can not detect `prototype` attribute and methods, manually patch it.
|
||||
function withPrototype(obj: Record<string, any>) {
|
||||
|
|
|
@ -1,16 +1,11 @@
|
|||
|
||||
export {}
|
||||
export { }
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
/** Expose some Api through preload script */
|
||||
bridge: {
|
||||
__dirname: string
|
||||
__filename: string
|
||||
fs: typeof import('fs')
|
||||
path: typeof import('path')
|
||||
ipcRenderer: import('electron').IpcRenderer
|
||||
removeLoading: () => void
|
||||
}
|
||||
// Expose some Api through preload script
|
||||
fs: typeof import('fs')
|
||||
ipcRenderer: import('electron').IpcRenderer
|
||||
removeLoading: () => void
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,16 +10,13 @@ ReactDOM.render(
|
|||
<App />
|
||||
</React.StrictMode>,
|
||||
document.getElementById('root'),
|
||||
() => {
|
||||
window.bridge.removeLoading()
|
||||
},
|
||||
window.removeLoading,
|
||||
)
|
||||
|
||||
// -----------------------------------------------------------
|
||||
|
||||
console.log('contextBridge ->', window.bridge)
|
||||
console.log('fs', window.fs)
|
||||
console.log('ipcRenderer', window.ipcRenderer)
|
||||
|
||||
// Use ipcRenderer.on
|
||||
window.bridge.ipcRenderer.on('main-process-message', (_event, ...args) => {
|
||||
window.ipcRenderer.on('main-process-message', (_event, ...args) => {
|
||||
console.log('[Receive Main-process message]:', ...args)
|
||||
})
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// Use 'electron-store'
|
||||
const store = {
|
||||
async get(key: string) {
|
||||
const { invoke } = window.bridge.ipcRenderer
|
||||
const { invoke } = window.ipcRenderer
|
||||
let value = await invoke('electron-store', 'get', key)
|
||||
try {
|
||||
value = JSON.parse(value)
|
||||
|
@ -10,7 +10,7 @@ const store = {
|
|||
}
|
||||
},
|
||||
async set(key: string, value: any) {
|
||||
const { invoke } = window.bridge.ipcRenderer
|
||||
const { invoke } = window.ipcRenderer
|
||||
let val = value
|
||||
try {
|
||||
if (value && typeof value === 'object') {
|
||||
|
@ -25,7 +25,7 @@ const store = {
|
|||
(async () => {
|
||||
await store.set('Date.now', Date.now())
|
||||
console.log('electron-store ->', 'Date.now:', await store.get('Date.now'))
|
||||
console.log('electron-store ->', 'path:', await window.bridge.ipcRenderer.invoke('electron-store', 'path'))
|
||||
console.log('electron-store ->', 'path:', await window.ipcRenderer.invoke('electron-store', 'path'))
|
||||
})();
|
||||
|
||||
export { }
|
||||
|
|
Loading…
Reference in New Issue