@@ -43,14 +43,14 @@ import {
4343 getEntrySource ,
4444 hashString ,
4545 normalizeRelativePath ,
46- parseIdQuery ,
4746 sortObject ,
4847 withRollupError ,
4948} from './plugins/utils'
5049import { createDebug } from '@hiogawa/utils'
5150import { transformScanBuildStrip } from './plugins/scan'
5251import { validateImportPlugin } from './plugins/validate-import'
5352import { vitePluginFindSourceMapURL } from './plugins/find-source-map-url'
53+ import { parseCssVirtual , toCssVirtual , parseIdQuery } from './plugins/shared'
5454
5555const BUILD_ASSETS_MANIFEST_NAME = '__vite_rsc_assets_manifest.js'
5656
@@ -1797,15 +1797,16 @@ function vitePluginRscCss(
17971797 } ,
17981798 } ,
17991799 {
1800- name : 'rsc:css/dev-ssr -virtual' ,
1800+ name : 'rsc:css-virtual' ,
18011801 resolveId ( source ) {
1802- if ( source . startsWith ( 'virtual:vite-rsc/css/dev-ssr/ ' ) ) {
1802+ if ( source . startsWith ( 'virtual:vite-rsc/css? ' ) ) {
18031803 return '\0' + source
18041804 }
18051805 } ,
18061806 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
18091810 const { server } = manager
18101811 const mod =
18111812 await server . environments . ssr . moduleGraph . getModuleByUrl ( id )
@@ -1852,9 +1853,8 @@ function vitePluginRscCss(
18521853 continue
18531854 }
18541855 }
1855- const importId = `virtual:vite-rsc/importer-resources?importer=${ encodeURIComponent (
1856- importer ,
1857- ) } `
1856+
1857+ const importId = toCssVirtual ( { id : importer , type : 'rsc' } )
18581858
18591859 // use dynamic import during dev to delay crawling and discover css correctly.
18601860 let replacement : string
@@ -1891,26 +1891,17 @@ function vitePluginRscCss(
18911891 }
18921892 }
18931893 } ,
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- } ,
19021894 load ( id ) {
19031895 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
19081900 if ( this . environment . mode === 'dev' ) {
19091901 const result = collectCss ( server . environments . rsc ! , importer )
19101902 const cssHrefs = result . hrefs . map ( ( href ) => href . slice ( 1 ) )
19111903 const jsHrefs = [
1912- '@id/__x00__virtual:vite-rsc/importer-resources-browser?importer=' +
1913- encodeURIComponent ( importer ) ,
1904+ `@id/__x00__${ toCssVirtual ( { id : importer , type : 'rsc-browser' } ) } ` ,
19141905 ]
19151906 const deps = assetsURLOfDeps (
19161907 { css : cssHrefs , js : jsHrefs } ,
@@ -1936,16 +1927,10 @@ function vitePluginRscCss(
19361927 `
19371928 }
19381929 }
1939- if (
1940- id . startsWith (
1941- '\0virtual:vite-rsc/importer-resources-browser?importer=' ,
1942- )
1943- ) {
1930+ if ( parsed ?. type === 'rsc-browser' ) {
19441931 assert ( this . environment . name === 'client' )
19451932 assert ( this . environment . mode === 'dev' )
1946- const importer = decodeURIComponent (
1947- parseIdQuery ( id ) . query [ 'importer' ] ! ,
1948- )
1933+ const importer = parsed . id
19491934 const result = collectCss ( server . environments . rsc ! , importer )
19501935 let code = result . ids
19511936 . map ( ( id ) => id . replace ( / ^ \0 / , '' ) )
@@ -1963,14 +1948,13 @@ function vitePluginRscCss(
19631948 const mods = collectModuleDependents ( ctx . modules )
19641949 for ( const mod of mods ) {
19651950 if ( mod . id ) {
1966- const importer = encodeURIComponent ( mod . id )
19671951 invalidteModuleById (
19681952 server . environments . rsc ! ,
1969- `\0virtual:vite- rsc/importer-resources?importer= ${ importer } ` ,
1953+ `\0` + toCssVirtual ( { id : mod . id , type : ' rsc' } ) ,
19701954 )
19711955 invalidteModuleById (
19721956 server . environments . client ,
1973- `\0virtual:vite- rsc/importer-resources- browser?importer= ${ importer } ` ,
1957+ `\0` + toCssVirtual ( { id : mod . id , type : ' rsc- browser' } ) ,
19741958 )
19751959 }
19761960 }
0 commit comments