Skip to content

Commit

Permalink
refactor: Swap out NodeJS EventEmitter with EventTarget
Browse files Browse the repository at this point in the history
  • Loading branch information
pojntfx committed Feb 1, 2024
1 parent 6753d8f commit 93bd6dc
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 9 deletions.
Binary file modified ts/bun.lockb
Binary file not shown.
1 change: 0 additions & 1 deletion ts/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
"homepage": "https://github.com/pojntfx/panrpc#readme",
"devDependencies": {
"@streamparser/json-node": "^0.0.20",
"@types/uuid": "^9.0.0",
"@typescript-eslint/eslint-plugin": "^5.30.6",
"@typescript-eslint/parser": "^5.30.6",
"bun-types": "^1.0.7",
Expand Down
21 changes: 13 additions & 8 deletions ts/src/rpc/registry.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { EventEmitter } from "events";
import "reflect-metadata";
import {
IMessage,
Expand Down Expand Up @@ -46,7 +45,7 @@ export const remoteClosure = (
const makeRPC =
<T>(
name: string,
responseResolver: EventEmitter,
responseResolver: EventTarget,

requestWriter: WritableStreamDefaultWriter<T>,

Expand Down Expand Up @@ -89,12 +88,16 @@ const makeRPC =
err: ErrorCallCancelled,
};

responseResolver.emit(`rpc:${callID}`, callResponse);
responseResolver.dispatchEvent(
new CustomEvent(`rpc:${callID}`, { detail: callResponse })
);
};
ctx?.signal?.addEventListener("abort", abortListener);

const returnListener = ({ value, err }: ICallResponse) => {
responseResolver.removeListener(`rpc:${callID}`, returnListener);
const returnListener = (event: Event) => {
const { value, err } = (event as CustomEvent<ICallResponse>).detail;

responseResolver.removeEventListener(`rpc:${callID}`, returnListener);

closureFreers.map((free) => free());

Expand All @@ -104,7 +107,7 @@ const makeRPC =
res(value);
}
};
responseResolver.addListener(`rpc:${callID}`, returnListener);
responseResolver.addEventListener(`rpc:${callID}`, returnListener);

requestWriter
.write(marshalRequest<T>(callID, name, args, marshal))
Expand Down Expand Up @@ -137,7 +140,7 @@ export class Registry<L extends Object, R extends Object> {
marshal: (value: any) => T,
unmarshal: (text: T) => any
) => {
const responseResolver = new EventEmitter();
const responseResolver = new EventTarget();

const r: R = {} as R;
// eslint-disable-next-line no-restricted-syntax
Expand Down Expand Up @@ -291,7 +294,9 @@ export class Registry<L extends Object, R extends Object> {
err,
};

responseResolver.emit(`rpc:${call}`, callResponse);
responseResolver.dispatchEvent(
new CustomEvent(`rpc:${call}`, { detail: callResponse })
);
} finally {
responseReader.read().then(process);
}
Expand Down

0 comments on commit 93bd6dc

Please sign in to comment.