feat: add Waku adapter - #1289
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Waku is close to 1.0 and has no shallow navigation option on push/replace, so shallow updates go through the router's unstable changeRoute with refetch: false, which keeps useRouter().query in sync without an RSC fetch. Raw history.pushState (the community adapter) left that route state stale.
Runs the shared suite twice, on static and dynamic pages, since Waku only forwards the query string to the server for dynamic routes.
015ed3b to
6daa65b
Compare
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
commit: |
|
Warning Review the following alerts detected in dependencies. According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.
|
Every place that enumerates supported frameworks (README, error pages, agent docs, landing page, feature support matrix, registry) now knows about Waku, so readers find the built-in adapter instead of the community gist.
Waku applies navigations asynchronously, so after a queue flush the hooks reconciled against the previous query and flashed back to null. The adapter now serves the written search until the route moves on, and resets the update queues when something other than nuqs moves the route (Link, back/forward), so pending updates do not flush onto the new location.
Key isolation is left out: Waku's router context re-renders every consumer on navigation, like Next.js, so exact render counts cannot hold.
Waku is about to reach 1.0. Having an official adapter now lets us report API gaps before they freeze their router.
This supersedes the community adapter in the registry. Shallow updates (the nuqs default) go through the router's
unstable_RouterContext.changeRoutewithrefetch: false, which keepsuseRouter().queryin sync without a server round-trip. The oldhistory.pushStateapproach left Waku's route state stale. Waku has no public option for this yet, the ask is tracked upstream in wakujs/waku#1251 / wakujs/waku#2234 (refetch auto-decide) and the original nuqs discussion in wakujs/waku#1123.The e2e harness runs the shared suite twice, on static and dynamic pages, since Waku only forwards the query string to the server for dynamic routes. Typed search params (Waku search codecs) are documented as a recipe built on
createLoader/createSerializerfromnuqs/server.Docs are gated behind
<SinceVersion v="2.11.0">.Resources
Possibly related on the Waku repo: