Skip to content

Commit 3a155b8

Browse files
committed
feat(rsc): auto optimize use-sync-external-store
1 parent 82d5c05 commit 3a155b8

4 files changed

Lines changed: 39 additions & 7 deletions

File tree

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
'use client'
2+
3+
// @ts-ignore
4+
import { TestClient } from '@vitejs/test-dep-deep-cjs/client'
5+
6+
export function TestDeepCjsClient() {
7+
return (
8+
<div>
9+
[test-dep-deep-cjs-client: <TestClient />]
10+
</div>
11+
)
12+
}

packages/plugin-rsc/examples/basic/src/routes/root.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import { TestTemporaryReference } from './temporary-reference/client'
2929
import { TestUseCache } from './use-cache/server'
3030
import { TestHydrationMismatch } from './hydration-mismatch/server'
3131
import { TestBrowserOnly } from './browser-only/client'
32+
import { TestDeepCjsClient } from './deps/deep-cjs/client'
3233

3334
export function Root(props: { url: URL }) {
3435
return (
@@ -67,6 +68,7 @@ export function Root(props: { url: URL }) {
6768
<TestClientInServer />
6869
<TestServerInServer />
6970
<TestServerInClient />
71+
<TestDeepCjsClient />
7072
<TestActionStateServer />
7173
<TestModuleInvalidationServer />
7274
<TestBrowserOnly />

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
'use client'
22

33
import React from 'react'
4-
import { useSyncExternalStore } from 'use-sync-external-store'
4+
5+
// same as https://github.com/vercel/swr/blob/063fe55dddb95f0b6c3f1637a935c43d732ded78/src/index/use-swr.ts#L3
6+
import { useSyncExternalStore } from 'use-sync-external-store/shim/index.js'
57

68
const h = React.createElement
79

packages/plugin-rsc/examples/basic/vite.config.ts

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -135,12 +135,28 @@ export default { fetch: handler };
135135
minify: false,
136136
manifest: true,
137137
},
138-
optimizeDeps: {
139-
exclude: [
140-
'@vitejs/test-dep-client-in-server/client',
141-
'@vitejs/test-dep-client-in-server2/client',
142-
'@vitejs/test-dep-server-in-client/client',
143-
],
138+
environments: {
139+
client: {
140+
optimizeDeps: {
141+
entries: [
142+
'./src/routes/**/client.tsx',
143+
'./src/framework/browser.entry.tsx',
144+
],
145+
exclude: [
146+
'@vitejs/test-dep-client-in-server/client',
147+
'@vitejs/test-dep-client-in-server2/client',
148+
'@vitejs/test-dep-server-in-client/client',
149+
],
150+
},
151+
},
152+
ssr: {
153+
optimizeDeps: {
154+
// TODO: this should be somehow auto inferred
155+
include: [
156+
'@vitejs/test-dep-deep-cjs > use-sync-external-store/shim/index.js',
157+
],
158+
},
159+
},
144160
},
145161
}) as any
146162

0 commit comments

Comments
 (0)