@@ -22,7 +22,7 @@ use turbopack_core::{
2222#[ derive(
2323 Copy , Clone , Serialize , Deserialize , Eq , PartialEq , TraceRawVcs , ValueDebugFormat , NonLocalValue ,
2424) ]
25- pub enum ClientReferenceMapType {
25+ pub enum ClientManifestEntryType {
2626 EcmascriptClientReference {
2727 module : ResolvedVc < EcmascriptClientReferenceModule > ,
2828 ssr_module : ResolvedVc < Box < dyn Module > > ,
@@ -31,9 +31,11 @@ pub enum ClientReferenceMapType {
3131 ServerComponent ( ResolvedVc < NextServerComponentModule > ) ,
3232}
3333
34+ /// Tracks information about all the css and js client references in the graph as well as how server
35+ /// components depend on them.
3436#[ turbo_tasks:: value]
35- pub struct ClientReferencesSet {
36- pub client_references : FxHashMap < ResolvedVc < Box < dyn Module > > , ClientReferenceMapType > ,
37+ pub struct ClientReferenceManifest {
38+ pub manifest : FxHashMap < ResolvedVc < Box < dyn Module > > , ClientManifestEntryType > ,
3739 // All the server components in the graph.
3840 server_components : FxIndexSet < ResolvedVc < NextServerComponentModule > > ,
3941 // All the server components that depend on each module
@@ -43,7 +45,7 @@ pub struct ClientReferencesSet {
4345 FxHashMap < ResolvedVc < Box < dyn Module > > , RoaringBitmapWrapper > ,
4446}
4547
46- impl ClientReferencesSet {
48+ impl ClientReferenceManifest {
4749 /// Returns all the server components that depend on the given client reference
4850 pub fn server_components_for_client_reference (
4951 & self ,
@@ -64,9 +66,9 @@ impl ClientReferencesSet {
6466#[ turbo_tasks:: function]
6567pub async fn map_client_references (
6668 graph : Vc < SingleModuleGraph > ,
67- ) -> Result < Vc < ClientReferencesSet > > {
69+ ) -> Result < Vc < ClientReferenceManifest > > {
6870 let graph = graph. await ?;
69- let client_references = graph
71+ let manifest = graph
7072 . iter_nodes ( )
7173 . map ( |node| async move {
7274 let module = node. module ;
@@ -76,7 +78,7 @@ pub async fn map_client_references(
7678 {
7779 Ok ( Some ( (
7880 module,
79- ClientReferenceMapType :: EcmascriptClientReference {
81+ ClientManifestEntryType :: EcmascriptClientReference {
8082 module : client_reference_module,
8183 ssr_module : ResolvedVc :: upcast ( client_reference_module. await ?. ssr_module ) ,
8284 } ,
@@ -86,7 +88,7 @@ pub async fn map_client_references(
8688 {
8789 Ok ( Some ( (
8890 module,
89- ClientReferenceMapType :: CssClientReference (
91+ ClientManifestEntryType :: CssClientReference (
9092 client_reference_module. await ?. client_module ,
9193 ) ,
9294 ) ) )
@@ -95,7 +97,7 @@ pub async fn map_client_references(
9597 {
9698 Ok ( Some ( (
9799 module,
98- ClientReferenceMapType :: ServerComponent ( server_component) ,
100+ ClientManifestEntryType :: ServerComponent ( server_component) ,
99101 ) ) )
100102 } else {
101103 Ok ( None )
@@ -108,19 +110,19 @@ pub async fn map_client_references(
108110
109111 let mut server_components = FxIndexSet :: default ( ) ;
110112 let mut module_to_server_component_bits = FxHashMap :: default ( ) ;
111- if !client_references . is_empty ( ) {
113+ if !manifest . is_empty ( ) {
112114 graph. traverse_edges_from_entries_fixed_point (
113115 graph. entry_modules ( ) ,
114116 |parent_info, node| {
115117 let module = node. module ( ) ;
116- let module_type = client_references . get ( & module) ;
118+ let module_type = manifest . get ( & module) ;
117119 let mut should_visit_children = match module_to_server_component_bits. entry ( module)
118120 {
119121 std:: collections:: hash_map:: Entry :: Occupied ( _) => false ,
120122 std:: collections:: hash_map:: Entry :: Vacant ( vacant_entry) => {
121123 // only do this the first time we visit the node.
122124 let bits = vacant_entry. insert ( RoaringBitmap :: new ( ) ) ;
123- if let Some ( ClientReferenceMapType :: ServerComponent (
125+ if let Some ( ClientManifestEntryType :: ServerComponent (
124126 server_component_module,
125127 ) ) = module_type
126128 {
@@ -159,8 +161,8 @@ pub async fn map_client_references(
159161
160162 Ok ( match module_type {
161163 Some (
162- ClientReferenceMapType :: EcmascriptClientReference { .. }
163- | ClientReferenceMapType :: CssClientReference { .. } ,
164+ ClientManifestEntryType :: EcmascriptClientReference { .. }
165+ | ClientManifestEntryType :: CssClientReference { .. } ,
164166 ) => {
165167 // No need to explore these subgraphs ever, these are the leaves in the
166168 // server component graph
@@ -183,17 +185,17 @@ pub async fn map_client_references(
183185 // Filter down to just the client reference modules to reduce datastructure size
184186 let server_components_for_client_references = module_to_server_component_bits
185187 . into_iter ( )
186- . filter_map ( |( k, v) | match client_references . get ( & k) {
188+ . filter_map ( |( k, v) | match manifest . get ( & k) {
187189 Some (
188- ClientReferenceMapType :: CssClientReference ( _)
189- | ClientReferenceMapType :: EcmascriptClientReference { .. } ,
190+ ClientManifestEntryType :: CssClientReference ( _)
191+ | ClientManifestEntryType :: EcmascriptClientReference { .. } ,
190192 ) => Some ( ( k, RoaringBitmapWrapper ( v) ) ) ,
191193 _ => None ,
192194 } )
193195 . collect ( ) ;
194196
195- Ok ( ClientReferencesSet :: cell ( ClientReferencesSet {
196- client_references ,
197+ Ok ( ClientReferenceManifest :: cell ( ClientReferenceManifest {
198+ manifest ,
197199 server_components,
198200 server_components_for_client_references,
199201 } ) )
0 commit comments