1.0.8 • Published 4 months ago

@kyohxt/electron-toolkit-utils v1.0.8

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

@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

devTools

  • install

    • Type: (extensionId: ChromeExtension, options?: ChromeExtensionOptions): Promise

    • Kind: async, sequential

      Example:

      // main.js
      import { app } from 'electron'
      import { devTools } from '@electron-toolkit/utils'
      
      app.whenReady().then(() => {
        devTools.install('REACT_DEVELOPER_TOOLS', { allowFileAccess: true })
      })

      Note: extensionId see ChromeExtension

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

ipcHelper

The Ipc helper can make you easy to manage your main Ipc.

  • handle

    • Type: (channel: string, listener: (event: IpcMainInvokeEvent, ...args: any[]) => Promise | any): void

    • Kind: async, sequential

  • on

    • Type: () => (channel: string, listener: (event: IpcMainEvent, ...args: any[]) => void): this
  • removeAllListeners

    • Type: (): this

      Remove all register ipc listeners

  • removeAllHandlers

    • Type: (): void

      Remove all register ipc handlers

  • removeListeners

    • Type: (channels: string[]): this

      Remove ipc listeners

  • removeHandlers

    • Type: (channels: string[]): void

      Remove ipc handlers

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

4 months ago

1.0.7

4 months ago

1.0.6

5 months ago

1.0.5

5 months ago

1.0.3

5 months ago

1.0.2

5 months ago