Allow the renderer to get information about the version of Electron, Chrome and NodeJS used
MIT License
Allow the renderer to get information about the version of Electron, Chrome and NodeJS
NPM link: @el3um4s/ipc-for-electron-system-info
Use @el3um4s/ipc-for-electron and @el3um4s/renderer-for-electron-system-info to allow communication between Electron and a web page
To use the package in a project:
npm i @el3um4s/ipc-for-electron @el3um4s/ipc-for-electron-system-info @el3um4s/renderer-for-electron-system-info
Then the preload.ts
file:
import { generateContextBridge } from "@el3um4s/ipc-for-electron";
import systemInfo from "@el3um4s/ipc-for-electron-system-info";
const listAPI = [systemInfo];
generateContextBridge(listAPI);
In the renderer file:
import systemInfo from "@el3um4s/renderer-for-electron-system-info";
let isWindows = false;
systemInfo.requestIsWindows({
callback: (data) => {
isWindows = data.isWindows;
},
});
let app: string = "-";
let chrome: string = "-";
let node: string = "-";
let electron: string = "-";
systemInfo.requestSystemInfo({
callback: (data) => {
chrome = data.chrome;
node = data.node;
electron = data.electron;
app = data.app;
},
});
In the renderer you can use:
let isWindows = false;
globalThis.api.systemInfo.send("requestIsWindows", null);
globalThis.api.systemInfo.receive("getIsWindows", (data) => {
isWindows = data.isWindows;
});
let chrome: string = "-";
let node: string = "-";
let electron: string = "-";
let app: string = "-";
globalThis.api.systemInfo.send("requestSystemInfo", null);
globalThis.api.systemInfo.receive("getSystemInfo", (data) => {
chrome = data.chrome;
node = data.node;
electron = data.electron;
app = data.app;
});
requestSystemInfo
- Request the version of Electron, Chrome and NodeJS. The response is sent to the getSystemInfo
channelrequestIsWindows
- Request if the OS is Windows. The response is sent to the getIsWindows
channelrequestSystemInfo = async (options: { callback?: (arg0: SystemInfo) => void; apiKey?: string; }): Promise<SystemInfo>
example:
import systemInfo from "@el3um4s/renderer-for-electron-system-info";
let app: string = "-";
let chrome: string = "-";
let node: string = "-";
let electron: string = "-";
systemInfo.requestSystemInfo({
apiKey: "ipc",
callback: (data) => {
console.log("DATA OK", data);
chrome = data.chrome;
node = data.node;
electron = data.electron;
app = data.app;
},
});
requestIsWindows = async (options: { callback?: (arg0: IsWindows) => void; apiKey?: string; }): Promise<IsWindows>
example:
import systemInfo from "@el3um4s/renderer-for-electron-system-info";
let isWindows = false;
systemInfo.requestIsWindows({
apiKey: "ipc",
callback: (data) => {
console.log("DATA OK", data);
isWindows = data.isWindows;
},
});
on.getSystemInfo = async (options: { callback?: (arg0: SystemInfo) => void; apiKey?: string; }): Promise<SystemInfo>
example:
import systemInfo from "@el3um4s/renderer-for-electron-system-info";
let app: string = "-";
let chrome: string = "-";
let node: string = "-";
let electron: string = "-";
systemInfo.requestSystemInfo();
systemInfo.on.getSystemInfo({
apiKey: "ipc",
callback: (data) => {
console.log("DATA OK", data);
chrome = data.chrome;
node = data.node;
electron = data.electron;
app = data.app;
},
});
on.getIsWindows = async (options: { callback?: (arg0: IsWindows) => void; apiKey?: string; }): Promise<IsWindows>
example:
import systemInfo from "@el3um4s/renderer-for-electron-system-info";
let isWindows = false;
systemInfo.requestIsWindows();
systemInfo.on.getIsWindows({
apiKey: "ipc",
callback: (data) => {
console.log("DATA OK", data);
isWindows = data.isWindows;
},
});
SystemInfo
interface SystemInfo {
chrome: string;
node: string;
electron: string;
app: string;
}
IsWindows
interface IsWindows {
isWindows: boolean;
}
DefaultApiKey
type DefaultApiKey = "ipc";