Skip to content

feat(plugin-rsc): expose onClientReference callback in renderToReadableStream#1079

Merged
hi-ogawa merged 2 commits intomainfrom
feat/rsc-on-client-reference-render
Jan 21, 2026
Merged

feat(plugin-rsc): expose onClientReference callback in renderToReadableStream#1079
hi-ogawa merged 2 commits intomainfrom
feat/rsc-on-client-reference-render

Conversation

@hi-ogawa
Copy link
Copy Markdown
Contributor

@hi-ogawa hi-ogawa commented Jan 21, 2026

Summary

  • Add an experimental onClientReference callback option to renderToReadableStream via a third extraOptions parameter
  • The callback is invoked when a client reference is used in RSC stream rendering, providing id, name, and resolved asset dependencies (deps with JS/CSS files)
  • This is a Vite-specific extension (not part of official React RSC API)

API

function renderToReadableStream<T>(
  data: T,
  // standard options (e.g. temporaryReferences, onError, etc.)
  options?: object,
  // vite-specific options
  extraOptions?: {
    onClientReference?: (metadata: {
      id: string
      name: string
      deps: { js: string[]; css: string[] }
    }) => void
  },
): ReadableStream<Uint8Array>

example

import { renderToReadableStream } from "@vitejs/plugin-rsc/rsc"

renderToReadableStream(
  rscPayload,
  options,
  {
    onClientReference(metadata) {
      metadata.deps.js;
      metadata.deps.css;
    }
  }
)

Test plan

  • e2e test added for dev and build modes

🤖 Generated with Claude Code

@hi-ogawa hi-ogawa force-pushed the feat/rsc-on-client-reference-render branch 4 times, most recently from 2b258ce to 1890bce Compare January 21, 2026 07:11
…dableStream`

Add an experimental `onClientReference` callback option to `renderToReadableStream`
that fires when a client reference is encountered during RSC rendering. The callback
provides the reference id, name, and resolved asset dependencies (JS/CSS files).

This enables use cases like:
- Tracking which client components are used in a render
- Collecting asset dependencies for preloading
- Debugging client reference resolution

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@hi-ogawa hi-ogawa force-pushed the feat/rsc-on-client-reference-render branch from 1890bce to d7a08c2 Compare January 21, 2026 07:12
@hi-ogawa hi-ogawa merged commit 454c742 into main Jan 21, 2026
21 checks passed
@hi-ogawa hi-ogawa deleted the feat/rsc-on-client-reference-render branch January 21, 2026 07:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant