Skip to content

Latest commit

 

History

History

utils

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

@electron-toolkit/utils

Utils for Electron main process.


Install

npm i @electron-toolkit/utils

APIs

is

  • dev

    • Type: boolean, true when app.isPackaged is false

platform

  • isWindows

    • Type: boolean, true when process.platform is win32
  • isMacOS

    • Type: boolean, true when process.platform is darwin
  • isLinux

    • Type: boolean, true when process.platform is linux

electronApp

  • setAppUserModelId

  • setAutoLaunch

    • Type: (auto: boolean) => boolean

    • Platform: darwin,win32

      Set the app automatically open at login or not

  • skipProxy

    • Type: () => Promise

    • Kind: async, sequential

      Skip proxy for Electron app

optimizer

  • watchWindowShortcuts

    • Type: (window: BrowserWindow, shortcutOptions?: shortcutOptions) => void

      Default open or close DevTools by F12 in development and ignore CommandOrControl + R in production. Furthermore, you can use shortcutOptions to control more shortcuts.

      Example:

      import { app } from 'electron'
      import { optimizer } from '@electron-toolkit/utils'
      
      app.whenReady().then(() => {
        app.on('browser-window-created', (_, window) => {
          optimizer.watchWindowShortcuts(window)
        })
      })
  • registerFramelessWindowIpc

    • Type: () => void

      If use a frameless window which hide the system's native window controls, we may need to create custom window controls in HTML.

      The frameless window ipc allow the renderer process to control the browser window.

      The ipc channel named win:invoke.

      Example:

      // main.js
      import { app } from 'electron'
      import { optimizer } from '@electron-toolkit/utils'
      
      app.whenReady().then(() => {
        optimizer.registerFramelessWindowIpc()
      })
      // renderer.js or preload.js
      ipcRenderer.send('win:invoke', 'show')
      ipcRenderer.send('win:invoke', 'showInactive')
      ipcRenderer.send('win:invoke', 'min')
      ipcRenderer.send('win:invoke', 'max')
      ipcRenderer.send('win:invoke', 'close')