Skip to content

Electrom is a resource management solution for Electron applications, which is convenient for performance management and friendly debugging of multiple windows.

zlyi/electrom

 
 

Repository files navigation

electrom

NPM version CI Test coverage node version npm download

Electrom is a resource management solution for Electron applications, which is convenient for performance management and friendly debugging of multiple windows.

Contributors


xudafeng


yantze


sriting


snapre

This project follows the git-contributor spec, auto updated at Tue May 03 2022 11:32:04 GMT+0800.

Installment

npm i electrom --save-dev

Usage

npm run dev

APIs

// main process: import electrom
import { EVENT_DATA_CHANNEL_NAME, Monitor } from 'electrom';

const monitor = new Monitor();
mainWindow.webContents.on('dom-ready', () => {
  monitor.on(EVENT_DATA_CHANNEL_NAME, (data: any) => {
    mainWindow.webContents.send(EVENT_DATA_CHANNEL_NAME, data);
  });
  monitor.bindEventToWindow(mainWindow);
  monitor.start();
});
// renderer process: import electrom renderer
import { StatusBoard, PerfBoard, EVENT_DATA_CHANNEL_NAME, EVENT_ACTION_CHANNEL_NAME } from 'electrom/renderer';

const { ipcRenderer, shell } = window.electron;

<StatusBoard
  eventDataChannelName={EVENT_DATA_CHANNEL_NAME}
  eventActionChannelName={EVENT_ACTION_CHANNEL_NAME}
  ipcRenderer={ipcRenderer}
  shell={shell}
/>

preload file

'use strict';

const { contextBridge, ipcRenderer } = require('electron');

contextBridge.exposeInMainWorld(
  'electron',
  {
    ipcRenderer: {
      send: (channel, ...args) => ipcRenderer.send(channel, ...args),
      on: (channel, listener) => ipcRenderer.on(channel, listener),
      removeListener: (channel, listener) => ipcRenderer.removeListener(channel, listener),
    },
  }
)

Please set this script's path as webPreferences.preload of BrowserWindow.

Status Board

import React from 'react';
import StatusBoard from 'electrom/src/StatusBoard';
import { ipcRenderer, shell } from 'electron';

function() {
  return (
    <StatusBoard
      eventDataChannelName="electrom:monitor:data"
      eventActionChannelName="electrom:monitor:action"
      ipcRenderer={ipcRenderer}
      shell={shell}
    />
  );
}

Perf Board

import React from 'react';
import PerfBoard from 'electrom/src/PerfBoard';

function() {
  return (
    <PerfBoard />
  );
}

TODO

  • heapdump

License

The MIT License (MIT)

About

Electrom is a resource management solution for Electron applications, which is convenient for performance management and friendly debugging of multiple windows.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 63.5%
  • JavaScript 16.4%
  • HTML 12.1%
  • Less 4.7%
  • Shell 2.9%
  • CSS 0.4%