Replace @repeaterjs/repeater dependency with inlined Repeater class

Port the core Repeater class (push/stop executor, async iterator protocol,
overflow protection) from @repeaterjs/repeater into src/repeater.ts, stripping
buffers and combinators we don't use. This removes the 7-year-old dependency
while keeping the same API surface for all current and future adapters
(Redis, WebSocket, SSE, Iroh).

Also add the async utility research doc for reference.
This commit is contained in:
2026-04-30 12:10:11 +00:00
parent 8c025c3433
commit 9c332529df
7 changed files with 680 additions and 15 deletions

9
package-lock.json generated
View File

@@ -8,9 +8,6 @@
"name": "@alkdev/pubsub",
"version": "0.1.0",
"license": "MIT OR Apache-2.0",
"dependencies": {
"@repeaterjs/repeater": "^3.0.0"
},
"devDependencies": {
"@types/node": "^22.0.0",
"@vitest/coverage-v8": "^3.2.4",
@@ -632,12 +629,6 @@
"node": ">=14"
}
},
"node_modules/@repeaterjs/repeater": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.6.tgz",
"integrity": "sha512-Javneu5lsuhwNCryN+pXH93VPQ8g0dBX7wItHFgYiwQmzE1sVdg5tWHiOgHywzL2W21XQopa7IwIEnNbmeUJYA==",
"license": "MIT"
},
"node_modules/@rollup/rollup-android-arm-eabi": {
"version": "4.60.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.2.tgz",