Skip to content

Commit 16691d6

Browse files
committed
pass inner modules to chunking to match chunking types
1 parent 25038b4 commit 16691d6

File tree

4 files changed

+17
-16
lines changed

4 files changed

+17
-16
lines changed

crates/next-api/src/app.rs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ use turbopack::{
5353
use turbopack_core::{
5454
asset::AssetContent,
5555
chunk::{
56-
availability_info::AvailabilityInfo, ChunkableModule, ChunkableModules, ChunkingContext,
57-
ChunkingContextExt, EvaluatableAsset, EvaluatableAssets,
56+
availability_info::AvailabilityInfo, ChunkableModules, ChunkingContext, ChunkingContextExt,
57+
EvaluatableAsset, EvaluatableAssets,
5858
},
5959
file_source::FileSource,
6060
ident::AssetIdent,
@@ -833,7 +833,7 @@ impl AppProject {
833833
let graph = SingleModuleGraph::new_with_entries_visited(
834834
server_utils
835835
.iter()
836-
.map(|m| **m)
836+
.map(|m| Vc::upcast(**m))
837837
.chain(extra_entries)
838838
.collect(),
839839
VisitedModules::empty(),
@@ -1663,10 +1663,7 @@ impl AppEndpoint {
16631663
let server_utils = client_references
16641664
.server_utils
16651665
.iter()
1666-
.map(|m| async move {
1667-
Ok(*ResolvedVc::try_downcast::<Box<dyn ChunkableModule>>(*m)
1668-
.context("Expected server utils to be chunkable")?)
1669-
})
1666+
.map(async |m| Ok(Vc::upcast(*m.await?.module)))
16701667
.try_join()
16711668
.await?;
16721669
let chunk_group = chunking_context
@@ -1708,7 +1705,7 @@ impl AppEndpoint {
17081705
let chunk_group = chunking_context
17091706
.chunk_group(
17101707
server_component.ident(),
1711-
*ResolvedVc::upcast(server_component),
1708+
Vc::upcast(*server_component.await?.module),
17121709
module_graph,
17131710
Value::new(current_availability_info),
17141711
)

crates/next-core/src/next_client_reference/visit_client_reference.rs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ pub struct ClientReferenceGraphResult {
8181
pub client_references_by_server_component:
8282
FxIndexMap<Option<ResolvedVc<NextServerComponentModule>>, Vec<ResolvedVc<Box<dyn Module>>>>,
8383
pub server_component_entries: Vec<ResolvedVc<NextServerComponentModule>>,
84-
pub server_utils: Vec<ResolvedVc<Box<dyn Module>>>,
84+
pub server_utils: Vec<ResolvedVc<NextServerUtilityModule>>,
8585
pub visited_nodes: ResolvedVc<VisitedClientReferenceGraphNodes>,
8686
}
8787

@@ -147,7 +147,7 @@ impl ClientReferenceGraphResult {
147147
#[derive(Clone, Debug)]
148148
pub struct ServerEntries {
149149
pub server_component_entries: Vec<ResolvedVc<NextServerComponentModule>>,
150-
pub server_utils: Vec<ResolvedVc<Box<dyn Module>>>,
150+
pub server_utils: Vec<ResolvedVc<NextServerUtilityModule>>,
151151
}
152152

153153
#[turbo_tasks::function]
@@ -268,7 +268,7 @@ impl VisitClientReferenceNodeState {
268268
enum VisitClientReferenceNodeType {
269269
ClientReference(ClientReference, ReadRef<RcStr>),
270270
ServerComponentEntry(ResolvedVc<NextServerComponentModule>, ReadRef<RcStr>),
271-
ServerUtilEntry(ResolvedVc<Box<dyn Module>>, ReadRef<RcStr>),
271+
ServerUtilEntry(ResolvedVc<NextServerUtilityModule>, ReadRef<RcStr>),
272272
Internal(ResolvedVc<Box<dyn Module>>, ReadRef<RcStr>),
273273
}
274274

@@ -306,7 +306,9 @@ impl Visit<VisitClientReferenceNode> for VisitClientReference {
306306
// nodes' edges.
307307
VisitClientReferenceNodeType::ClientReference(..) => return Ok(vec![]),
308308
VisitClientReferenceNodeType::Internal(module, _) => module,
309-
VisitClientReferenceNodeType::ServerUtilEntry(module, _) => module,
309+
VisitClientReferenceNodeType::ServerUtilEntry(module, _) => {
310+
ResolvedVc::upcast(module)
311+
}
310312
VisitClientReferenceNodeType::ServerComponentEntry(module, _) => {
311313
ResolvedVc::upcast(module)
312314
}
@@ -370,11 +372,13 @@ impl Visit<VisitClientReferenceNode> for VisitClientReference {
370372
});
371373
}
372374

373-
if ResolvedVc::try_downcast_type::<NextServerUtilityModule>(*module).is_some() {
375+
if let Some(server_util_module) =
376+
ResolvedVc::try_downcast_type::<NextServerUtilityModule>(*module)
377+
{
374378
return Ok(VisitClientReferenceNode {
375379
state: VisitClientReferenceNodeState::InServerUtil,
376380
ty: VisitClientReferenceNodeType::ServerUtilEntry(
377-
*module,
381+
server_util_module,
378382
module.ident().to_string().await?,
379383
),
380384
});

crates/next-core/src/next_server_component/server_component_module.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ fn modifier() -> Vc<RcStr> {
3232

3333
#[turbo_tasks::value(shared)]
3434
pub struct NextServerComponentModule {
35-
module: ResolvedVc<Box<dyn EcmascriptChunkPlaceable>>,
35+
pub module: ResolvedVc<Box<dyn EcmascriptChunkPlaceable>>,
3636
}
3737

3838
#[turbo_tasks::value_impl]

crates/next-core/src/next_server_utility/server_utility_module.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ fn modifier() -> Vc<RcStr> {
3232

3333
#[turbo_tasks::value(shared)]
3434
pub struct NextServerUtilityModule {
35-
module: ResolvedVc<Box<dyn EcmascriptChunkPlaceable>>,
35+
pub module: ResolvedVc<Box<dyn EcmascriptChunkPlaceable>>,
3636
}
3737

3838
#[turbo_tasks::value_impl]

0 commit comments

Comments
 (0)