Electron DevTools Extension to track IPC events
npm install @hitarth-gg/devtron
Devtronnpm install to install dependencies
npm link to link the package globally
npm run build to build the project
npm link @hitarth-gg/devtron to link the Devtron package
main.js (or other relevant file) add the following code to load Devtron:
js
// main.js
const { devtron } = require('@hitarth-gg/devtron');
// or import { devtron } from '@hitarth-gg/devtron'
devtron.install(); // call this function at the top of your file
`
- Devtron can be conditionally installed in development mode to avoid impacting production builds. Here's an example:
`js
const { app } = require('electron');
const isDev = !app.isPackaged;
async function installDevtron() {
const { devtron } = await import('@hitarth-gg/devtron');
await devtron.install();
}
if (isDev) {
installDevtron().catch((error) => {
console.error('Failed to install Devtron:', error);
});
}
`
Devtron API
$3
Installs Devtron into the Electron app. Refer to Configuring an Electron App to use Devtron for installation instructions.
#### Options
| Option | Type | Default | Description |
| ---------- | -------------------------------------------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| logLevel | 'debug' \| 'info' \| 'warn' \| 'error' \| 'none' | 'debug' | Sets the minimum log level for the logger. Messages below this level are ignored.
Levels:
• debug — logs: debug, info, warn, error
• info — logs: info, warn, error
• warn — logs: warn, error
• error — logs: error only
• none — disables all logging |
Examples:
`js
// Only 'warn' and 'error' logs will appear in the terminal
await devtron.install({ logLevel: 'warn' });
`
$3
Returns a promise that resolves to the array of IPC events recorded by the Devtron service worker since installation.
- If the Clear all events button in the Devtron UI is clicked, this array will be cleared.
- If the array size exceeds 20,000 events, it will be truncated to the most recent 20,000 events.
- If called before installation or before the Devtron service worker is ready, an empty array will be returned.
Here's a usage example that keeps logging IPC events every 2 seconds:
`js
// main.js
import { devtron } from '@hitarth-gg/devtron';
// Ensure Devtron is installed before calling getEvents()
devtron.install();
setInterval(async () => {
const ipcEvents = await devtron.getEvents();
console.log('IPC Events:', ipcEvents);
}, 2000);
`
Requirements and Limitations
- Electron version must be 36.0.0 or higher.
- For Devtron to work with newly created sessions, you must call devtron.install() before they are created.
- Some IPC events sent immediately after the Electron app starts may not be captured by Devtron, even if devtron.install() is called early, because Devtron may take a short time to initialize after starting the app.
- ipcRenderer.once will be tracked as two separate events: ipcRenderer.on and ipcRenderer.removeListener`.