Skip to content

Conversation

@birkskyum
Copy link
Member

@birkskyum birkskyum commented Dec 30, 2025

Bumps srvx from 0.9.8 to 0.10.0
https://github.com/h3js/srvx/releases/tag/v0.10.0

Bumps h3 from 2.0.1 rc.6 to rc.7 (which uses srvx 0.10.0)
https://github.com/h3js/h3/releases/tag/v2.0.1-rc.7

Summary by CodeRabbit

  • Chores
    • Updated development dependencies across test suites for improved compatibility and stability.
    • Enhanced TypeScript type safety with improved type annotations.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 30, 2025

📝 Walkthrough

Walkthrough

Batched version bumps: srvx upgraded from ^0.9.8 to ^0.10.0 across many e2e/example/core package.json files; h3 RC updated in packages/start-server-core. A few Express server files add type-only imports and casts to NodeHttp1Handler. No runtime logic changed.

Changes

Cohort / File(s) Summary
React Start e2e projects
e2e/react-start/{basic-react-query,basic-tsr-config,basic,custom-basepath,scroll-restoration,selective-ssr,serialization-adapters,server-functions-global-middleware,server-functions,server-routes-global-middleware,server-routes,streaming-ssr,virtual-routes,website}/package.json
Bump devDependency srvx from ^0.9.8^0.10.0
Solid Start e2e projects
e2e/solid-start/{basic-auth,basic-solid-query,basic-tsr-config,basic,custom-basepath,scroll-restoration,selective-ssr,serialization-adapters,server-functions,server-routes,virtual-routes,website}/package.json
Bump devDependency srvx from ^0.9.8^0.10.0
Vue Start e2e projects
e2e/vue-start/{basic-auth,basic-tsr-config,basic-vue-query,basic,custom-basepath,scroll-restoration,selective-ssr,serialization-adapters,server-functions,server-routes,virtual-routes,website}/package.json
Bump devDependency srvx from ^0.9.8^0.10.0
Examples
examples/react/start-clerk-basic/package.json
Bump dependency srvx from ^0.9.8^0.10.0
Core packages (srvx)
packages/start-plugin-core/package.json
Bump dependency srvx from ^0.9.8^0.10.0
Core packages (h3)
packages/start-server-core/package.json
Update h3-v2 alias from npm:h3@2.0.1-rc.6npm:h3@2.0.1-rc.7
Express server typings
e2e/{react-start,solid-start,vue-start}/custom-basepath/express-server.ts
Add type-only import NodeHttp1Handler from srvx and cast toNodeHandler(...) results to NodeHttp1Handler (type-only changes)

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • fix: bump srvx #6128 — Similar bulk bump of srvx across many package.json files (related dependency change).

Suggested reviewers

  • brenelz

Poem

"🐇 I hopped through package.json tonight,
Bumped srvx so versions gleam and bright.
A tiny type here, a caret there—light chore,
No logic disturbed, I checked every door.
Hops complete, the repo hums—onward I soar! 🥕"

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'bump srvx 0.10.0' directly and clearly summarizes the main change: upgrading the srvx dependency from 0.9.8 to 0.10.0 across multiple files and packages, matching the PR objectives.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings

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.

@nx-cloud
Copy link

nx-cloud bot commented Dec 30, 2025

View your CI Pipeline Execution ↗ for commit 840e811

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

☁️ Nx Cloud last updated this comment at 2025-12-30 16:15:09 UTC

@pkg-pr-new
Copy link

pkg-pr-new bot commented Dec 30, 2025

More templates

@tanstack/arktype-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/arktype-adapter@6257

@tanstack/eslint-plugin-router

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

@tanstack/history

npm i https://pkg.pr.new/TanStack/router/@tanstack/history@6257

@tanstack/nitro-v2-vite-plugin

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

@tanstack/react-router

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

@tanstack/react-router-devtools

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

@tanstack/react-router-ssr-query

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

@tanstack/react-start

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start@6257

@tanstack/react-start-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start-client@6257

@tanstack/react-start-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start-server@6257

@tanstack/router-cli

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

@tanstack/router-core

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

