Skip to content

Commit 72bdf68

Browse files
committed
Remove ChunkingModule
1 parent 8590889 commit 72bdf68

File tree

60 files changed

+772
-987
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+772
-987
lines changed

crates/next-api/src/dynamic_imports.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ use turbo_tasks::{
3030
debug::ValueDebugFormat, trace::TraceRawVcs,
3131
};
3232
use turbopack_core::{
33-
chunk::{ChunkableModule, ChunkingContext, availability_info::AvailabilityInfo},
33+
chunk::{ChunkingContext, availability_info::AvailabilityInfo},
3434
module::Module,
3535
module_graph::{ModuleGraph, ModuleGraphLayer},
3636
output::{OutputAssetsReference, OutputAssetsWithReferenced},
@@ -55,7 +55,7 @@ pub(crate) async fn collect_next_dynamic_chunks(
5555
let dynamic_import_chunks = dynamic_import_entries
5656
.iter()
5757
.map(|(dynamic_entry, parent_client_reference)| async move {
58-
let module = ResolvedVc::upcast::<Box<dyn ChunkableModule>>(*dynamic_entry);
58+
let module = ResolvedVc::upcast::<Box<dyn Module>>(*dynamic_entry);
5959

6060
// This is the availability info for the parent chunk group, i.e. the client reference
6161
// containing the next/dynamic imports

crates/next-api/src/pages.rs

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ use turbopack::{
4444
use turbopack_core::{
4545
asset::AssetContent,
4646
chunk::{
47-
ChunkGroupResult, ChunkingContext, ChunkingContextExt, EvaluatableAsset, EvaluatableAssets,
48-
availability_info::AvailabilityInfo,
47+
ChunkGroupResult, ChunkType, ChunkingContext, ChunkingContextExt, EvaluatableAsset,
48+
EvaluatableAssets, availability_info::AvailabilityInfo,
4949
},
5050
context::AssetContext,
5151
file_source::FileSource,
@@ -658,14 +658,32 @@ impl PageEndpoint {
658658
self.source(),
659659
this.pathname.clone(),
660660
);
661+
let is_chunkable = {
662+
let page_loader_resolved = page_loader.to_resolved().await?;
663+
let configs = this
664+
.pages_project
665+
.project()
666+
.client_chunking_context()
667+
.chunking_configs()
668+
.await?;
669+
let mut chunkable = false;
670+
for (chunk_type, _) in configs.iter() {
671+
if *chunk_type.accepts_module(*page_loader_resolved).await? {
672+
chunkable = true;
673+
break;
674+
}
675+
}
676+
chunkable
677+
};
661678
if matches!(
662679
*this.pages_project.project().next_mode().await?,
663680
NextMode::Development
664-
) && let Some(chunkable) = ResolvedVc::try_downcast(page_loader.to_resolved().await?)
681+
) && is_chunkable
665682
{
683+
let module = page_loader.to_resolved().await?;
666684
return Ok(Vc::upcast(HmrEntryModule::new(
667685
AssetIdent::from_path(this.page.await?.base_path.clone()),
668-
*chunkable,
686+
*module,
669687
)));
670688
}
671689
Ok(page_loader)

crates/next-api/src/server_actions.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,7 @@ use turbo_tasks::{
2626
use turbo_tasks_fs::{self, File, FileContent, FileSystemPath, rope::RopeBuilder};
2727
use turbopack_core::{
2828
asset::AssetContent,
29-
chunk::{
30-
ChunkItem, ChunkItemExt, ChunkableModule, ChunkingContext, EvaluatableAsset, ModuleId,
31-
},
29+
chunk::{ChunkItem, ChunkItemExt, ChunkingContext, EvaluatableAsset, ModuleId},
3230
context::AssetContext,
3331
file_source::FileSource,
3432
ident::AssetIdent,
@@ -78,7 +76,7 @@ pub(crate) async fn create_server_actions_manifest(
7876
ResolvedVc::try_sidecast::<Box<dyn EvaluatableAsset>>(loader.to_resolved().await?)
7977
.context("loader module must be evaluatable")?;
8078

81-
let chunk_item = loader.as_chunk_item(module_graph, chunking_context);
79+
let chunk_item = ChunkItem::new(Vc::upcast(loader), module_graph, chunking_context);
8280
let manifest = build_manifest(
8381
node_root,
8482
page_name,
@@ -158,7 +156,7 @@ async fn build_manifest(
158156
page_name: RcStr,
159157
runtime: NextRuntime,
160158
actions: Vc<AllActions>,
161-
chunk_item: Vc<Box<dyn ChunkItem>>,
159+
chunk_item: Vc<ChunkItem>,
162160
async_module_info: Vc<AsyncModulesInfo>,
163161
) -> Result<ResolvedVc<Box<dyn OutputAsset>>> {
164162
let manifest_path_prefix = &page_name;

crates/next-api/src/webpack_stats.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ where
2525
{
2626
let mut assets = vec![];
2727
let mut chunks = vec![];
28-
let mut chunk_items: FxIndexMap<Vc<Box<dyn ChunkItem>>, FxIndexSet<RcStr>> =
29-
FxIndexMap::default();
28+
let mut chunk_items: FxIndexMap<Vc<ChunkItem>, FxIndexSet<RcStr>> = FxIndexMap::default();
3029

3130
let entry_assets = entry_assets.into_iter().collect::<Vec<_>>();
3231

crates/next-core/src/hmr_entry.rs

Lines changed: 7 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ use turbo_tasks_fs::{FileSystem, VirtualFileSystem, rope::RopeBuilder};
77
use turbopack_core::{
88
asset::{Asset, AssetContent},
99
chunk::{
10-
AsyncModuleInfo, ChunkItem, ChunkableModule, ChunkingContext, ChunkingType,
11-
ChunkingTypeOption, EvaluatableAsset,
10+
AsyncModuleInfo, ChunkItem, ChunkingContext, ChunkingType, ChunkingTypeOption,
11+
EvaluatableAsset,
1212
},
1313
ident::AssetIdent,
1414
module::{Module, ModuleSideEffects},
@@ -20,7 +20,7 @@ use turbopack_core::{
2020
use turbopack_ecmascript::{
2121
chunk::{
2222
EcmascriptChunkItemContent, EcmascriptChunkItemOptions, EcmascriptChunkPlaceable,
23-
EcmascriptExports, ecmascript_chunk_item,
23+
EcmascriptExports,
2424
},
2525
runtime_functions::TURBOPACK_REQUIRE,
2626
utils::StringifyJs,
@@ -41,16 +41,13 @@ async fn hmr_entry_point_base_ident() -> Result<Vc<AssetIdent>> {
4141
#[turbo_tasks::value(shared)]
4242
pub struct HmrEntryModule {
4343
pub ident: ResolvedVc<AssetIdent>,
44-
pub module: ResolvedVc<Box<dyn ChunkableModule>>,
44+
pub module: ResolvedVc<Box<dyn Module>>,
4545
}
4646

4747
#[turbo_tasks::value_impl]
4848
impl HmrEntryModule {
4949
#[turbo_tasks::function]
50-
pub fn new(
51-
ident: ResolvedVc<AssetIdent>,
52-
module: ResolvedVc<Box<dyn ChunkableModule>>,
53-
) -> Vc<Self> {
50+
pub fn new(ident: ResolvedVc<AssetIdent>, module: ResolvedVc<Box<dyn Module>>) -> Vc<Self> {
5451
Self { ident, module }.cell()
5552
}
5653
}
@@ -70,7 +67,7 @@ impl Module for HmrEntryModule {
7067
#[turbo_tasks::function]
7168
async fn references(&self) -> Result<Vc<ModuleReferences>> {
7269
Ok(Vc::cell(vec![ResolvedVc::upcast(
73-
HmrEntryModuleReference::new(Vc::upcast(*self.module))
70+
HmrEntryModuleReference::new(*self.module)
7471
.to_resolved()
7572
.await?,
7673
)]))
@@ -81,18 +78,6 @@ impl Module for HmrEntryModule {
8178
}
8279
}
8380

84-
#[turbo_tasks::value_impl]
85-
impl ChunkableModule for HmrEntryModule {
86-
#[turbo_tasks::function]
87-
fn as_chunk_item(
88-
self: ResolvedVc<Self>,
89-
module_graph: ResolvedVc<ModuleGraph>,
90-
chunking_context: ResolvedVc<Box<dyn ChunkingContext>>,
91-
) -> Vc<Box<dyn ChunkItem>> {
92-
ecmascript_chunk_item(ResolvedVc::upcast(self), module_graph, chunking_context)
93-
}
94-
}
95-
9681
#[turbo_tasks::value_impl]
9782
impl Asset for HmrEntryModule {
9883
#[turbo_tasks::function]
@@ -118,7 +103,7 @@ impl EcmascriptChunkPlaceable for HmrEntryModule {
118103
) -> Result<Vc<EcmascriptChunkItemContent>> {
119104
let this = self.await?;
120105
let module = this.module;
121-
let chunk_item = module.as_chunk_item(module_graph, chunking_context);
106+
let chunk_item = ChunkItem::new(*module, module_graph, chunking_context);
122107
let id = chunking_context
123108
.chunk_item_id_strategy()
124109
.await?

crates/next-core/src/next_client_reference/ecmascript_client_reference/ecmascript_client_reference_module.rs

Lines changed: 8 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,7 @@ use turbo_tasks::{IntoTraitRef, ResolvedVc, ValueToString, Vc};
77
use turbo_tasks_fs::{File, FileContent};
88
use turbopack_core::{
99
asset::AssetContent,
10-
chunk::{
11-
AsyncModuleInfo, ChunkGroupType, ChunkItem, ChunkableModule, ChunkingContext, ChunkingType,
12-
ChunkingTypeOption,
13-
},
10+
chunk::{AsyncModuleInfo, ChunkGroupType, ChunkingContext, ChunkingType, ChunkingTypeOption},
1411
code_builder::CodeBuilder,
1512
context::AssetContext,
1613
ident::AssetIdent,
@@ -23,10 +20,7 @@ use turbopack_core::{
2320
virtual_source::VirtualSource,
2421
};
2522
use turbopack_ecmascript::{
26-
chunk::{
27-
EcmascriptChunkItemContent, EcmascriptChunkPlaceable, EcmascriptExports,
28-
ecmascript_chunk_item,
29-
},
23+
chunk::{EcmascriptChunkItemContent, EcmascriptChunkPlaceable, EcmascriptExports},
3024
runtime_functions::TURBOPACK_EXPORT_NAMESPACE,
3125
utils::StringifyJs,
3226
};
@@ -248,22 +242,6 @@ impl Module for EcmascriptClientReferenceModule {
248242
}
249243
}
250244

251-
#[turbo_tasks::value_impl]
252-
impl ChunkableModule for EcmascriptClientReferenceModule {
253-
#[turbo_tasks::function]
254-
async fn as_chunk_item(
255-
self: ResolvedVc<Self>,
256-
module_graph: Vc<ModuleGraph>,
257-
chunking_context: ResolvedVc<Box<dyn ChunkingContext>>,
258-
) -> Result<Vc<Box<dyn ChunkItem>>> {
259-
Ok(ecmascript_chunk_item(
260-
ResolvedVc::upcast(self),
261-
module_graph.to_resolved().await?,
262-
chunking_context,
263-
))
264-
}
265-
}
266-
267245
#[turbo_tasks::value_impl]
268246
impl EcmascriptChunkPlaceable for EcmascriptClientReferenceModule {
269247
#[turbo_tasks::function]
@@ -279,8 +257,12 @@ impl EcmascriptChunkPlaceable for EcmascriptClientReferenceModule {
279257
async_module_info: Option<Vc<AsyncModuleInfo>>,
280258
estimated: bool,
281259
) -> Vc<EcmascriptChunkItemContent> {
282-
self.proxy_module()
283-
.chunk_item_content(chunking_context, module_graph, async_module_info, estimated)
260+
self.proxy_module().chunk_item_content(
261+
chunking_context,
262+
module_graph,
263+
async_module_info,
264+
estimated,
265+
)
284266
}
285267
}
286268

crates/next-core/src/next_dynamic/dynamic_module.rs

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use indoc::formatdoc;
55
use turbo_rcstr::{RcStr, rcstr};
66
use turbo_tasks::{ResolvedVc, Vc};
77
use turbopack_core::{
8-
chunk::{AsyncModuleInfo, ChunkableModule, ChunkingContext, ModuleChunkItemIdExt},
8+
chunk::{AsyncModuleInfo, ChunkingContext, ModuleChunkItemIdExt},
99
ident::AssetIdent,
1010
module::{Module, ModuleSideEffects},
1111
module_graph::ModuleGraph,
@@ -14,10 +14,7 @@ use turbopack_core::{
1414
source::OptionSource,
1515
};
1616
use turbopack_ecmascript::{
17-
chunk::{
18-
EcmascriptChunkItemContent, EcmascriptChunkPlaceable, EcmascriptExports,
19-
ecmascript_chunk_item,
20-
},
17+
chunk::{EcmascriptChunkItemContent, EcmascriptChunkPlaceable, EcmascriptExports},
2118
references::esm::{EsmExport, EsmExports},
2219
runtime_functions::{TURBOPACK_EXPORT_NAMESPACE, TURBOPACK_IMPORT},
2320
utils::StringifyJs,
@@ -75,18 +72,6 @@ impl Module for NextDynamicEntryModule {
7572
}
7673
}
7774

78-
#[turbo_tasks::value_impl]
79-
impl ChunkableModule for NextDynamicEntryModule {
80-
#[turbo_tasks::function]
81-
fn as_chunk_item(
82-
self: ResolvedVc<Self>,
83-
module_graph: ResolvedVc<ModuleGraph>,
84-
chunking_context: ResolvedVc<Box<dyn ChunkingContext>>,
85-
) -> Vc<Box<dyn turbopack_core::chunk::ChunkItem>> {
86-
ecmascript_chunk_item(ResolvedVc::upcast(self), module_graph, chunking_context)
87-
}
88-
}
89-
9075
#[turbo_tasks::value_impl]
9176
impl EcmascriptChunkPlaceable for NextDynamicEntryModule {
9277
#[turbo_tasks::function]

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

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,15 @@ use turbo_rcstr::rcstr;
66
use turbo_tasks::{ResolvedVc, Vc};
77
use turbo_tasks_fs::FileSystemPath;
88
use turbopack_core::{
9-
chunk::{AsyncModuleInfo, ChunkableModule, ChunkingContext, ModuleChunkItemIdExt},
9+
chunk::{AsyncModuleInfo, ChunkingContext, ModuleChunkItemIdExt},
1010
ident::AssetIdent,
1111
module::{Module, ModuleSideEffects},
1212
module_graph::ModuleGraph,
1313
reference::ModuleReferences,
1414
source::OptionSource,
1515
};
1616
use turbopack_ecmascript::{
17-
chunk::{
18-
EcmascriptChunkItemContent, EcmascriptChunkPlaceable, EcmascriptExports,
19-
ecmascript_chunk_item,
20-
},
17+
chunk::{EcmascriptChunkItemContent, EcmascriptChunkPlaceable, EcmascriptExports},
2118
references::esm::{EsmExport, EsmExports},
2219
runtime_functions::{TURBOPACK_EXPORT_NAMESPACE, TURBOPACK_IMPORT},
2320
utils::StringifyJs,
@@ -92,18 +89,6 @@ impl Module for NextServerComponentModule {
9289
}
9390
}
9491

95-
#[turbo_tasks::value_impl]
96-
impl ChunkableModule for NextServerComponentModule {
97-
#[turbo_tasks::function]
98-
fn as_chunk_item(
99-
self: ResolvedVc<Self>,
100-
module_graph: ResolvedVc<ModuleGraph>,
101-
chunking_context: ResolvedVc<Box<dyn ChunkingContext>>,
102-
) -> Vc<Box<dyn turbopack_core::chunk::ChunkItem>> {
103-
ecmascript_chunk_item(ResolvedVc::upcast(self), module_graph, chunking_context)
104-
}
105-
}
106-
10792
#[turbo_tasks::value_impl]
10893
impl EcmascriptChunkPlaceable for NextServerComponentModule {
10994
#[turbo_tasks::function]

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

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,15 @@ use turbo_rcstr::rcstr;
66
use turbo_tasks::{ResolvedVc, Vc};
77
use turbo_tasks_fs::FileSystemPath;
88
use turbopack_core::{
9-
chunk::{AsyncModuleInfo, ChunkableModule, ChunkingContext, ModuleChunkItemIdExt},
9+
chunk::{AsyncModuleInfo, ChunkingContext, ModuleChunkItemIdExt},
1010
ident::AssetIdent,
1111
module::{Module, ModuleSideEffects},
1212
module_graph::ModuleGraph,
1313
reference::ModuleReferences,
1414
source::OptionSource,
1515
};
1616
use turbopack_ecmascript::{
17-
chunk::{
18-
EcmascriptChunkItemContent, EcmascriptChunkPlaceable, EcmascriptExports,
19-
ecmascript_chunk_item,
20-
},
17+
chunk::{EcmascriptChunkItemContent, EcmascriptChunkPlaceable, EcmascriptExports},
2118
references::esm::{EsmExport, EsmExports},
2219
runtime_functions::{TURBOPACK_EXPORT_NAMESPACE, TURBOPACK_IMPORT},
2320
utils::StringifyJs,
@@ -73,18 +70,6 @@ impl Module for NextServerUtilityModule {
7370
}
7471
}
7572

76-
#[turbo_tasks::value_impl]
77-
impl ChunkableModule for NextServerUtilityModule {
78-
#[turbo_tasks::function]
79-
fn as_chunk_item(
80-
self: ResolvedVc<Self>,
81-
module_graph: ResolvedVc<ModuleGraph>,
82-
chunking_context: ResolvedVc<Box<dyn ChunkingContext>>,
83-
) -> Vc<Box<dyn turbopack_core::chunk::ChunkItem>> {
84-
ecmascript_chunk_item(ResolvedVc::upcast(self), module_graph, chunking_context)
85-
}
86-
}
87-
8873
#[turbo_tasks::value_impl]
8974
impl EcmascriptChunkPlaceable for NextServerUtilityModule {
9075
#[turbo_tasks::function]

crates/next-core/src/raw_ecmascript_module.rs

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use turbo_tasks_fs::{FileContent, rope::Rope};
1111
use turbopack::{ModuleAssetContext, module_options::CustomModuleType};
1212
use turbopack_core::{
1313
asset::Asset,
14-
chunk::{AsyncModuleInfo, ChunkableModule, ChunkingContext},
14+
chunk::{AsyncModuleInfo, ChunkingContext},
1515
code_builder::CodeBuilder,
1616
compile_time_info::{
1717
CompileTimeDefineValue, CompileTimeInfo, DefinableNameSegmentRef, DefinableNameSegmentRefs,
@@ -29,7 +29,7 @@ use turbopack_ecmascript::{
2929
EcmascriptInputTransforms,
3030
chunk::{
3131
EcmascriptChunkItemContent, EcmascriptChunkItemOptions, EcmascriptChunkPlaceable,
32-
EcmascriptExports, ecmascript_chunk_item,
32+
EcmascriptExports,
3333
},
3434
source_map::{extract_source_mapping_url_from_content, parse_source_map_comment},
3535
utils::StringifyJs,
@@ -104,18 +104,6 @@ impl Module for RawEcmascriptModule {
104104
}
105105
}
106106

107-
#[turbo_tasks::value_impl]
108-
impl ChunkableModule for RawEcmascriptModule {
109-
#[turbo_tasks::function]
110-
fn as_chunk_item(
111-
self: ResolvedVc<Self>,
112-
module_graph: ResolvedVc<ModuleGraph>,
113-
chunking_context: ResolvedVc<Box<dyn ChunkingContext>>,
114-
) -> Vc<Box<dyn turbopack_core::chunk::ChunkItem>> {
115-
ecmascript_chunk_item(ResolvedVc::upcast(self), module_graph, chunking_context)
116-
}
117-
}
118-
119107
#[turbo_tasks::value_impl]
120108
impl EcmascriptChunkPlaceable for RawEcmascriptModule {
121109
#[turbo_tasks::function]

0 commit comments

Comments
 (0)