mirror of https://github.com/electron/electron
18 lines
532 B
TypeScript
18 lines
532 B
TypeScript
let ipc: NodeJS.IpcRendererImpl | undefined;
|
|
|
|
/**
|
|
* Get IPCRenderer implementation for the current process.
|
|
*/
|
|
export function getIPCRenderer () {
|
|
if (ipc) return ipc;
|
|
const ipcBinding = process._linkedBinding('electron_renderer_ipc');
|
|
switch (process.type) {
|
|
case 'renderer':
|
|
return (ipc = ipcBinding.createForRenderFrame());
|
|
case 'service-worker':
|
|
return (ipc = ipcBinding.createForServiceWorker());
|
|
default:
|
|
throw new Error(`Cannot create IPCRenderer for '${process.type}' process`);
|
|
}
|
|
};
|