@tanstack/router-devtools

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

@tanstack/router-devtools-core

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

@tanstack/router-generator

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

@tanstack/router-plugin

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

@tanstack/router-ssr-query-core

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

@tanstack/router-utils

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

@tanstack/router-vite-plugin

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

@tanstack/solid-router

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

@tanstack/solid-router-devtools

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

@tanstack/solid-router-ssr-query

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

@tanstack/solid-start

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start@6257

@tanstack/solid-start-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start-client@6257

@tanstack/solid-start-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start-server@6257

@tanstack/start-client-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-client-core@6257

@tanstack/start-fn-stubs

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-fn-stubs@6257

@tanstack/start-plugin-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-plugin-core@6257

@tanstack/start-server-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-server-core@6257

@tanstack/start-static-server-functions

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

@tanstack/start-storage-context

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-storage-context@6257

@tanstack/valibot-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/valibot-adapter@6257

@tanstack/virtual-file-routes

npm i https://pkg.pr.new/TanStack/router/@tanstack/virtual-file-routes@6257

@tanstack/vue-router

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

@tanstack/vue-router-devtools

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

@tanstack/vue-router-ssr-query

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

@tanstack/vue-start

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-start@6257

@tanstack/vue-start-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-start-client@6257

@tanstack/vue-start-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-start-server@6257

@tanstack/zod-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/zod-adapter@6257

commit: 840e811

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
examples/react/start-clerk-basic/package.json (1)

14-16: Internal dependencies should use workspace protocol.

As per coding guidelines, internal dependencies in package.json files should use the workspace:* protocol. The following internal TanStack packages are using version numbers instead:

  • @tanstack/react-router
  • @tanstack/react-router-devtools
  • @tanstack/react-start

Note: This is a pre-existing issue not introduced by this PR, but should be addressed to align with project standards.

Based on coding guidelines, which state: "Use workspace protocol workspace:* for internal dependencies in package.json files"

🔎 Proposed fix to use workspace protocol
-    "@tanstack/react-router": "^1.144.0",
-    "@tanstack/react-router-devtools": "^1.144.0",
-    "@tanstack/react-start": "^1.145.2",
+    "@tanstack/react-router": "workspace:*",
+    "@tanstack/react-router-devtools": "workspace:*",
+    "@tanstack/react-start": "workspace:*",
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c24d12a and 8fa5c76.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (41)
  • e2e/react-start/basic-react-query/package.json
  • e2e/react-start/basic-tsr-config/package.json
  • e2e/react-start/basic/package.json
  • e2e/react-start/custom-basepath/package.json
  • e2e/react-start/scroll-restoration/package.json
  • e2e/react-start/selective-ssr/package.json
  • e2e/react-start/serialization-adapters/package.json
  • e2e/react-start/server-functions-global-middleware/package.json
  • e2e/react-start/server-functions/package.json
  • e2e/react-start/server-routes-global-middleware/package.json
  • e2e/react-start/server-routes/package.json
  • e2e/react-start/streaming-ssr/package.json
  • e2e/react-start/virtual-routes/package.json
  • e2e/react-start/website/package.json
  • e2e/solid-start/basic-auth/package.json
  • e2e/solid-start/basic-solid-query/package.json
  • e2e/solid-start/basic-tsr-config/package.json
  • e2e/solid-start/basic/package.json
  • e2e/solid-start/custom-basepath/package.json
  • e2e/solid-start/scroll-restoration/package.json
  • e2e/solid-start/selective-ssr/package.json
  • e2e/solid-start/serialization-adapters/package.json
  • e2e/solid-start/server-functions/package.json
  • e2e/solid-start/server-routes/package.json
  • e2e/solid-start/virtual-routes/package.json
  • e2e/solid-start/website/package.json
  • e2e/vue-start/basic-auth/package.json
  • e2e/vue-start/basic-tsr-config/package.json
  • e2e/vue-start/basic-vue-query/package.json
  • e2e/vue-start/basic/package.json
  • e2e/vue-start/custom-basepath/package.json
  • e2e/vue-start/scroll-restoration/package.json
  • e2e/vue-start/selective-ssr/package.json
  • e2e/vue-start/serialization-adapters/package.json
  • e2e/vue-start/server-functions/package.json
  • e2e/vue-start/server-routes/package.json
  • e2e/vue-start/virtual-routes/package.json
  • e2e/vue-start/website/package.json
  • examples/react/start-clerk-basic/package.json
  • packages/start-plugin-core/package.json
  • packages/start-server-core/package.json
