{"id":15198713,"url":"https://github.com/gbenm/ipc-shell","last_synced_at":"2026-03-06T11:32:27.105Z","repository":{"id":44583666,"uuid":"419423945","full_name":"gbenm/ipc-shell","owner":"gbenm","description":"A wrapper for IPC objects","archived":false,"fork":false,"pushed_at":"2022-02-07T01:17:36.000Z","size":32688,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-27T04:34:14.096Z","etag":null,"topics":["electron","electronjs","ipc"],"latest_commit_sha":null,"homepage":"https://gbenm.github.io/ipc-shell/","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/gbenm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-10-20T17:19:05.000Z","updated_at":"2022-02-06T02:27:05.000Z","dependencies_parsed_at":"2022-09-15T02:51:58.731Z","dependency_job_id":null,"html_url":"https://github.com/gbenm/ipc-shell","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/gbenm/ipc-shell","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbenm%2Fipc-shell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbenm%2Fipc-shell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbenm%2Fipc-shell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbenm%2Fipc-shell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gbenm","download_url":"https://codeload.github.com/gbenm/ipc-shell/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbenm%2Fipc-shell/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30173694,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T07:56:45.623Z","status":"ssl_error","status_checked_at":"2026-03-06T07:55:55.621Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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","ipc"],"created_at":"2024-09-28T01:40:22.707Z","updated_at":"2026-03-06T11:32:27.086Z","avatar_url":"https://github.com/gbenm.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IPC Shell\n\nVea la [página](https://gbenm.github.io/ipc-shell/) para más información.\n\nEs una envoltura para objetos que realizan la comunicación\nentre procesos, en el estado inicial, está configurado para\nfuncionar con los IPC de [electron](https://www.electronjs.org/),\neste comportamiento puede cambiar sobreescribiendo las funciones\n`_getArgsFromOn` e `_ipcNodeSend`.\n\n## Como usar\nImporte `IPCNodeRegister` y registre el IPC:\n\n```typescript\nimport { ipcMain } from \"electron\";\nimport { IPCNodeRegister } from \"ipc-shell\"\n\nconst ipc = IPCNodeRegister.register(\"main\", ipcMain)\n```\n\n**Nota: se usará `IpcMain` como el tipo de IPC, si\nfuera para el `ipcRenderer` debería usar `IpcRenderer`,\npara el ipc de `win.webContents` debería usar `WebContents`,\nhablando en términos de electronjs, en general usar\nla clase del IPC que registra.**\n\nNote que ahora `ipc` fue extendido. Colocando el tipo sería\nde la siguiente forma (por la inferencia de tipos lo de arriba\nestá bien):\n\n```typescript\nimport { IpcMain, ipcMain } from \"electron\";\nimport { IPCNode, IPCNodeRegister } from \"ipc-shell\"\n\nconst ipc: IPCNode\u003cIpcMain\u003e = IPCNodeRegister.register(\"main\", ipcMain)\n```\n\nA partir de ahora puede acceder en el mismo proceso a este\nIPC mediante su nombre:\n\n```typescript\n// somewhere else\n\nimport { IpcMain } from \"electron\";\nimport { IPCNodeRegister } from \"ipc-shell\"\n\n// using generic type (recommended)\nconst ipc = IPCNodeRegister.get\u003cIpcMain\u003e(\"main\");\n\n// using IPCNode type (import from ipc-shell)\nconst ipc: IPCNode\u003cIpcMain\u003e = IPCNodeRegister.get(\"main\");\n```\n\nEl hecho de que se agregue `IpcMain` es para que pueda\nseguir utilizando todos lo métodos y variables que este\ncontenga más los extras, si no agrega el tipo únicamente\npodrá usar los de `IPCNode`.\n\n## Disclaimer\n- This package use `Object.assign()`.\n- All in the `IPCBaseNode` interface is overwritten when it extends.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgbenm%2Fipc-shell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgbenm%2Fipc-shell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgbenm%2Fipc-shell/lists"}