chore: optimize code
This commit is contained in:
		
							parent
							
								
									b5a442d3b0
								
							
						
					
					
						commit
						1509250f92
					
				| 
						 | 
				
			
			@ -31,9 +31,9 @@ async function mainWin() {
 | 
			
		|||
  }
 | 
			
		||||
 | 
			
		||||
  // Test active push message to Renderer-process.
 | 
			
		||||
  setInterval(() => {
 | 
			
		||||
  win.webContents.on('did-finish-load', () => {
 | 
			
		||||
    win?.webContents.send('main-process-message', (new Date).toLocaleString())
 | 
			
		||||
  }, 999)
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
app.whenReady().then(mainWin)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,17 +26,18 @@ contextBridge.exposeInMainWorld('bridge', {
 | 
			
		|||
 | 
			
		||||
// `exposeInMainWorld` can not detect `prototype` attribute and methods, manually patch it.
 | 
			
		||||
function withPrototype(obj: Record<string, any>) {
 | 
			
		||||
  const protos = Object.entries(Object.getPrototypeOf(obj))
 | 
			
		||||
  for (const [key, value] of protos) {
 | 
			
		||||
    if (!Object.prototype.hasOwnProperty.call(obj, key)) {
 | 
			
		||||
      if (typeof value === 'function') {
 | 
			
		||||
        // Some native API not work Renderer-process, like `NodeJS.EventEmitter['on']`. Wrap a function patch it.
 | 
			
		||||
        obj[key] = function (...args: any) {
 | 
			
		||||
          return value.call(obj, ...args)
 | 
			
		||||
        }
 | 
			
		||||
      } else {
 | 
			
		||||
        Object.assign(obj, { [key]: value })
 | 
			
		||||
  const protos = Object.getPrototypeOf(obj)
 | 
			
		||||
 | 
			
		||||
  for (const [key, value] of Object.entries(protos)) {
 | 
			
		||||
    if (Object.prototype.hasOwnProperty.call(obj, key)) continue
 | 
			
		||||
 | 
			
		||||
    if (typeof value === 'function') {
 | 
			
		||||
      // Some native API not work in Renderer-process, like `NodeJS.EventEmitter['on']`. Wrap a function patch it.
 | 
			
		||||
      obj[key] = function (...args: any) {
 | 
			
		||||
        return value.call(obj, ...args)
 | 
			
		||||
      }
 | 
			
		||||
    } else {
 | 
			
		||||
      obj[key] = value
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return obj
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue