{"id":14978546,"url":"https://github.com/el3um4s/renderer-for-electron-system-info","last_synced_at":"2026-01-31T08:03:55.436Z","repository":{"id":57750027,"uuid":"525134399","full_name":"el3um4s/renderer-for-electron-system-info","owner":"el3um4s","description":"Allow the renderer to get information about the version of Electron, Chrome and NodeJS used","archived":false,"fork":false,"pushed_at":"2023-01-09T03:44:59.000Z","size":545,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-08T15:46:38.442Z","etag":null,"topics":["electron","electronjs","inter-process-communication","ipc","maximize","minimize","node","nodejs","npm","restore","ts","typescript","window","window-controls"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/el3um4s.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":["el3um4s"],"patreon":"el3um4s","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://www.paypal.me/el3um4s"]}},"created_at":"2022-08-15T20:47:26.000Z","updated_at":"2022-08-17T13:37:11.000Z","dependencies_parsed_at":"2023-02-08T08:46:20.774Z","dependency_job_id":null,"html_url":"https://github.com/el3um4s/renderer-for-electron-system-info","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":"el3um4s/typescript-npm-package-starter","purl":"pkg:github/el3um4s/renderer-for-electron-system-info","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/el3um4s%2Frenderer-for-electron-system-info","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/el3um4s%2Frenderer-for-electron-system-info/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/el3um4s%2Frenderer-for-electron-system-info/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/el3um4s%2Frenderer-for-electron-system-info/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/el3um4s","download_url":"https://codeload.github.com/el3um4s/renderer-for-electron-system-info/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/el3um4s%2Frenderer-for-electron-system-info/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28934639,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T07:49:44.436Z","status":"ssl_error","status_checked_at":"2026-01-31T07:49:34.274Z","response_time":128,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["electron","electronjs","inter-process-communication","ipc","maximize","minimize","node","nodejs","npm","restore","ts","typescript","window","window-controls"],"created_at":"2024-09-24T13:57:53.060Z","updated_at":"2026-01-31T08:03:55.417Z","avatar_url":"https://github.com/el3um4s.png","language":"TypeScript","funding_links":["https://github.com/sponsors/el3um4s","https://patreon.com/el3um4s","https://www.paypal.me/el3um4s"],"categories":[],"sub_categories":[],"readme":"# RENDERER for Electron: System Info\n\nAllow the renderer to get information about the version of Electron, Chrome and NodeJS\n\nNPM link: [@el3um4s/renderer-for-electron-system-info](https://www.npmjs.com/package/@el3um4s/renderer-for-electron-system-info)\n\nUse [@el3um4s/ipc-for-electron](https://www.npmjs.com/package/@el3um4s/ipc-for-electron) and [@el3um4s/ipc-for-electron-system-info](https://www.npmjs.com/package/@el3um4s/ipc-for-electron-system-info) to allow communication between Electron and a web page\n\n### Install and use the package\n\nTo use the package in a project:\n\n```bash\nnpm i @el3um4s/renderer-for-electron-system-info\n```\n\nOr with Electron:\n\n```bash\nnpm i @el3um4s/renderer-for-electron-system-info @el3um4s/ipc-for-electron-system-info @el3um4s/ipc-for-electron\n```\n\nThen the `preload.ts` file:\n\n```ts\nimport { generateContextBridge } from \"@el3um4s/ipc-for-electron\";\nimport systemInfo from \"@el3um4s/ipc-for-electron-system-info\";\n\nconst listAPI = [systemInfo];\n\ngenerateContextBridge(listAPI);\n```\n\nIn the renderer file:\n\n```ts\nimport systemInfo from \"@el3um4s/renderer-for-electron-system-info\";\nlet isWindows = false;\n\nsystemInfo.requestIsWindows({\n  callback: (data) =\u003e {\n    isWindows = data.isWindows;\n  },\n});\n\nlet app: string = \"-\";\nlet chrome: string = \"-\";\nlet node: string = \"-\";\nlet electron: string = \"-\";\n\nsystemInfo.requestSystemInfo({\n  callback: (data) =\u003e {\n    chrome = data.chrome;\n    node = data.node;\n    electron = data.electron;\n    app = data.app;\n  },\n});\n```\n\nIn the renderer you can use:\n\n```ts\nlet isWindows = false;\n\nglobalThis.api.systemInfo.send(\"requestIsWindows\", null);\nglobalThis.api.systemInfo.receive(\"getIsWindows\", (data) =\u003e {\n  isWindows = data.isWindows;\n});\n\nlet chrome: string = \"-\";\nlet node: string = \"-\";\nlet electron: string = \"-\";\nlet app: string = \"-\";\n\nglobalThis.api.systemInfo.send(\"requestSystemInfo\", null);\nglobalThis.api.systemInfo.receive(\"getSystemInfo\", (data) =\u003e {\n  chrome = data.chrome;\n  node = data.node;\n  electron = data.electron;\n  app = data.app;\n});\n```\n\n### API: Electron Side\n\n- `requestSystemInfo` - Request the version of Electron, Chrome and NodeJS. The response is sent to the `getSystemInfo` channel\n- `requestIsWindows` - Request if the OS is Windows. The response is sent to the `getIsWindows` channel\n\n### API: Renderer Side - Request\n\n`requestSystemInfo = async (options: { callback?: (arg0: SystemInfo) =\u003e void; apiKey?: string; }): Promise\u003cSystemInfo\u003e`\n\nexample:\n\n```ts\nimport systemInfo from \"@el3um4s/renderer-for-electron-system-info\";\n\nlet app: string = \"-\";\nlet chrome: string = \"-\";\nlet node: string = \"-\";\nlet electron: string = \"-\";\n\nsystemInfo.requestSystemInfo({\n  apiKey: \"ipc\",\n  callback: (data) =\u003e {\n    console.log(\"DATA OK\", data);\n    chrome = data.chrome;\n    node = data.node;\n    electron = data.electron;\n    app = data.app;\n  },\n});\n```\n\n`requestIsWindows = async (options: { callback?: (arg0: IsWindows) =\u003e void; apiKey?: string; }): Promise\u003cIsWindows\u003e`\n\nexample:\n\n```ts\nimport systemInfo from \"@el3um4s/renderer-for-electron-system-info\";\n\nlet isWindows = false;\n\nsystemInfo.requestIsWindows({\n  apiKey: \"ipc\",\n  callback: (data) =\u003e {\n    console.log(\"DATA OK\", data);\n    isWindows = data.isWindows;\n  },\n});\n```\n\n### API: Renderer Side - Response\n\n`on.getSystemInfo = async (options: { callback?: (arg0: SystemInfo) =\u003e void; apiKey?: string; }): Promise\u003cSystemInfo\u003e`\n\nexample:\n\n```ts\nimport systemInfo from \"@el3um4s/renderer-for-electron-system-info\";\n\nlet app: string = \"-\";\nlet chrome: string = \"-\";\nlet node: string = \"-\";\nlet electron: string = \"-\";\nsystemInfo.requestSystemInfo();\n\nsystemInfo.on.getSystemInfo({\n  apiKey: \"ipc\",\n  callback: (data) =\u003e {\n    console.log(\"DATA OK\", data);\n    chrome = data.chrome;\n    node = data.node;\n    electron = data.electron;\n    app = data.app;\n  },\n});\n```\n\n`on.getIsWindows = async (options: { callback?: (arg0: IsWindows) =\u003e void; apiKey?: string; }): Promise\u003cIsWindows\u003e`\n\nexample:\n\n```ts\nimport systemInfo from \"@el3um4s/renderer-for-electron-system-info\";\n\nlet isWindows = false;\n\nsystemInfo.requestIsWindows();\n\nsystemInfo.on.getIsWindows({\n  apiKey: \"ipc\",\n  callback: (data) =\u003e {\n    console.log(\"DATA OK\", data);\n    isWindows = data.isWindows;\n  },\n});\n```\n\n### Types\n\n**SystemInfo**\n\n```ts\ninterface SystemInfo {\n  chrome: string;\n  node: string;\n  electron: string;\n  app: string;\n}\n```\n\n**IsWindows**\n\n```ts\ninterface IsWindows {\n  isWindows: boolean;\n}\n```\n\n**DefaultApiKey**\n\n```ts\ntype DefaultApiKey = \"ipc\";\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fel3um4s%2Frenderer-for-electron-system-info","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fel3um4s%2Frenderer-for-electron-system-info","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fel3um4s%2Frenderer-for-electron-system-info/lists"}