electron-nopreload
v0.1.0
Published
Expose Electron Renderer Process APIs to Main World with security hooks
Readme
electron-nopreload
Expose Electron Renderer Process APIs to Main World with security hooks.
Overview
The electron-nopreload package provides a way to expose Electron Renderer Process APIs to the Main World without writing custom preload scripts. It includes a built-in preload script that safely exposes APIs with security hooks for validation.
Installation
npm install electron-nopreloadUsage
Main Process
Initialize electron-nopreload in your Main Process:
import { app } from 'electron';
import { initNoPreload } from 'electron-nopreload/main';
await initNoPreload({
hooks: {
'webUtils.getPathForFile:after': (event, filePath) => {
// Validate the file path
console.log('File path accessed:', filePath);
return filePath;
}
}
});Renderer Process
Use the provided API wrappers in your Renderer Process:
import { webUtils } from 'electron-nopreload/renderer';
// Get file path from a File object
const file = await showOpenFilePicker();
const filePath = await webUtils.getPathForFile(file[0]);
console.log('File path:', filePath);Supported APIs
Currently supported Electron Renderer Process APIs:
webUtils.getPathForFile(file: File): Promise<string>
Hook Points
Each API supports the following hook phases:
- before: Called before the API execution (validation, logging)
- after: Called after the API execution (result transformation, validation)
Hook Handler Types
Hook handlers receive different arguments based on the phase:
// After hook for webUtils.getPathForFile
(event: IpcMainEvent, filePath: string) => Promise<string> | stringRelated
- electron-objproxy - Object Proxying between Main and Renderer Processes
License
MIT
