aboutsummaryrefslogtreecommitdiff
path: root/src/cdp/event-queue.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/cdp/event-queue.ts')
-rw-r--r--src/cdp/event-queue.ts38
1 files changed, 0 insertions, 38 deletions
diff --git a/src/cdp/event-queue.ts b/src/cdp/event-queue.ts
deleted file mode 100644
index 08024b0..0000000
--- a/src/cdp/event-queue.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-import type { CdpEvent } from "./types";
-
-export type EventQueue = {
- readonly push: (e: CdpEvent) => void;
- readonly end: () => void;
- readonly iter: AsyncIterable<CdpEvent>;
-};
-
-export const makeEventQueue = (): EventQueue => {
- const buf: CdpEvent[] = [];
- const waiters: Array<(v: IteratorResult<CdpEvent, undefined>) => void> = [];
- let ended = false;
- return {
- push(e) {
- if (ended) return;
- const w = waiters.shift();
- if (w) w({ value: e, done: false });
- else buf.push(e);
- },
- end() {
- ended = true;
- for (const w of waiters.splice(0)) w({ value: undefined, done: true });
- },
- iter: {
- [Symbol.asyncIterator](): AsyncIterator<CdpEvent, undefined, undefined> {
- return {
- next: (): Promise<IteratorResult<CdpEvent, undefined>> =>
- new Promise((resolve) => {
- const next = buf.shift();
- if (next) resolve({ value: next, done: false });
- else if (ended) resolve({ value: undefined, done: true });
- else waiters.push(resolve);
- }),
- };
- },
- },
- };
-};