Releases: Sovea/electron-ipc-service
Release list
v0.1.0
Highlights
@sovea/electron-ipc-service v0.1.0 is the first stable release of a type-safe request-response IPC layer for Electron applications.
It provides typed communication between renderer and main processes, with optional routing between renderer processes through the main process.
Features
Typed main and renderer communication
Define IPC channels as TypeScript function schemas and infer:
- channel names
- request parameters
- synchronous and asynchronous return values
- handler and listener signatures
Use send() for one-way messages and invoke() for request-response calls. The main process can register handlers with on(), once(), handle(), and handleOnce().
Renderer-to-renderer routing
Route messages and requests between renderer processes with:
sendTo()for one-way messagesinvokeTo()for request-response callshandle()andhandleOnce()for renderer request handlersreceive()andreceiveOnce()for renderer messages
Targets can be selected through application-defined windowParams or a direct Electron webContentsId.
When windowParams are used, TypeScript infers the target renderer schema, including its accepted payload and return type.
Predictable request lifecycle
- configurable request timeouts
- propagated handler errors
- correct association of concurrent and out-of-order responses
- unsubscribe functions for handlers and listeners
- one-time handlers and listeners
- cleanup of internal routing handlers through
IpcMainService.destroy() - rejection of pending work when a service is destroyed
Invalid or unavailable renderer targets are rejected for requests and safely dropped with a warning for one-way messages.
Changelog
- Added type-safe one-way and request-response IPC between renderer and main processes.
- Added typed renderer-to-renderer routing through
sendTo()andinvokeTo(). - Added target-aware schema inference, configurable timeouts, and unsubscribe-based lifecycle management.
- Improved concurrent request handling, error propagation, service destruction, and renderer target validation.
- Fixed renderer payload delivery, handler cleanup, and main-process event types.
- Finalized the native ESM public API with dedicated main and
/rendererentrypoints. - Set the minimum supported Electron version to
28.0.0.