Skip to content

refactor(transport): break down oversized transport modules after PR #35 #40

@1amKhush

Description

@1amKhush

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 utilitieshasSingleTag, hasEventTag are duplicated across both transports.
  • Client-side oversized sendingsendOversizedRequest + sendFrame closure (~95 LOC) is a standalone state machine.
  • Client relay resolutionresolveOperationalRelayHandler + connectFallbackOperationalRelays (~100 LOC) is self-contained relay discovery/fallback logic.
  • Server-side oversized handlingsendOversizedResponse + 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions