Skip to content

refactor(router-plugin): upgrade unplugin to v3#7258

Merged
SeanCassiere merged 3 commits intomainfrom
seanc/unplugin-v3
Apr 25, 2026
Merged

refactor(router-plugin): upgrade unplugin to v3#7258
SeanCassiere merged 3 commits intomainfrom
seanc/unplugin-v3

Conversation

@SeanCassiere
Copy link
Copy Markdown
Member

@SeanCassiere SeanCassiere commented Apr 25, 2026

  • Upgrades to the v3 major for unplugin - https://github.com/unjs/unplugin/releases/tag/v3.0.0.
  • Patches the type of CustomFetch to account for the type-pollution in bun-types from unplugin.
  • Add a runtime check to the Solid Start Convex example to check for the convex URL from the environment.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 25, 2026

📝 Walkthrough

Walkthrough

Two changesets document patch releases: a start-client-core refactor using explicit CustomFetch typing and a router-plugin unplugin dependency upgrade to v3. The CustomFetch type refactors to conditional types to resolve bun-types conflicts. A Convex example fix changes missing environment variable handling from logging to throwing errors. Router plugin's unplugin dependency upgrades from v2 to v3.

Changes

Cohort / File(s) Summary
Changesets
.changeset/fuzzy-carpets-enter.md, .changeset/loud-tigers-crash.md
Documentation of patch releases for @tanstack/start-client-core (CustomFetch typing refactor) and @tanstack/router-plugin (unplugin v3 upgrade).
Dependencies
packages/router-plugin/package.json
Upgrades unplugin dependency from ^2.1.2 to ^3.0.0.
Type Refactoring
packages/start-client-core/src/createServerFn.ts
Refactors CustomFetch type from typeof globalThis.fetch to conditional type extracting argument and return types, resolving conflicts with bun-types dependency.
Error Handling
examples/solid/start-convex-better-auth/src/library/convex-client.ts
Changes missing VITE_CONVEX_URL handling from console log to thrown runtime error for fail-fast behavior.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 Types refined, dependencies climb,
Conditional flows now keep perfect time,
Errors now crash fast, no silent deceit—
A refactored hop makes the code complete! ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Title check ⚠️ Warning The PR title focuses on upgrading unplugin to v3 in router-plugin, but the changeset includes significant changes to start-client-core typing and example configuration that are not mentioned. Update the title to reflect all major changes, such as 'refactor: upgrade unplugin v3 and improve CustomFetch typing' to better represent the scope of the changes.
✅ Passed checks (4 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch seanc/unplugin-v3

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 25, 2026

🚀 Changeset Version Preview

2 package(s) bumped directly, 14 bumped as dependents.

🟩 Patch bumps

Package Version Reason
@tanstack/router-plugin 1.167.25 → 1.167.26 Changeset
@tanstack/start-client-core 1.167.18 → 1.167.19 Changeset
@tanstack/react-start 1.167.47 → 1.167.48 Dependent
@tanstack/react-start-client 1.166.41 → 1.166.42 Dependent
@tanstack/react-start-rsc 0.0.26 → 0.0.27 Dependent
@tanstack/react-start-server 1.166.42 → 1.166.43 Dependent
@tanstack/router-vite-plugin 1.166.40 → 1.166.41 Dependent
@tanstack/solid-start 1.167.42 → 1.167.43 Dependent
@tanstack/solid-start-client 1.166.37 → 1.166.38 Dependent
@tanstack/solid-start-server 1.166.38 → 1.166.39 Dependent
@tanstack/start-plugin-core 1.169.3 → 1.169.4 Dependent
@tanstack/start-server-core 1.167.20 → 1.167.21 Dependent
@tanstack/start-static-server-functions 1.166.34 → 1.166.35 Dependent
@tanstack/vue-start 1.167.41 → 1.167.42 Dependent
@tanstack/vue-start-client 1.166.36 → 1.166.37 Dependent
@tanstack/vue-start-server 1.166.37 → 1.166.38 Dependent

@nx-cloud
Copy link
Copy Markdown
Contributor

nx-cloud Bot commented Apr 25, 2026

View your CI Pipeline Execution ↗ for commit a6f58c2

Command Status Duration Result
nx run-many --target=build --exclude=examples/*... ✅ Succeeded 2s View ↗
nx affected --targets=test:eslint,test:unit,tes... ✅ Succeeded 52s View ↗

☁️ Nx Cloud last updated this comment at 2026-04-25 01:42:55 UTC

@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new Bot commented Apr 25, 2026

More templates

@tanstack/arktype-adapter

npm i https://pkg.pr.new/@tanstack/arktype-adapter@7258

@tanstack/eslint-plugin-router

npm i https://pkg.pr.new/@tanstack/eslint-plugin-router@7258

@tanstack/eslint-plugin-start

npm i https://pkg.pr.new/@tanstack/eslint-plugin-start@7258

@tanstack/history

npm i https://pkg.pr.new/@tanstack/history@7258

@tanstack/nitro-v2-vite-plugin

npm i https://pkg.pr.new/@tanstack/nitro-v2-vite-plugin@7258

@tanstack/react-router

npm i https://pkg.pr.new/@tanstack/react-router@7258

@tanstack/react-router-devtools

npm i https://pkg.pr.new/@tanstack/react-router-devtools@7258

@tanstack/react-router-ssr-query

npm i https://pkg.pr.new/@tanstack/react-router-ssr-query@7258

@tanstack/react-start

npm i https://pkg.pr.new/@tanstack/react-start@7258

@tanstack/react-start-client

npm i https://pkg.pr.new/@tanstack/react-start-client@7258

@tanstack/react-start-rsc

npm i https://pkg.pr.new/@tanstack/react-start-rsc@7258

@tanstack/react-start-server

npm i https://pkg.pr.new/@tanstack/react-start-server@7258

@tanstack/router-cli

npm i https://pkg.pr.new/@tanstack/router-cli@7258

@tanstack/router-core

npm i https://pkg.pr.new/@tanstack/router-core@7258

@tanstack/router-devtools

npm i https://pkg.pr.new/@tanstack/router-devtools@7258

@tanstack/router-devtools-core

npm i https://pkg.pr.new/@tanstack/router-devtools-core@7258

@tanstack/router-generator

npm i https://pkg.pr.new/@tanstack/router-generator@7258

@tanstack/router-plugin

npm i https://pkg.pr.new/@tanstack/router-plugin@7258

@tanstack/router-ssr-query-core

npm i https://pkg.pr.new/@tanstack/router-ssr-query-core@7258

@tanstack/router-utils

npm i https://pkg.pr.new/@tanstack/router-utils@7258

@tanstack/router-vite-plugin

npm i https://pkg.pr.new/@tanstack/router-vite-plugin@7258

@tanstack/solid-router

npm i https://pkg.pr.new/@tanstack/solid-router@7258

@tanstack/solid-router-devtools

npm i https://pkg.pr.new/@tanstack/solid-router-devtools@7258

@tanstack/solid-router-ssr-query

npm i https://pkg.pr.new/@tanstack/solid-router-ssr-query@7258

@tanstack/solid-start

npm i https://pkg.pr.new/@tanstack/solid-start@7258

@tanstack/solid-start-client

npm i https://pkg.pr.new/@tanstack/solid-start-client@7258

@tanstack/solid-start-server

npm i https://pkg.pr.new/@tanstack/solid-start-server@7258

@tanstack/start-client-core

npm i https://pkg.pr.new/@tanstack/start-client-core@7258

@tanstack/start-fn-stubs

npm i https://pkg.pr.new/@tanstack/start-fn-stubs@7258

@tanstack/start-plugin-core

npm i https://pkg.pr.new/@tanstack/start-plugin-core@7258

@tanstack/start-server-core

npm i https://pkg.pr.new/@tanstack/start-server-core@7258

@tanstack/start-static-server-functions

npm i https://pkg.pr.new/@tanstack/start-static-server-functions@7258

@tanstack/start-storage-context

npm i https://pkg.pr.new/@tanstack/start-storage-context@7258

@tanstack/valibot-adapter

npm i https://pkg.pr.new/@tanstack/valibot-adapter@7258

@tanstack/virtual-file-routes

npm i https://pkg.pr.new/@tanstack/virtual-file-routes@7258

@tanstack/vue-router

npm i https://pkg.pr.new/@tanstack/vue-router@7258

@tanstack/vue-router-devtools

npm i https://pkg.pr.new/@tanstack/vue-router-devtools@7258

@tanstack/vue-router-ssr-query

npm i https://pkg.pr.new/@tanstack/vue-router-ssr-query@7258

@tanstack/vue-start

npm i https://pkg.pr.new/@tanstack/vue-start@7258

@tanstack/vue-start-client

npm i https://pkg.pr.new/@tanstack/vue-start-client@7258

@tanstack/vue-start-server

npm i https://pkg.pr.new/@tanstack/vue-start-server@7258

@tanstack/zod-adapter

npm i https://pkg.pr.new/@tanstack/zod-adapter@7258

commit: a6f58c2

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 25, 2026

Bundle Size Benchmarks

  • Commit: 8adbe7415d2e
  • Measured at: 2026-04-25T01:44:21.724Z
  • Baseline source: history:8adbe7415d2e
  • Dashboard: bundle-size history
Scenario Current (gzip) Delta vs baseline Raw Brotli Trend
react-router.minimal 87.35 KiB 0 B (0.00%) 274.60 KiB 75.97 KiB ▅▅▅▅▅▅▅▅▅▅▅
react-router.full 90.77 KiB 0 B (0.00%) 286.11 KiB 78.90 KiB ▁▁▁▁▁▁▁▁███
solid-router.minimal 35.55 KiB 0 B (0.00%) 106.71 KiB 31.96 KiB ▁██████████
solid-router.full 40.18 KiB 0 B (0.00%) 120.58 KiB 36.04 KiB ▁▁▁▁▁▁▁▁███
vue-router.minimal 53.30 KiB 0 B (0.00%) 152.01 KiB 47.88 KiB ▅▅▅▅▅▅▅▅▅▅▅
vue-router.full 58.44 KiB 0 B (0.00%) 168.19 KiB 52.34 KiB ▁▁▁▁▁▁▁▁███
react-start.minimal 101.92 KiB 0 B (0.00%) 322.77 KiB 88.18 KiB ▁▁▁▁▁▁▁▁███
react-start.full 105.35 KiB 0 B (0.00%) 333.10 KiB 91.02 KiB ▁▁▁▁▁▁▁▁███
react-start.rsbuild.minimal 101.43 KiB +8 B (+0.01%) 325.62 KiB 87.12 KiB ▁█
react-start.rsbuild.full 104.74 KiB 0 B (0.00%) 336.31 KiB 89.93 KiB
solid-start.minimal 49.54 KiB 0 B (0.00%) 152.54 KiB 43.67 KiB ▂▁▁▁▁▁▁▁███
solid-start.full 55.24 KiB 0 B (0.00%) 169.10 KiB 48.59 KiB ▁▂▂▂▂▂▂▂███

Trend sparkline is historical gzip bytes ending with this PR measurement; lower is better.

@codspeed-hq
Copy link
Copy Markdown

codspeed-hq Bot commented Apr 25, 2026

Merging this PR will not alter performance

✅ 5 untouched benchmarks
⏩ 1 skipped benchmark1


Comparing seanc/unplugin-v3 (a6f58c2) with main (8adbe74)

Open in CodSpeed

Footnotes

  1. 1 benchmark was skipped, so the baseline result was used instead. If it was deleted from the codebase, click here and archive it to remove it from the performance reports.

nx-cloud[bot]

This comment was marked as outdated.

nx-cloud[bot]

This comment was marked as outdated.

nx-cloud[bot]

This comment was marked as resolved.

@SeanCassiere SeanCassiere marked this pull request as ready for review April 25, 2026 02:04
@SeanCassiere SeanCassiere merged commit 8b97002 into main Apr 25, 2026
16 of 17 checks passed
@SeanCassiere SeanCassiere deleted the seanc/unplugin-v3 branch April 25, 2026 02:07
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