Change event emitter to tseep

This commit is contained in:
ThatTonybo
2025-08-13 16:15:43 +10:00
parent d3bdd7f170
commit 4390e278de
5 changed files with 20 additions and 12 deletions

View File

@@ -17,17 +17,17 @@ bun install github:pygmyapp/ipc-client
- Clone this repository - Clone this repository
- Install dependencies with `bun install` - Install dependencies with `bun install`
## Build You can then build the library:
```sh ```sh
bun run build bun run build
``` ```
## Scripts ## Scripts
- `bun run lint`: runs Biome's linting, applies safe fixes, suggests fixes to errors, and auto-organizes imports - `bun run lint`: runs Biome linting, applies safe fixes, and auto-organizes imports
## Licence ## Licence
Copyright (c) 2025 Pygmy & contributors Copyright (c) 2025 Pygmy & contributors
All code & assets are licensed under GNU GPL v3 unless stated otherwise. All code & assets are licensed under GNU GPL v3 unless stated otherwise.
See `LICENSE` or [see here](https://www.gnu.org/licenses/gpl-3.0.txt). See `LICENSE` or [see here](https://www.gnu.org/licenses/gpl-3.0.txt).

View File

@@ -5,6 +5,7 @@
"name": "ipc-client", "name": "ipc-client",
"dependencies": { "dependencies": {
"node-ipc": "npm:@achrinza/node-ipc@^10.1.11", "node-ipc": "npm:@achrinza/node-ipc@^10.1.11",
"tseep": "^1.3.1",
}, },
"devDependencies": { "devDependencies": {
"@biomejs/biome": "2.1.3", "@biomejs/biome": "2.1.3",
@@ -60,6 +61,8 @@
"node-ipc": ["@achrinza/node-ipc@10.1.11", "", { "dependencies": { "@achrinza/event-pubsub": "5.0.11", "@achrinza/strong-type": "1.1.20", "@node-ipc/js-queue": "2.0.3", "js-message": "1.0.7" } }, "sha512-3z2yix2G8KP8gW6dWgRPj61Mu2nleqbWqTuS5vluZiXe2VDFkimqaeb4fnuS6JV2nhJz4gX+PR5PQjRKsuXm8w=="], "node-ipc": ["@achrinza/node-ipc@10.1.11", "", { "dependencies": { "@achrinza/event-pubsub": "5.0.11", "@achrinza/strong-type": "1.1.20", "@node-ipc/js-queue": "2.0.3", "js-message": "1.0.7" } }, "sha512-3z2yix2G8KP8gW6dWgRPj61Mu2nleqbWqTuS5vluZiXe2VDFkimqaeb4fnuS6JV2nhJz4gX+PR5PQjRKsuXm8w=="],
"tseep": ["tseep@1.3.1", "", {}, "sha512-ZPtfk1tQnZVyr7BPtbJ93qaAh2lZuIOpTMjhrYa4XctT8xe7t4SAW9LIxrySDuYMsfNNayE51E/WNGrNVgVicQ=="],
"typescript": ["typescript@5.9.2", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A=="], "typescript": ["typescript@5.9.2", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A=="],
"undici-types": ["undici-types@7.10.0", "", {}, "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag=="], "undici-types": ["undici-types@7.10.0", "", {}, "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag=="],

2
dist/index.js vendored
View File

@@ -1,5 +1,5 @@
import EventEmitter from 'node:events';
import IPCModule from 'node-ipc'; import IPCModule from 'node-ipc';
import { EventEmitter } from 'tseep';
/** /**
* Handles Inter-Process Communication (IPC) via. server/socket * Handles Inter-Process Communication (IPC) via. server/socket
* *

View File

@@ -1,6 +1,6 @@
{ {
"name": "ipc-client", "name": "ipc-client",
"version": "0.0.3", "version": "0.0.4",
"module": "dist/index.js", "module": "dist/index.js",
"type": "module", "type": "module",
"files": ["dist/**/*"], "files": ["dist/**/*"],
@@ -17,6 +17,7 @@
"typescript": "^5.9.2" "typescript": "^5.9.2"
}, },
"dependencies": { "dependencies": {
"node-ipc": "npm:@achrinza/node-ipc@^10.1.11" "node-ipc": "npm:@achrinza/node-ipc@^10.1.11",
"tseep": "^1.3.1"
} }
} }

View File

@@ -1,10 +1,10 @@
import EventEmitter from 'node:events';
import IPCModule from 'node-ipc'; import IPCModule from 'node-ipc';
import { EventEmitter } from 'tseep';
export interface IPCMessage { export interface IPCMessage {
from: string; from: string;
to: string; to: string;
payload: any; payload: unknown;
} }
/** /**
@@ -25,7 +25,11 @@ export interface IPCMessage {
* console.log(`Message:`, message); * console.log(`Message:`, message);
* }); * });
*/ */
export default class IPC extends EventEmitter { export default class IPC extends EventEmitter<{
connect: () => void;
disconnect: () => void;
message: (message: IPCMessage) => void;
}> {
name: string; name: string;
ready: boolean; ready: boolean;
ipc: typeof IPCModule; ipc: typeof IPCModule;
@@ -70,7 +74,7 @@ export default class IPC extends EventEmitter {
* @param to Who to send the message to * @param to Who to send the message to
* @param data JSON data to send to the process * @param data JSON data to send to the process
*/ */
send(to: string, data: any) { send(to: string, data: unknown) {
if (!this.ready) return; if (!this.ready) return;
const message: IPCMessage = { const message: IPCMessage = {
@@ -102,7 +106,7 @@ export default class IPC extends EventEmitter {
const message: IPCMessage = { const message: IPCMessage = {
from: raw.from, from: raw.from,
to: raw.to, to: raw.to,
payload: JSON.parse(raw.payload) payload: JSON.parse(raw.payload as string)
}; };
this.emit('message', message); this.emit('message', message);