🧰 Additional context used
📓 Path-based instructions (1)
**/package.json

📄 CodeRabbit inference engine (AGENTS.md)

Use workspace protocol workspace:* for internal dependencies in package.json files

Files:

  • e2e/solid-start/virtual-routes/package.json
  • e2e/vue-start/website/package.json
  • e2e/react-start/virtual-routes/package.json
  • e2e/solid-start/server-functions/package.json
  • e2e/react-start/basic/package.json
  • e2e/solid-start/scroll-restoration/package.json
  • examples/react/start-clerk-basic/package.json
  • e2e/react-start/server-functions-global-middleware/package.json
  • e2e/vue-start/virtual-routes/package.json
  • e2e/vue-start/custom-basepath/package.json
  • e2e/vue-start/scroll-restoration/package.json
  • e2e/solid-start/serialization-adapters/package.json
  • e2e/react-start/basic-react-query/package.json
  • e2e/react-start/server-routes/package.json
  • e2e/solid-start/custom-basepath/package.json
  • e2e/react-start/scroll-restoration/package.json
  • e2e/vue-start/serialization-adapters/package.json
  • e2e/solid-start/basic-tsr-config/package.json
  • e2e/solid-start/website/package.json
  • e2e/react-start/streaming-ssr/package.json
  • e2e/solid-start/basic-solid-query/package.json
  • e2e/solid-start/basic/package.json
  • e2e/vue-start/server-functions/package.json
  • e2e/react-start/basic-tsr-config/package.json
  • packages/start-plugin-core/package.json
  • e2e/react-start/serialization-adapters/package.json
  • e2e/react-start/website/package.json
  • e2e/vue-start/basic-tsr-config/package.json
  • e2e/vue-start/basic/package.json
  • e2e/react-start/selective-ssr/package.json
  • packages/start-server-core/package.json
  • e2e/solid-start/basic-auth/package.json
  • e2e/solid-start/server-routes/package.json
  • e2e/react-start/server-functions/package.json
  • e2e/vue-start/basic-auth/package.json
  • e2e/vue-start/basic-vue-query/package.json
  • e2e/vue-start/server-routes/package.json
  • e2e/react-start/custom-basepath/package.json
  • e2e/vue-start/selective-ssr/package.json
  • e2e/react-start/server-routes-global-middleware/package.json
  • e2e/solid-start/selective-ssr/package.json
🧠 Learnings (3)
📚 Learning: 2025-12-25T13:04:55.492Z
Learnt from: nlynzaad
Repo: TanStack/router PR: 6215
File: e2e/react-start/custom-basepath/package.json:13-17
Timestamp: 2025-12-25T13:04:55.492Z
Learning: In the TanStack Router repository, e2e test scripts are specifically designed to run in CI (which uses a Unix environment), so Unix-specific commands (like `rm -rf`, `&` for backgrounding, and direct environment variable assignments without `cross-env`) are acceptable in e2e test npm scripts.

Applied to files:

  • e2e/solid-start/virtual-routes/package.json
  • e2e/solid-start/scroll-restoration/package.json
  • e2e/vue-start/virtual-routes/package.json
  • e2e/vue-start/scroll-restoration/package.json
  • e2e/vue-start/serialization-adapters/package.json
  • e2e/solid-start/basic-tsr-config/package.json
  • e2e/vue-start/basic-tsr-config/package.json
  • e2e/vue-start/selective-ssr/package.json
  • e2e/solid-start/selective-ssr/package.json
