12 Commits

Author SHA1 Message Date
a12c52b407 fix: add close() lifecycle methods to all adapters, fix WS client handler preservation, add Worker thread context guard
- Add close() to Redis, WS Client, WS Server, Worker Host, Worker Thread adapters
  for graceful teardown (cleanup subscriptions, restore handlers, clear maps)
- WS Client now saves/restores original onmessage (consistent with WS Server)
- WS Client dispatchEvent/addEventListener/removeEventListener are no-ops after close()
- WS Server close() removes all connections and clears local listeners
- Redis close() unsubscribes all channels and removes message listener
- Worker Host/Thread close() restore original onmessage and clear callbacks
- Worker Thread throws clear error if globalThis.postMessage is unavailable
- Add double-call guard to WS Server removeConnection
- Export new adapter interface types (RedisEventTarget, WebSocketClientEventTarget, etc.)
- Add sideEffects: false to package.json for tree-shaking
- Update architecture docs: lifecycle section, close() contract, adapter status updates
- 22 new tests covering close(), handler restoration, idempotency, and context guard
2026-05-08 16:19:16 +00:00
738dd80197 feat(worker): implement Worker event target adapter (Web Worker only) 2026-05-08 08:07:37 +00:00
b92a4b9359 test: add integration tests for WebSocket client-server communication 2026-05-08 07:57:14 +00:00
9f8fbda91b feat(ws-server): implement WebSocket server event target adapter 2026-05-08 07:30:56 +00:00
ad00e15f91 test(ws-client): add comprehensive tests for WebSocket client event target 2026-05-08 07:17:47 +00:00
b2b07b179e feat(ws-client): implement WebSocket client event target adapter 2026-05-08 07:04:04 +00:00
ea68443fea test: add integration tests for createPubSub with Redis event target 2026-05-08 06:55:20 +00:00
392682c7be feat(redis): add channel prefix and error handling 2026-05-08 06:33:18 +00:00
7c12b40ed2 feat(redis-adapter-tests): add comprehensive tests for Redis event target adapter
17 tests covering:
- dispatchEvent publish path (correct channel, serialized envelope, returns true)
- addEventListener subscribe path (subscribes to Redis, dispatches to local listeners, ignores unknown channels)
- removeEventListener unsubscribe path (unsubscribes when last listener removed, keeps subscription when listeners remain)
- Topic scoping (type:id strings as Redis channel names)
- EventEnvelope round-trip serialization (full envelope, null payload)
- Multiple listeners (single Redis subscribe, all listeners receive messages)
- Custom serializer (custom stringify/parse, non-JSON round-trip)
- EventListenerObject support (handleEvent)

Uses manual Redis mock (no external dependencies needed).
2026-05-08 06:28:28 +00:00
db07aa74a7 Merge branch 'wave1/core-operators-tests' 2026-05-08 06:22:18 +00:00
dd843132f9 feat(core-operators-tests): add comprehensive tests for all 13 stream operators
53 tests covering filter, map, pipe, take, reduce, toArray, batch,
dedupe, window, flat, groupBy, chain, and join operators including
async predicates/mappers, type-narrowing overloads, edge cases, and
pipe+subscribe composition.
2026-05-08 06:07:36 +00:00
dd720a9e0b feat(core-pubsub-tests): add comprehensive tests for createPubSub, EventEnvelope, and in-process event target 2026-05-08 06:06:36 +00:00