@@ -43,14 +43,14 @@ import {
43
43
getEntrySource ,
44
44
hashString ,
45
45
normalizeRelativePath ,
46
- parseIdQuery ,
47
46
sortObject ,
48
47
withRollupError ,
49
48
} from './plugins/utils'
50
49
import { createDebug } from '@hiogawa/utils'
51
50
import { transformScanBuildStrip } from './plugins/scan'
52
51
import { validateImportPlugin } from './plugins/validate-import'
53
52
import { vitePluginFindSourceMapURL } from './plugins/find-source-map-url'
53
+ import { parseCssVirtual , toCssVirtual , parseIdQuery } from './plugins/shared'
54
54
55
55
const BUILD_ASSETS_MANIFEST_NAME = '__vite_rsc_assets_manifest.js'
56
56
@@ -1797,15 +1797,16 @@ function vitePluginRscCss(
1797
1797
} ,
1798
1798
} ,
1799
1799
{
1800
- name : 'rsc:css/dev-ssr -virtual' ,
1800
+ name : 'rsc:css-virtual' ,
1801
1801
resolveId ( source ) {
1802
- if ( source . startsWith ( 'virtual:vite-rsc/css/dev-ssr/ ' ) ) {
1802
+ if ( source . startsWith ( 'virtual:vite-rsc/css? ' ) ) {
1803
1803
return '\0' + source
1804
1804
}
1805
1805
} ,
1806
1806
async load ( id ) {
1807
- if ( id . startsWith ( '\0virtual:vite-rsc/css/dev-ssr/' ) ) {
1808
- id = id . slice ( '\0virtual:vite-rsc/css/dev-ssr/' . length )
1807
+ const parsed = parseCssVirtual ( id )
1808
+ if ( parsed ?. type === 'ssr' ) {
1809
+ id = parsed . id
1809
1810
const { server } = manager
1810
1811
const mod =
1811
1812
await server . environments . ssr . moduleGraph . getModuleByUrl ( id )
@@ -1852,9 +1853,8 @@ function vitePluginRscCss(
1852
1853
continue
1853
1854
}
1854
1855
}
1855
- const importId = `virtual:vite-rsc/importer-resources?importer=${ encodeURIComponent (
1856
- importer ,
1857
- ) } `
1856
+
1857
+ const importId = toCssVirtual ( { id : importer , type : 'rsc' } )
1858
1858
1859
1859
// use dynamic import during dev to delay crawling and discover css correctly.
1860
1860
let replacement : string
@@ -1891,26 +1891,17 @@ function vitePluginRscCss(
1891
1891
}
1892
1892
}
1893
1893
} ,
1894
- resolveId ( source ) {
1895
- if (
1896
- source . startsWith ( 'virtual:vite-rsc/importer-resources?importer=' )
1897
- ) {
1898
- assert ( this . environment . name === 'rsc' )
1899
- return '\0' + source
1900
- }
1901
- } ,
1902
1894
load ( id ) {
1903
1895
const { server } = manager
1904
- if ( id . startsWith ( '\0virtual:vite-rsc/importer-resources?importer=' ) ) {
1905
- const importer = decodeURIComponent (
1906
- parseIdQuery ( id ) . query [ 'importer' ] ! ,
1907
- )
1896
+ const parsed = parseCssVirtual ( id )
1897
+ if ( parsed ?. type === 'rsc' ) {
1898
+ assert ( this . environment . name === 'rsc' )
1899
+ const importer = parsed . id
1908
1900
if ( this . environment . mode === 'dev' ) {
1909
1901
const result = collectCss ( server . environments . rsc ! , importer )
1910
1902
const cssHrefs = result . hrefs . map ( ( href ) => href . slice ( 1 ) )
1911
1903
const jsHrefs = [
1912
- '@id/__x00__virtual:vite-rsc/importer-resources-browser?importer=' +
1913
- encodeURIComponent ( importer ) ,
1904
+ `@id/__x00__${ toCssVirtual ( { id : importer , type : 'rsc-browser' } ) } ` ,
1914
1905
]
1915
1906
const deps = assetsURLOfDeps (
1916
1907
{ css : cssHrefs , js : jsHrefs } ,
@@ -1936,16 +1927,10 @@ function vitePluginRscCss(
1936
1927
`
1937
1928
}
1938
1929
}
1939
- if (
1940
- id . startsWith (
1941
- '\0virtual:vite-rsc/importer-resources-browser?importer=' ,
1942
- )
1943
- ) {
1930
+ if ( parsed ?. type === 'rsc-browser' ) {
1944
1931
assert ( this . environment . name === 'client' )
1945
1932
assert ( this . environment . mode === 'dev' )
1946
- const importer = decodeURIComponent (
1947
- parseIdQuery ( id ) . query [ 'importer' ] ! ,
1948
- )
1933
+ const importer = parsed . id
1949
1934
const result = collectCss ( server . environments . rsc ! , importer )
1950
1935
let code = result . ids
1951
1936
. map ( ( id ) => id . replace ( / ^ \0 / , '' ) )
@@ -1963,14 +1948,13 @@ function vitePluginRscCss(
1963
1948
const mods = collectModuleDependents ( ctx . modules )
1964
1949
for ( const mod of mods ) {
1965
1950
if ( mod . id ) {
1966
- const importer = encodeURIComponent ( mod . id )
1967
1951
invalidteModuleById (
1968
1952
server . environments . rsc ! ,
1969
- `\0virtual:vite- rsc/importer-resources?importer= ${ importer } ` ,
1953
+ `\0` + toCssVirtual ( { id : mod . id , type : ' rsc' } ) ,
1970
1954
)
1971
1955
invalidteModuleById (
1972
1956
server . environments . client ,
1973
- `\0virtual:vite- rsc/importer-resources- browser?importer= ${ importer } ` ,
1957
+ `\0` + toCssVirtual ( { id : mod . id , type : ' rsc- browser' } ) ,
1974
1958
)
1975
1959
}
1976
1960
}
0 commit comments