📚 Learning: 2025-11-02T16:16:24.898Z
Learnt from: nlynzaad
Repo: TanStack/router PR: 5732
File: packages/start-client-core/src/client/hydrateStart.ts:6-9
Timestamp: 2025-11-02T16:16:24.898Z
Learning: In packages/start-client-core/src/client/hydrateStart.ts, the `import/no-duplicates` ESLint disable is necessary for imports from `#tanstack-router-entry` and `#tanstack-start-entry` because both aliases resolve to the same placeholder file (`fake-start-entry.js`) in package.json during static analysis, even though they resolve to different files at runtime.

Applied to files:

  • packages/start-server-core/package.json
📚 Learning: 2025-12-06T15:03:07.223Z
Learnt from: CR
Repo: TanStack/router PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-06T15:03:07.223Z
Learning: Applies to **/package.json : Use workspace protocol `workspace:*` for internal dependencies in package.json files

Applied to files:

  • packages/start-server-core/package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Preview
  • GitHub Check: Test
🔇 Additional comments (19)
e2e/react-start/basic/package.json (1)

45-45: srvx version bump requires clarification.

The devDependency format "^0.10.0" is correct for an external package; the workspace protocol does not apply here since srvx is not an internal TanStack dependency.

However, srvx version 0.10.0 could not be verified in public npm registries. The latest published versions appear to be 0.9.7–0.9.8. Clarify whether this is a pre-release, nightly build, private version, or if the version specifier should be adjusted.

e2e/vue-start/server-routes/package.json (1)

34-34: srvx 0.10.0 does not exist on npm—this will fail dependency resolution.

Version 0.10.0 is not published to npm. The latest available version is 0.9.8. Downgrade to "srvx": "^0.9.8" to allow the package to install. (No known security vulnerabilities exist for srvx itself.)

⛔ Skipped due to learnings
Learnt from: CR
Repo: TanStack/router PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-06T15:03:07.223Z
Learning: Applies to **/package.json : Use workspace protocol `workspace:*` for internal dependencies in package.json files
e2e/react-start/basic-tsr-config/package.json (1)

25-25: The workspace protocol is correctly applied to internal dependencies in this file.

