Skip to content

Commit 5a41e3b

Browse files
pi0hi-ogawa
andauthored
perf(rsc): use srvx/node in dev and preview (#964)
Co-authored-by: Hiroshi Ogawa <hi.ogawa.zz@gmail.com>
1 parent 8ea9eda commit 5a41e3b

File tree

4 files changed

+17
-17
lines changed

4 files changed

+17
-17
lines changed

packages/plugin-rsc/examples/e2e/middleware-mode.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import path from 'node:path'
22
import { pathToFileURL } from 'node:url'
33
// @ts-ignore
44
import connect from 'connect'
5-
import { createRequestListener } from '@remix-run/node-fetch-server'
5+
import { toNodeHandler } from 'srvx/node'
66
import sirv from 'sirv'
77
import type { Connect } from 'vite'
88

@@ -28,7 +28,7 @@ async function main() {
2828
const entry = await import(
2929
pathToFileURL(path.resolve('dist/rsc/index.js')).href
3030
)
31-
app.use(createRequestListener(entry.default))
31+
app.use(toNodeHandler(entry.default))
3232
} else {
3333
console.error(`Unknown command: ${command}`)
3434
process.exitCode = 1

packages/plugin-rsc/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@
3939
"prepack": "tsdown"
4040
},
4141
"dependencies": {
42-
"@remix-run/node-fetch-server": "^0.12.0",
4342
"es-module-lexer": "^2.0.0",
4443
"estree-walker": "^3.0.3",
4544
"magic-string": "^0.30.21",
4645
"periscopic": "^4.0.2",
46+
"srvx": "^0.9.8",
4747
"strip-literal": "^3.1.0",
4848
"turbo-stream": "^3.1.0",
4949
"vitefu": "^1.1.1"

packages/plugin-rsc/src/plugin.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import fs from 'node:fs'
33
import { createRequire } from 'node:module'
44
import path from 'node:path'
55
import { pathToFileURL } from 'node:url'
6-
import { createRequestListener } from '@remix-run/node-fetch-server'
6+
import { toNodeHandler } from 'srvx/node'
77
import * as esModuleLexer from 'es-module-lexer'
88
import MagicString from 'magic-string'
99
import * as vite from 'vite'
@@ -573,9 +573,7 @@ export default function vitePluginRsc(
573573
// for example, this restores `base` which is automatically stripped by Vite.
574574
// https://github.com/vitejs/vite/blob/84079a84ad94de4c1ef4f1bdb2ab448ff2c01196/packages/vite/src/node/server/middlewares/base.ts#L18-L20
575575
req.url = req.originalUrl ?? req.url
576-
// ensure catching rejected promise
577-
// https://github.com/mjackson/remix-the-web/blob/b5aa2ae24558f5d926af576482caf6e9b35461dc/packages/node-fetch-server/src/lib/request-listener.ts#L87
578-
await createRequestListener(fetchHandler)(req, res)
576+
await toNodeHandler(fetchHandler)(req, res)
579577
} catch (e) {
580578
next(e)
581579
}
@@ -596,7 +594,7 @@ export default function vitePluginRsc(
596594
const entry = pathToFileURL(entryFile).href
597595
const mod = await import(/* @vite-ignore */ entry)
598596
const fetchHandler = getFetchHandlerExport(mod)
599-
const handler = createRequestListener(fetchHandler)
597+
const handler = toNodeHandler(fetchHandler)
600598

601599
// disable compressions since it breaks html streaming
602600
// https://github.com/vitejs/vite/blob/9f5c59f07aefb1756a37bcb1c0aff24d54288950/packages/vite/src/node/preview.ts#L178
@@ -866,7 +864,7 @@ export default function vitePluginRsc(
866864
if (url.pathname === '/__vite_rsc_load_module_dev_proxy') {
867865
try {
868866
const handler = await createHandler(url)
869-
createRequestListener(handler)(req, res)
867+
await toNodeHandler(handler)(req, res)
870868
} catch (e) {
871869
next(e)
872870
}

pnpm-lock.yaml

Lines changed: 10 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)