Skip to content

Commit 6edf87f

Browse files
Merge remote-tracking branch 'upstream/main' into chore-rsc-nightly
2 parents c88bc9a + 3c5de79 commit 6edf87f

File tree

15 files changed

+164
-28
lines changed

15 files changed

+164
-28
lines changed

packages/plugin-rsc/CHANGELOG.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,27 @@
1+
## <small>[0.4.17](https://github.com/vitejs/vite-plugin-react/compare/[email protected]@0.4.17) (2025-08-05)</small>
2+
### Bug Fixes
3+
4+
* **deps:** update all non-major dependencies ([#670](https://github.com/vitejs/vite-plugin-react/issues/670)) ([61d777d](https://github.com/vitejs/vite-plugin-react/commit/61d777ddc8524256f890f43a2a78dbfbfd1e97ac))
5+
* **rsc:** keep manually added link stylesheet during dev ([#663](https://github.com/vitejs/vite-plugin-react/issues/663)) ([ac20b31](https://github.com/vitejs/vite-plugin-react/commit/ac20b31279f6884169503ef6e5786639c93251df))
6+
* **rsc:** optimize `use-sync-external-store` ([#674](https://github.com/vitejs/vite-plugin-react/issues/674)) ([556de15](https://github.com/vitejs/vite-plugin-react/commit/556de15191eb2dfa26d9c0ba396c219d4b4a2dd4))
7+
8+
### Documentation
9+
10+
* **rsc:** notes on CSS support ([#673](https://github.com/vitejs/vite-plugin-react/issues/673)) ([9b2741f](https://github.com/vitejs/vite-plugin-react/commit/9b2741f3dc3da8e9e2ef486ab8d7eaa317230f7d))
11+
12+
### Miscellaneous Chores
13+
14+
* **rsc:** tweak types and examples ([#682](https://github.com/vitejs/vite-plugin-react/issues/682)) ([7b07098](https://github.com/vitejs/vite-plugin-react/commit/7b07098746a672950f278ea7edffd04834133d1f))
15+
16+
### Code Refactoring
17+
18+
* **rsc:** update `@mjackson/node-fetch-server` to `@remix-run/node-fetch-server` ([#680](https://github.com/vitejs/vite-plugin-react/issues/680)) ([97b5f1b](https://github.com/vitejs/vite-plugin-react/commit/97b5f1b26c2260825447c7e9781f1b168bebbe62))
19+
20+
### Tests
21+
22+
* **rsc:** test `React.cache` ([#668](https://github.com/vitejs/vite-plugin-react/issues/668)) ([26ad4ad](https://github.com/vitejs/vite-plugin-react/commit/26ad4adcb69affb8932151f245b25a8fcf95c85a))
23+
* **rsc:** test shared module hmr ([#671](https://github.com/vitejs/vite-plugin-react/issues/671)) ([775ac61](https://github.com/vitejs/vite-plugin-react/commit/775ac6157ef7af545b4cb03ff116a01c7cffa815))
24+
125
## <small>[0.4.16](https://github.com/vitejs/vite-plugin-react/compare/[email protected]@0.4.16) (2025-08-01)</small>
226
### Features
327

packages/plugin-rsc/e2e/basic.test.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ test.describe('dev-non-optimized-cjs', () => {
5252
const editor = f.createEditor('vite.config.ts')
5353
editor.edit((s) =>
5454
s.replace(
55-
`'@vitejs/test-dep-transitive-cjs > use-sync-external-store/shim/index.js',`,
55+
`include: ['@vitejs/test-dep-transitive-cjs > @vitejs/test-dep-cjs'],`,
5656
``,
5757
),
5858
)
@@ -941,9 +941,10 @@ function defineTest(f: Fixture) {
941941
test('transitive cjs dep', async ({ page }) => {
942942
await page.goto(f.url())
943943
await waitForHydration(page)
944-
await expect(page.getByTestId('transitive-cjs-client')).toHaveText(
945-
'ok:browser',
946-
)
944+
await expect(page.getByTestId('transitive-cjs-client')).toHaveText('ok')
945+
await expect(
946+
page.getByTestId('transitive-use-sync-external-store-client'),
947+
).toHaveText('ok:browser')
947948
})
948949

949950
test('use cache function', async ({ page }) => {

packages/plugin-rsc/examples/basic/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"@types/react-dom": "^19.1.7",
2323
"@vitejs/plugin-react": "latest",
2424
"@vitejs/test-dep-transitive-cjs": "file:./test-dep/transitive-cjs",
25+
"@vitejs/test-dep-transitive-use-sync-external-store": "file:./test-dep/transitive-use-sync-external-store",
2526
"@vitejs/test-dep-client-in-server": "file:./test-dep/client-in-server",
2627
"@vitejs/test-dep-client-in-server2": "file:./test-dep/client-in-server2",
2728
"@vitejs/test-dep-server-in-client": "file:./test-dep/server-in-client",

packages/plugin-rsc/examples/basic/src/routes/deps/transitive-cjs/client.tsx

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,18 @@
33
// @ts-ignore
44
import { TestClient } from '@vitejs/test-dep-transitive-cjs/client'
55

6+
// @ts-ignore
7+
import { TestClient as TestClient2 } from '@vitejs/test-dep-transitive-use-sync-external-store/client'
8+
69
export function TestTransitiveCjsClient() {
710
return (
8-
<div>
9-
[test-dep-transitive-cjs-client: <TestClient />]
10-
</div>
11+
<>
12+
<div>
13+
[test-dep-transitive-cjs-client: <TestClient />]
14+
</div>
15+
<div>
16+
[test-dep-transitive-use-sync-external-store-client: <TestClient2 />]
17+
</div>
18+
</>
1119
)
1220
}

packages/plugin-rsc/examples/basic/src/routes/hmr-shared/atomic/client.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ export function TestClient({
99
testSharedFromServer: string
1010
}) {
1111
React.useEffect(() => {
12-
console.log({ testShared, testSharedFromServer })
1312
if (testShared !== testSharedFromServer) {
13+
console.log({ testShared, testSharedFromServer })
1414
throw new Error(
1515
`Mismatch: ${JSON.stringify({ testShared, testSharedFromServer })}`,
1616
)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
exports.ok = 'ok'
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"name": "@vitejs/test-dep-cjs",
3+
"private": true,
4+
"type": "commonjs",
5+
"exports": "./index.js",
6+
"peerDependencies": {
7+
"react": "*"
8+
}
9+
}

packages/plugin-rsc/examples/basic/test-dep/transitive-cjs/client.js

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,16 @@
22

33
import React from 'react'
44

5-
// similar to swr
6-
// https://github.com/vercel/swr/blob/063fe55dddb95f0b6c3f1637a935c43d732ded78/src/index/use-swr.ts#L3
7-
import { useSyncExternalStore } from 'use-sync-external-store/shim/index.js'
5+
import { ok } from '@vitejs/test-dep-cjs'
86

97
const h = React.createElement
108

11-
const noopStore = () => () => {}
12-
139
export function TestClient() {
14-
const value = useSyncExternalStore(
15-
noopStore,
16-
() => 'ok:browser',
17-
() => 'ok:ssr',
18-
)
19-
2010
return h(
2111
'span',
2212
{
2313
'data-testid': 'transitive-cjs-client',
2414
},
25-
value,
15+
ok,
2616
)
2717
}

packages/plugin-rsc/examples/basic/test-dep/transitive-cjs/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"./client": "./client.js"
77
},
88
"dependencies": {
9-
"use-sync-external-store": "^1.5.0"
9+
"@vitejs/test-dep-cjs": "file:../cjs"
1010
},
1111
"peerDependencies": {
1212
"react": "*"
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
'use client'
2+
3+
import React from 'react'
4+
5+
// similar to
6+
// https://github.com/vercel/swr/blob/063fe55dddb95f0b6c3f1637a935c43d732ded78/src/index/use-swr.ts#L3
7+
// https://github.com/TanStack/store/blob/1d1323283e79059821d6c731eaaee60e4143dbc2/packages/react-store/src/index.ts#L1
8+
import { useSyncExternalStore } from 'use-sync-external-store/shim/index.js'
9+
10+
const h = React.createElement
11+
12+
const noopStore = () => () => {}
13+
14+
export function TestClient() {
15+
const value = useSyncExternalStore(
16+
noopStore,
17+
() => 'ok:browser',
18+
() => 'ok:ssr',
19+
)
20+
21+
return h(
22+
'span',
23+
{
24+
'data-testid': 'transitive-use-sync-external-store-client',
25+
},
26+
value,
27+
)
28+
}

0 commit comments

Comments
 (0)