This package.json correctly uses workspace:^ for all @tanstack/* internal dependencies (@tanstack/react-router, @tanstack/react-start, @tanstack/router-e2e-utils). The srvx external dependency correctly uses ^0.10.0 format (not workspace protocol, which only applies to internal dependencies). Both srvx 0.10.0 and h3 2.0.1-rc.7 exist on npm; note that h3 2.0.1-rc.7 is a pre-release version used in a different package file (packages/start-server-core/package.json).

e2e/solid-start/selective-ssr/package.json (1)

23-23: LGTM! Clean version bump.

The srvx devDependency upgrade to ^0.10.0 is consistent with the PR objective, and all internal TanStack dependencies correctly use the workspace:^ protocol as per coding guidelines.

e2e/vue-start/basic-auth/package.json (1)

34-34: LGTM! Version bump applied correctly.

The srvx upgrade to ^0.10.0 is properly configured, and workspace dependencies follow the required protocol.

e2e/solid-start/basic-tsr-config/package.json (1)

23-23: LGTM! Dependency update is clean.

The srvx version bump to ^0.10.0 is correctly applied, and all workspace dependencies use the proper protocol.

e2e/react-start/server-functions/package.json (1)

38-38: LGTM! Consistent version upgrade.

The srvx devDependency upgrade to ^0.10.0 aligns with the PR objective, and workspace dependencies are correctly configured.

e2e/solid-start/virtual-routes/package.json (1)

31-31: LGTM! Version update applied correctly.

The srvx upgrade to ^0.10.0 is properly configured, and all internal dependencies use the required workspace protocol.

e2e/solid-start/basic-solid-query/package.json (1)

32-32: LGTM! Dependency upgrade is correct.

The srvx version bump to ^0.10.0 is properly applied, and workspace dependencies follow the required protocol.

e2e/react-start/scroll-restoration/package.json (1)

35-35: LGTM! Clean dependency update.

The srvx upgrade to ^0.10.0 is correctly configured, and all workspace dependencies use the proper protocol.

e2e/vue-start/selective-ssr/package.json (1)

23-23: LGTM! Final version bump looks good.

The srvx devDependency upgrade to ^0.10.0 completes the consistent batch update across all e2e packages, and workspace dependencies are correctly configured.

e2e/react-start/basic-react-query/package.json (1)

36-36: LGTM!

The srvx devDependency update is consistent with the PR-wide version bump.

e2e/vue-start/custom-basepath/package.json (1)

28-28: LGTM!

The srvx devDependency update is consistent with the PR-wide version bump.

e2e/react-start/virtual-routes/package.json (1)

35-35: LGTM!

The srvx devDependency update is consistent with the PR-wide version bump.

e2e/react-start/streaming-ssr/package.json (1)

28-28: LGTM!

The srvx devDependency update is consistent with the PR-wide version bump.

e2e/react-start/serialization-adapters/package.json (1)

31-31: LGTM!

The srvx devDependency update is consistent with the PR-wide version bump.

e2e/react-start/server-routes/package.json (1)

38-38: LGTM!

The srvx devDependency update is consistent with the PR-wide version bump.

e2e/solid-start/serialization-adapters/package.json (1)

27-27: LGTM!

The srvx devDependency update is consistent with the PR-wide version bump.

e2e/solid-start/scroll-restoration/package.json (1)

31-31: srvx version 0.10.0 exists on npm and is the latest version.

The devDependency is correctly specified. No breaking changes or migration issues were identified in available release documentation.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (2)
e2e/react-start/custom-basepath/express-server.ts (1)

3-3: Verify that the type assertion is necessary for srvx 0.10.0.

Same concern as in e2e/vue-start/custom-basepath/express-server.ts: type assertions bypass TypeScript's type checking. Verify whether the explicit cast to NodeHttp1Handler is required or if toNodeHandler() already provides the correct type in srvx 0.10.0.

Based on coding guidelines, TypeScript strict mode with extensive type safety is required.

Also applies to: 21-21, 32-32

e2e/solid-start/custom-basepath/express-server.ts (1)

3-3: Verify that the type assertion is necessary for srvx 0.10.0.

Same concern as in e2e/vue-start/custom-basepath/express-server.ts and e2e/react-start/custom-basepath/express-server.ts: type assertions bypass TypeScript's type checking. Verify whether the explicit cast to NodeHttp1Handler is required or if toNodeHandler() already provides the correct type in srvx 0.10.0.

Based on coding guidelines, TypeScript strict mode with extensive type safety is required.

Also applies to: 21-21, 32-32

📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8fa5c76 and 840e811.

📒 Files selected for processing (3)
  • e2e/react-start/custom-basepath/express-server.ts
  • e2e/solid-start/custom-basepath/express-server.ts
  • e2e/vue-start/custom-basepath/express-server.ts
🧰 Additional context used
📓 Path-based instructions (2)
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

Use TypeScript strict mode with extensive type safety for all code

Files:

  • e2e/react-start/custom-basepath/express-server.ts
  • e2e/vue-start/custom-basepath/express-server.ts
  • e2e/solid-start/custom-basepath/express-server.ts
**/*.{js,ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

Implement ESLint rules for router best practices using the ESLint plugin router

Files:

  • e2e/react-start/custom-basepath/express-server.ts
  • e2e/vue-start/custom-basepath/express-server.ts
  • e2e/solid-start/custom-basepath/express-server.ts
🧠 Learnings (2)
📚 Learning: 2025-12-06T15:03:07.223Z
Learnt from: CR
Repo: TanStack/router PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-06T15:03:07.223Z
Learning: Applies to **/*.{ts,tsx} : Use TypeScript strict mode with extensive type safety for all code

Applied to files:

  • e2e/react-start/custom-basepath/express-server.ts
📚 Learning: 2025-11-02T16:16:24.898Z
Learnt from: nlynzaad
Repo: TanStack/router PR: 5732
File: packages/start-client-core/src/client/hydrateStart.ts:6-9
Timestamp: 2025-11-02T16:16:24.898Z
Learning: In packages/start-client-core/src/client/hydrateStart.ts, the `import/no-duplicates` ESLint disable is necessary for imports from `#tanstack-router-entry` and `#tanstack-start-entry` because both aliases resolve to the same placeholder file (`fake-start-entry.js`) in package.json during static analysis, even though they resolve to different files at runtime.

Applied to files:

  • e2e/react-start/custom-basepath/express-server.ts
  • e2e/vue-start/custom-basepath/express-server.ts
🧬 Code graph analysis (3)
e2e/react-start/custom-basepath/express-server.ts (1)
e2e/vue-start/basic/server.js (1)
  • nodeHandler (12-12)
e2e/vue-start/custom-basepath/express-server.ts (1)
e2e/vue-start/basic/server.js (1)
  • nodeHandler (12-12)
e2e/solid-start/custom-basepath/express-server.ts (1)
e2e/vue-start/basic/server.js (1)
  • nodeHandler (12-12)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Test

@@ -1,5 +1,6 @@
import express from 'express'
import { toNodeHandler } from 'srvx/node'
import type { NodeHttp1Handler } from 'srvx'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

cat -n e2e/vue-start/custom-basepath/express-server.ts

Repository: TanStack/router

Length of output: 1685


🌐 Web query:

srvx 0.10.0 toNodeHandler return type TypeScript

💡 Result:

toNodeHandler returns a Node.js request listener: (req: http.IncomingMessage, res: http.ServerResponse) => void — i.e. a standard Node (IncomingMessage, ServerResponse) => void handler. [1][2]

Sources:

  • h3 utils / adapters (toNodeHandler description). [1]
  • h3 bundled entry showing toNodeHandler export and Node handler mapping. [2]

🏁 Script executed:

# Search for srvx package and its types
find . -name "package.json" -type f | xargs grep -l '"srvx"' | head -5

Repository: TanStack/router

Length of output: 289


🏁 Script executed:

# Check if srvx types are available in node_modules or type definitions
fd -e d.ts -e ts "srvx" --type f | grep -E "(node_modules|types)" | head -10

Repository: TanStack/router

Length of output: 41


🌐 Web query:

srvx NodeHttp1Handler type definition

💡 Result:

I couldn't find a public definition for "NodeHttp1Handler" named type tied to srvx. Can you tell me where you saw that type (file/repo/link) or paste the surrounding code? With that I can fetch or reconstruct the exact TypeScript definition.


🏁 Script executed:

# Check srvx version in the e2e project
cat e2e/vue-start/custom-basepath/package.json

Repository: TanStack/router

Length of output: 1157


🏁 Script executed:

# Search for any other uses of NodeHttp1Handler in the codebase
rg "NodeHttp1Handler" --type ts --type tsx

Repository: TanStack/router

Length of output: 86


🏁 Script executed:

# Search for srvx imports to understand how it's being used
rg "from 'srvx" --type ts --type tsx -A 2

Repository: TanStack/router

Length of output: 86


🏁 Script executed:

# Search for NodeHttp1Handler without file type restrictions
rg "NodeHttp1Handler"

Repository: TanStack/router

Length of output: 1075


🏁 Script executed:

# Search for srvx imports more broadly
rg "from 'srvx" -A 2

Repository: TanStack/router

Length of output: 2405


🌐 Web query:

srvx npm package 0.10.0 NodeHttp1Handler type

💡 Result:

I don’t have enough detail — are you asking for (A) the TypeScript type definition of NodeHttp1Handler exported by srvx@0.10.0, (B) how to import/use NodeHttp1Handler with srvx, or (C) help resolving a specific TypeScript/compile error involving NodeHttp1Handler? If (C), paste the error.


🌐 Web query:

srvx npm package github repository

💡 Result:

The srvx repository is on GitHub: https://github.com/h3js/srvx. [1]

NPM package page for srvx (package "srvx")—links to the same repository and docs at srvx.h3.dev. [2]


🏁 Script executed:

# Check if there are any type definition files in the project that might define NodeHttp1Handler
rg "type NodeHttp1Handler"

Repository: TanStack/router

Length of output: 41


🏁 Script executed:

# Check if there's a tsconfig or types configuration that might help
find . -name "tsconfig.json" -type f | xargs grep -l "types" | head -3

Repository: TanStack/router

Length of output: 226


🌐 Web query:

site:github.com/h3js/srvx NodeHttp1Handler

💡 Result:

I searched the h3js/srvx repository and related package pages — there is no file, symbol, or reference named "NodeHttp1Handler" in that repo. Sources checked: the srvx GitHub repo and its npm/docs pages. [1][2]

Sources:

  • h3js/srvx repository (code listing). [1]
  • srvx documentation / npm listing. [2]

🌐 Web query:

srvx toNodeHandler type signature TypeScript definition

💡 Result:

The toNodeHandler adapter converts a fetch-style handler (Request => Response | Promise) to a Node.js HTTP handler (IncomingMessage, ServerResponse) => void | Promise.

TypeScript-style signature (concise):

  • Input handler type: (req: Request) => Response | Promise
  • Output Node handler type: (req: import("node:http").IncomingMessage, res: import("node:http").ServerResponse) => void | Promise

Sources: h3 docs (adapters / toNodeHandler) and h3 distribution exports. [1][2]

References:
[1] h3 — More utils / Adapters (toNodeHandler).
[2] h3 distribution (exports showing toNodeHandler).


🏁 Script executed:

# Search for where NodeHttp1Handler might be defined locally
rg "NodeHttp1Handler\s*=" --type ts

Repository: TanStack/router

Length of output: 41


🏁 Script executed:

# Check type definitions in packages
find . -path ./node_modules -prune -o -name "*.d.ts" -type f -print | xargs grep -l "NodeHttp1Handler" 2>/dev/null

Repository: TanStack/router

Length of output: 43


🏁 Script executed:

# Check the actual srvx export - maybe it's under a different name
rg "export.*type.*Handler" packages/ e2e/ | grep -i "http\|node"

Repository: TanStack/router

Length of output: 41


🏁 Script executed:

# Check if the project even compiles - look for build errors or type check results
find . -name "tsconfig.json" -path "*/e2e/vue-start/custom-basepath*" -exec cat {} \;

Repository: TanStack/router

Length of output: 648


🏁 Script executed:

# Search for any .d.ts files that might define this type
find . -type f -name "*.d.ts" | head -20

Repository: TanStack/router

Length of output: 1221


🌐 Web query:

srvx h3 nodejs handler type exports what is exported

💡 Result:

Short answer: srvx exports a runtime-compatible fetch handler API (use export default { fetch(request) { ... } }) and also exports the extended ServerRequest type (request.ip etc.) plus the serve helper for programmatic Node.js use. See the Fetch Handler / Guide. [1][2]

Sources:
[1] srvx Fetch Handler docs — mentions fetch handler and ServerRequest.
[2] srvx Getting Started / guide — shows export default handler and serve usage.


Remove the non-existent type assertion or define NodeHttp1Handler locally.

NodeHttp1Handler is imported from 'srvx' but doesn't exist in that package. The type assertions on lines 21 and 32 cast to a non-existent type, which defeats the purpose of TypeScript strict mode and the coding guideline requiring "extensive type safety." The actual return type of toNodeHandler() is (req: IncomingMessage, res: ServerResponse) => void | Promise<void>. Either remove the assertions if the return type is already correct, or define NodeHttp1Handler locally to match the expected signature.

Also applies to: 21-21, 32-32

🤖 Prompt for AI Agents
In e2e/vue-start/custom-basepath/express-server.ts around lines 3, 21 and 32:
the file imports a non-existent NodeHttp1Handler from 'srvx' and then casts to
that type on lines 21 and 32; remove the faulty import and the two casts, or
alternatively declare a local type alias matching the actual signature "(req:
IncomingMessage, res: ServerResponse) => void | Promise<void>" (export/type
alias at top) and use that local type instead of NodeHttp1Handler so TypeScript
strict mode is satisfied and the toNodeHandler() return is correctly typed.

@schiller-manuel schiller-manuel merged commit 5438653 into main Dec 30, 2025
6 checks passed
@schiller-manuel schiller-manuel deleted the bump-srvx-0.10.0 branch December 30, 2025 16:36
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.

3 participants