@kyohxt/electron-toolkit-preload
Version:
Toolkit for electron preload scripts.
94 lines (89 loc) • 2.73 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var electron = require('electron');
const electronAPI = {
ipcRenderer: {
send(channel, ...args) {
electron.ipcRenderer.send(channel, ...args);
},
sendTo(webContentsId, channel, ...args) {
electron.ipcRenderer.sendTo(webContentsId, channel, ...args);
},
sendSync(channel, ...args) {
return electron.ipcRenderer.sendSync(channel, ...args);
},
sendToHost(channel, ...args) {
electron.ipcRenderer.sendToHost(channel, ...args);
},
postMessage(channel, message, transfer) {
if (!process.contextIsolated) {
electron.ipcRenderer.postMessage(channel, message, transfer);
}
},
invoke(channel, ...args) {
return electron.ipcRenderer.invoke(channel, ...args);
},
on(channel, listener) {
electron.ipcRenderer.on(channel, listener);
return () => {
electron.ipcRenderer.removeListener(channel, listener);
};
},
once(channel, listener) {
electron.ipcRenderer.once(channel, listener);
},
removeListener(channel, listener) {
electron.ipcRenderer.removeListener(channel, listener);
return this;
},
removeAllListeners(channel) {
electron.ipcRenderer.removeAllListeners(channel);
}
},
webFrame: {
insertCSS(css) {
return electron.webFrame.insertCSS(css);
},
setZoomFactor(factor) {
if (typeof factor === 'number' && factor > 0) {
electron.webFrame.setZoomFactor(factor);
}
},
setZoomLevel(level) {
if (typeof level === 'number') {
electron.webFrame.setZoomLevel(level);
}
}
},
process: {
get platform() {
return process.platform;
},
get versions() {
return process.versions;
},
get env() {
return { ...process.env };
}
}
};
/**
* Expose Electron APIs from your preload script, the API
* will be accessible from the website on `window.electron`.
*/
function exposeElectronAPI() {
if (process.contextIsolated) {
try {
electron.contextBridge.exposeInMainWorld('electron', electronAPI);
}
catch (error) {
console.error(error);
}
}
else {
// @ts-ignore (need dts)
window.electron = electronAPI;
}
}
exports.electronAPI = electronAPI;
exports.exposeElectronAPI = exposeElectronAPI;