Summary
PR #35 (Feat/oversized payloads) successfully landed CEP-22 oversized transfer support, but it grew nostr-client-transport.ts and nostr-server-transport.ts well beyond the recommended LOC number:
| File |
LOC |
Status |
nostr-server-transport.ts |
1,148 |
⚠️ ~1.6x over guideline |
nostr-client-transport.ts |
1,139 |
⚠️ ~1.6x over guideline |
Several self-contained concerns can be extracted into focused submodules without changing public API or behavior:
- Shared tag utilities —
hasSingleTag, hasEventTag are duplicated across both transports.
- Client-side oversized sending —
sendOversizedRequest + sendFrame closure (~95 LOC) is a standalone state machine.
- Client relay resolution —
resolveOperationalRelayHandler + connectFallbackOperationalRelays (~100 LOC) is self-contained relay discovery/fallback logic.
- Server-side oversized handling —
sendOversizedResponse + sendAcceptFrame (~65 LOC) are independent frame publishing helpers.
- Capability learning — inline
hasSingleTag(event.tags, ...) capability checks can be consolidated into a reusable, extensible function.
Non-Goals
- No behavioral changes , this is a pure refactor.
Summary
PR #35 (Feat/oversized payloads) successfully landed CEP-22 oversized transfer support, but it grew
nostr-client-transport.tsandnostr-server-transport.tswell beyond the recommended LOC number:nostr-server-transport.tsnostr-client-transport.tsSeveral self-contained concerns can be extracted into focused submodules without changing public API or behavior:
hasSingleTag,hasEventTagare duplicated across both transports.sendOversizedRequest+sendFrameclosure (~95 LOC) is a standalone state machine.resolveOperationalRelayHandler+connectFallbackOperationalRelays(~100 LOC) is self-contained relay discovery/fallback logic.sendOversizedResponse+sendAcceptFrame(~65 LOC) are independent frame publishing helpers.hasSingleTag(event.tags, ...)capability checks can be consolidated into a reusable, extensible function.Non-Goals