@@ -14,7 +14,9 @@ use turbopack_core::{
1414 asset:: { Asset , AssetContent } ,
1515 chunk:: { ChunkingContext , ModuleChunkItemIdExt , ModuleId as TurbopackModuleId } ,
1616 module_graph:: async_module_info:: AsyncModulesInfo ,
17- output:: { OutputAsset , OutputAssets , OutputAssetsReference , OutputAssetsWithReferenced } ,
17+ output:: {
18+ OutputAsset , OutputAssetsReference , OutputAssetsReferences , OutputAssetsWithReferenced ,
19+ } ,
1820} ;
1921use turbopack_ecmascript:: utils:: StringifyJs ;
2022
@@ -109,9 +111,13 @@ pub struct ClientReferenceManifest {
109111impl OutputAssetsReference for ClientReferenceManifest {
110112 #[ turbo_tasks:: function]
111113 async fn references ( self : Vc < Self > ) -> Result < Vc < OutputAssetsWithReferenced > > {
112- Ok ( OutputAssetsWithReferenced :: from_assets (
113- * build_manifest ( self ) . await ?. references ,
114- ) )
114+ Ok ( OutputAssetsWithReferenced {
115+ assets : ResolvedVc :: cell ( vec ! [ ] ) ,
116+ references : ResolvedVc :: cell ( vec ! [ ResolvedVc :: upcast(
117+ build_manifest( self ) . await ?. references,
118+ ) ] ) ,
119+ }
120+ . cell ( ) )
115121 }
116122}
117123
@@ -140,7 +146,7 @@ impl Asset for ClientReferenceManifest {
140146#[ turbo_tasks:: value( shared) ]
141147struct ClientReferenceManifestResult {
142148 content : ResolvedVc < AssetContent > ,
143- references : ResolvedVc < OutputAssets > ,
149+ references : ResolvedVc < OutputAssetsReferences > ,
144150}
145151
146152#[ turbo_tasks:: function]
@@ -166,7 +172,7 @@ async fn build_manifest(
166172 ) ;
167173 async move {
168174 let mut entry_manifest: SerializedClientReferenceManifest = Default :: default ( ) ;
169- let mut references = FxIndexSet :: default ( ) ;
175+ let mut references = Vec :: new ( ) ;
170176 let chunk_suffix_path = next_config. chunk_suffix_path ( ) . owned ( ) . await ?;
171177 let prefix_path = next_config. computed_asset_prefix ( ) . owned ( ) . await ?;
172178 let suffix_path = chunk_suffix_path. unwrap_or_default ( ) ;
@@ -259,14 +265,17 @@ async fn build_manifest(
259265 let ( client_chunks_paths, client_is_async) = if let Some ( client_assets) =
260266 client_component_client_chunks. get ( & app_client_reference_ty)
261267 {
262- let client_chunks = client_assets. primary_assets ( ) . await ?;
263- let client_referenced_assets = client_assets. referenced_assets ( ) . await ?;
264- references. extend ( client_chunks. iter ( ) ) ;
265- references. extend ( client_referenced_assets. iter ( ) ) ;
266-
267- let client_chunks_paths =
268- cached_chunk_paths ( & mut client_chunk_path_cache, client_chunks. iter ( ) . copied ( ) )
269- . await ?;
268+ let client_chunks = client_assets. primary_assets ( ) . to_resolved ( ) . await ?;
269+ references. push ( ResolvedVc :: upcast ( client_chunks) ) ;
270+ references. push ( ResolvedVc :: upcast (
271+ client_assets. references ( ) . to_resolved ( ) . await ?,
272+ ) ) ;
273+
274+ let client_chunks_paths = cached_chunk_paths (
275+ & mut client_chunk_path_cache,
276+ client_chunks. await ?. into_iter ( ) . copied ( ) ,
277+ )
278+ . await ?;
270279
271280 let chunk_paths = client_chunks_paths
272281 . filter_map ( |( _, chunk_path) | {
@@ -312,14 +321,16 @@ async fn build_manifest(
312321 } else if let Some ( ssr_assets) =
313322 client_component_ssr_chunks. get ( & app_client_reference_ty)
314323 {
315- let ssr_chunks = ssr_assets. primary_assets ( ) . await ?;
316- let ssr_referenced_assets = ssr_assets. referenced_assets ( ) . await ?;
317- references. extend ( ssr_chunks. iter ( ) ) ;
318- references. extend ( ssr_referenced_assets. iter ( ) ) ;
319-
320- let ssr_chunks_paths =
321- cached_chunk_paths ( & mut ssr_chunk_path_cache, ssr_chunks. iter ( ) . copied ( ) )
322- . await ?;
324+ let ssr_chunks = ssr_assets. primary_assets ( ) . to_resolved ( ) . await ?;
325+ let ssr_referenced_assets = ssr_assets. references ( ) . to_resolved ( ) . await ?;
326+ references. push ( ResolvedVc :: upcast ( ssr_chunks) ) ;
327+ references. push ( ResolvedVc :: upcast ( ssr_referenced_assets) ) ;
328+
329+ let ssr_chunks_paths = cached_chunk_paths (
330+ & mut ssr_chunk_path_cache,
331+ ssr_chunks. await ?. into_iter ( ) . copied ( ) ,
332+ )
333+ . await ?;
323334 let chunk_paths = ssr_chunks_paths
324335 . filter_map ( |( _, chunk_path) | {
325336 node_root_ref
0 commit comments