Skip to content

Commit 9c65bb6

Browse files
committed
Extract as_chunk into shared ChunkType trait
1 parent 256d388 commit 9c65bb6

File tree

3 files changed

+37
-35
lines changed

3 files changed

+37
-35
lines changed

packages/next-swc/crates/next-core/src/next_client_component/with_client_chunks.rs

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
use anyhow::{Context, Result};
22
use indoc::formatdoc;
3-
use turbo_tasks::{TryJoinIterExt, Value, ValueToString, Vc};
3+
use turbo_tasks::{TryJoinIterExt, ValueToString, Vc};
44
use turbopack_binding::{
55
turbo::tasks_fs::FileSystemPath,
66
turbopack::{
77
core::{
88
asset::{Asset, AssetContent},
99
chunk::{
10-
availability_info::AvailabilityInfo, Chunk, ChunkData, ChunkItem, ChunkItemExt,
11-
ChunkableModule, ChunkableModuleReference, ChunkingContext, ChunkingContextExt,
12-
ChunkingType, ChunkingTypeOption, ChunksData,
10+
ChunkData, ChunkItem, ChunkItemExt, ChunkType, ChunkableModule,
11+
ChunkableModuleReference, ChunkingContext, ChunkingContextExt, ChunkingType,
12+
ChunkingTypeOption, ChunksData,
1313
},
1414
ident::AssetIdent,
1515
module::Module,
@@ -18,11 +18,11 @@ use turbopack_binding::{
1818
reference::{ModuleReference, ModuleReferences, SingleOutputAssetReference},
1919
resolve::ModuleResolveResult,
2020
},
21-
ecmascript::chunk::EcmascriptChunkData,
21+
ecmascript::chunk::{EcmascriptChunkData, EcmascriptChunkType},
2222
turbopack::ecmascript::{
2323
chunk::{
24-
EcmascriptChunk, EcmascriptChunkItem, EcmascriptChunkItemContent,
25-
EcmascriptChunkPlaceable, EcmascriptChunkingContext, EcmascriptExports,
24+
EcmascriptChunkItem, EcmascriptChunkItemContent, EcmascriptChunkPlaceable,
25+
EcmascriptChunkingContext, EcmascriptExports,
2626
},
2727
utils::StringifyJs,
2828
},
@@ -239,12 +239,13 @@ impl ChunkItem for WithClientChunksChunkItem {
239239
}
240240

241241
#[turbo_tasks::function]
242-
fn as_chunk(&self, availability_info: Value<AvailabilityInfo>) -> Vc<Box<dyn Chunk>> {
243-
Vc::upcast(EcmascriptChunk::new(
244-
Vc::upcast(self.context.with_layer("rsc".to_string())),
245-
Vc::upcast(self.inner),
246-
availability_info,
247-
))
242+
fn ty(&self) -> Vc<Box<dyn ChunkType>> {
243+
Vc::upcast(Vc::<EcmascriptChunkType>::default())
244+
}
245+
246+
#[turbo_tasks::function]
247+
fn module(&self) -> Vc<Box<dyn Module>> {
248+
Vc::upcast(self.inner)
248249
}
249250
}
250251

packages/next-swc/crates/next-core/src/next_client_reference/ecmascript_client_reference/ecmascript_client_reference_proxy_module.rs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ use turbopack_binding::turbopack::{
88
core::{
99
asset::{Asset, AssetContent},
1010
chunk::{
11-
availability_info::AvailabilityInfo, Chunk, ChunkItem, ChunkableModule, ChunkingContext,
11+
availability_info::AvailabilityInfo, ChunkItem, ChunkType, ChunkableModule,
12+
ChunkingContext,
1213
},
1314
code_builder::CodeBuilder,
1415
context::AssetContext,
@@ -20,8 +21,8 @@ use turbopack_binding::turbopack::{
2021
},
2122
ecmascript::{
2223
chunk::{
23-
EcmascriptChunk, EcmascriptChunkItem, EcmascriptChunkItemContent,
24-
EcmascriptChunkPlaceable, EcmascriptChunkingContext, EcmascriptExports,
24+
EcmascriptChunkItem, EcmascriptChunkItemContent, EcmascriptChunkPlaceable,
25+
EcmascriptChunkType, EcmascriptChunkingContext, EcmascriptExports,
2526
},
2627
utils::StringifyJs,
2728
EcmascriptModuleAsset,
@@ -238,12 +239,13 @@ impl ChunkItem for ProxyModuleChunkItem {
238239
}
239240

240241
#[turbo_tasks::function]
241-
fn as_chunk(&self, availability_info: Value<AvailabilityInfo>) -> Vc<Box<dyn Chunk>> {
242-
Vc::upcast(EcmascriptChunk::new(
243-
Vc::upcast(self.chunking_context),
244-
Vc::upcast(self.client_proxy_asset),
245-
availability_info,
246-
))
242+
fn ty(&self) -> Vc<Box<dyn ChunkType>> {
243+
Vc::upcast(Vc::<EcmascriptChunkType>::default())
244+
}
245+
246+
#[turbo_tasks::function]
247+
fn module(&self) -> Vc<Box<dyn Module>> {
248+
Vc::upcast(self.client_proxy_asset)
247249
}
248250
}
249251

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

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,20 @@
11
use anyhow::{bail, Context, Result};
22
use indoc::formatdoc;
3-
use turbo_tasks::{Value, Vc};
3+
use turbo_tasks::Vc;
44
use turbo_tasks_fs::FileSystemPath;
55
use turbopack_binding::turbopack::{
66
core::{
77
asset::{Asset, AssetContent},
8-
chunk::{
9-
availability_info::AvailabilityInfo, Chunk, ChunkItem, ChunkItemExt, ChunkableModule,
10-
ChunkingContext,
11-
},
8+
chunk::{ChunkItem, ChunkItemExt, ChunkType, ChunkableModule, ChunkingContext},
129
ident::AssetIdent,
1310
module::Module,
1411
reference::ModuleReferences,
1512
},
13+
ecmascript::chunk::EcmascriptChunkType,
1614
turbopack::ecmascript::{
1715
chunk::{
18-
EcmascriptChunk, EcmascriptChunkItem, EcmascriptChunkItemContent,
19-
EcmascriptChunkPlaceable, EcmascriptChunkingContext, EcmascriptExports,
16+
EcmascriptChunkItem, EcmascriptChunkItemContent, EcmascriptChunkPlaceable,
17+
EcmascriptChunkingContext, EcmascriptExports,
2018
},
2119
utils::StringifyJs,
2220
},
@@ -161,11 +159,12 @@ impl ChunkItem for BuildServerComponentChunkItem {
161159
}
162160

163161
#[turbo_tasks::function]
164-
fn as_chunk(&self, availability_info: Value<AvailabilityInfo>) -> Vc<Box<dyn Chunk>> {
165-
Vc::upcast(EcmascriptChunk::new(
166-
Vc::upcast(self.context),
167-
Vc::upcast(self.inner),
168-
availability_info,
169-
))
162+
fn ty(&self) -> Vc<Box<dyn ChunkType>> {
163+
Vc::upcast(Vc::<EcmascriptChunkType>::default())
164+
}
165+
166+
#[turbo_tasks::function]
167+
fn module(&self) -> Vc<Box<dyn Module>> {
168+
Vc::upcast(self.inner)
170169
}
171170
}

0 commit comments

Comments
 (0)