Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Export node-adapter’s fromNodeRequest and toNodeRequest from @react-router/dev/vite/cloudflare #12774

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

acusti
Copy link
Contributor

@acusti acusti commented Jan 18, 2025

there’s a great project called Superflare that describes itself as a “full-stack toolkit for Cloudflare Workers” and offers user auth, an ORM and DB migration management for D1, and a bunch of other useful things. it provides a package specifically for integrating with Remix, which exports a vite dev proxy plugin that is a drop-in replacement for the cloudflareDevProxy plugin provided by Remix/RR v7 to automatically handle sessions and auth and provide it to the app load context. that plugin uses the fromNodeRequest and toNodeRequest utils from the vite/node-adapter.ts file (imported here).

i am currently working on making Superflare compatible with React Router v7, but the node-adapter.ts file is not available in the published dist/ directory of @react-router/dev. this one-line change to the vite/cloudflare.ts file will enable importing everything we need for the cloudflare dev proxy plugin in @superflare/remix like so:

import {
  cloudflareDevProxy,
  fromNodeRequest,
  toNodeRequest,
} from "@react-router/dev/vite/cloudflare";

i hope this change is amenable to you all. regardless, thank you all for such a great project/community resource! the greatly improved types for route files from RR v7 are most excellent, and more generally, i’ve found working with Remix and now RR v7 truly a pleasure.

Copy link

changeset-bot bot commented Jan 18, 2025

🦋 Changeset detected

Latest commit: 685b947

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 11 packages
Name Type
@react-router/dev Major
@react-router/fs-routes Major
@react-router/remix-routes-option-adapter Major
create-react-router Major
react-router Major
react-router-dom Major
@react-router/architect Major
@react-router/cloudflare Major
@react-router/express Major
@react-router/node Major
@react-router/serve Major

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

acusti added a commit to acusti/superflare that referenced this pull request Jan 20, 2025
this required duplicating node-adapter.js and maintaining it within superflare-remix, because it’s no longer included in the published package’s dist/ directory. here’s a PR that exposes the (from|to)NodeRequest utilities that we depend on in the superflareDevProxyVitePlugin: remix-run/react-router#12774

if it gets merged, we can remove superflare-remix/node.adapter.ts and import those utils alongside cloudflareDevProxy

note that i also needed to update superflare-remix’s tsconfig.json module and moduleResolution settings to get it to build without error (presumably due to changes between the published remix vs react-router packages
acusti added a commit to acusti/superflare that referenced this pull request Jan 20, 2025
this required duplicating node-adapter.js and maintaining it within superflare-remix, because it’s no longer included in the published package’s dist/ directory. here’s a PR that exposes the (from|to)NodeRequest utilities that we depend on in the superflareDevProxyVitePlugin: remix-run/react-router#12774

if it gets merged, we can remove superflare-remix/node.adapter.ts and import those utils alongside cloudflareDevProxy

note that i also needed to update superflare-remix’s tsconfig.json module and moduleResolution settings to get it to build without error (presumably due to changes between the published remix vs react-router packages
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant