Skip to content

parity(realtime): add copyBindings() method to RealtimeChannel [from supabase-js] #241

Open

Description

@grdsdev

Warning

Auto-generated by AI — This issue was automatically created by an AI-based SDK parity analysis tool. It may not be applicable to this SDK or may already be implemented in a different form. Please use your best judgment before accepting or closing this issue.

SDK Parity: C# implementation needed

A change was made in supabase-js that needs to be implemented in this repository for SDK parity.

Reference Implementation (supabase-js)

What Changed

New CopyBindings(other: RealtimeChannel) method on RealtimeChannel that copies all event bindings (subscriptions/callbacks) from another channel instance. Useful for reconnection scenarios.

Code Reference

copyBindings(other: RealtimeChannel) {
  if (this.joinedOnce) {
    throw new Error('cannot copy bindings into joined channel')
  }
  for (const kind in other.bindings) {
    for (const binding of other.bindings[kind]) {
      this._on(binding.type, binding.filter, binding.callback)
    }
  }
}

Implementation Guidance

Expected API Surface (C#)

public void CopyBindings(IRealtimeChannel other)
{
    // Throws InvalidOperationException if this channel already joined
    // Copies all postgres_changes, broadcast, presence bindings from other
}

Key Behaviors to Match

  • Throws InvalidOperationException (or similar) if channel has already joined
  • Copies all binding types: postgres_changes, broadcast, presence
  • Copies filter and callback for each binding
  • Source channel (other) is not modified

Acceptance Criteria

  • CopyBindings() method added to RealtimeChannel
  • Throws if channel already subscribed/joined
  • All binding types (postgres_changes, broadcast, presence) are copied
  • Source channel unaffected after copy
  • Unit tests for happy path and error case

Context

  • supabase-js version: v2.101.0
  • Parity tracking: This issue was auto-generated by SDK parity analysis

Generated with Claude Code /sync-sdk-parity

Activity

  1. self-assigned this
    on Jul 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions