diff --git a/turbopack/crates/turbopack-nodejs/src/ecmascript/mod.rs b/turbopack/crates/turbopack-nodejs/src/ecmascript/mod.rs index 6b3c8edd4cf7..20182f35550d 100644 --- a/turbopack/crates/turbopack-nodejs/src/ecmascript/mod.rs +++ b/turbopack/crates/turbopack-nodejs/src/ecmascript/mod.rs @@ -1 +1,5 @@ -pub(crate) mod node; +pub mod node; + +pub use node::{ + EcmascriptBuildNodeChunk, EcmascriptBuildNodeEntryChunk, EcmascriptBuildNodeRuntimeChunk, +}; diff --git a/turbopack/crates/turbopack-nodejs/src/ecmascript/node/chunk.rs b/turbopack/crates/turbopack-nodejs/src/ecmascript/node/chunk.rs index e8dcc087a012..5322a8545716 100644 --- a/turbopack/crates/turbopack-nodejs/src/ecmascript/node/chunk.rs +++ b/turbopack/crates/turbopack-nodejs/src/ecmascript/node/chunk.rs @@ -19,7 +19,7 @@ use crate::NodeJsChunkingContext; #[turbo_tasks::value(shared)] #[derive(ValueToString)] #[value_to_string("Ecmascript Build Node Chunk")] -pub(crate) struct EcmascriptBuildNodeChunk { +pub struct EcmascriptBuildNodeChunk { chunking_context: ResolvedVc, chunk: ResolvedVc, } @@ -66,6 +66,11 @@ impl EcmascriptBuildNodeChunk { self.source_map(), )) } + + #[turbo_tasks::function] + pub fn chunk(&self) -> Vc> { + Vc::upcast(*self.chunk) + } } #[turbo_tasks::value_impl] diff --git a/turbopack/crates/turbopack-nodejs/src/ecmascript/node/entry/chunk.rs b/turbopack/crates/turbopack-nodejs/src/ecmascript/node/entry/chunk.rs index ab7890429baa..ab73b3a406a4 100644 --- a/turbopack/crates/turbopack-nodejs/src/ecmascript/node/entry/chunk.rs +++ b/turbopack/crates/turbopack-nodejs/src/ecmascript/node/entry/chunk.rs @@ -6,7 +6,7 @@ use turbo_tasks::{ResolvedVc, ValueToString, Vc, turbobail}; use turbo_tasks_fs::{File, FileContent, FileSystemPath}; use turbopack_core::{ asset::{Asset, AssetContent}, - chunk::{ChunkingContext, EvaluatableAssets, ModuleChunkItemIdExt}, + chunk::{ChunkData, ChunkingContext, ChunksData, EvaluatableAssets, ModuleChunkItemIdExt}, code_builder::{Code, CodeBuilder}, module_graph::ModuleGraph, output::{ @@ -25,7 +25,7 @@ use crate::NodeJsChunkingContext; #[turbo_tasks::value(shared)] #[derive(ValueToString)] #[value_to_string("Ecmascript Build Node Entry Chunk")] -pub(crate) struct EcmascriptBuildNodeEntryChunk { +pub struct EcmascriptBuildNodeEntryChunk { path: FileSystemPath, other_chunks: ResolvedVc, evaluatable_assets: ResolvedVc, @@ -63,6 +63,29 @@ impl EcmascriptBuildNodeEntryChunk { .cell() } + #[turbo_tasks::function] + pub async fn chunks_data(&self) -> Result> { + Ok(ChunkData::from_assets( + self.chunking_context.output_root().owned().await?, + *self.other_chunks, + )) + } + + #[turbo_tasks::function] + pub fn evaluatable_assets(&self) -> Vc { + *self.evaluatable_assets + } + + #[turbo_tasks::function] + pub fn module_graph(&self) -> Vc { + *self.module_graph + } + + #[turbo_tasks::function] + pub fn chunking_context(&self) -> Vc> { + Vc::upcast(*self.chunking_context) + } + #[turbo_tasks::function] async fn code(self: Vc) -> Result> { let this = self.await?; diff --git a/turbopack/crates/turbopack-nodejs/src/ecmascript/node/entry/mod.rs b/turbopack/crates/turbopack-nodejs/src/ecmascript/node/entry/mod.rs index cd4d9271d1b5..b901539de911 100644 --- a/turbopack/crates/turbopack-nodejs/src/ecmascript/node/entry/mod.rs +++ b/turbopack/crates/turbopack-nodejs/src/ecmascript/node/entry/mod.rs @@ -1,2 +1,2 @@ -pub(crate) mod chunk; -pub(crate) mod runtime; +pub mod chunk; +pub mod runtime; diff --git a/turbopack/crates/turbopack-nodejs/src/ecmascript/node/entry/runtime.rs b/turbopack/crates/turbopack-nodejs/src/ecmascript/node/entry/runtime.rs index ab0ffaa25d4e..168cc7b795b8 100644 --- a/turbopack/crates/turbopack-nodejs/src/ecmascript/node/entry/runtime.rs +++ b/turbopack/crates/turbopack-nodejs/src/ecmascript/node/entry/runtime.rs @@ -22,7 +22,7 @@ use crate::NodeJsChunkingContext; #[turbo_tasks::value(shared)] #[derive(ValueToString)] #[value_to_string("Ecmascript Build Node Runtime Chunk")] -pub(crate) struct EcmascriptBuildNodeRuntimeChunk { +pub struct EcmascriptBuildNodeRuntimeChunk { chunking_context: ResolvedVc, } diff --git a/turbopack/crates/turbopack-nodejs/src/ecmascript/node/mod.rs b/turbopack/crates/turbopack-nodejs/src/ecmascript/node/mod.rs index 7768860da624..e7345679003c 100644 --- a/turbopack/crates/turbopack-nodejs/src/ecmascript/node/mod.rs +++ b/turbopack/crates/turbopack-nodejs/src/ecmascript/node/mod.rs @@ -1,5 +1,8 @@ -pub(crate) mod chunk; +pub mod chunk; pub(crate) mod content; -pub(crate) mod entry; +pub mod entry; pub(crate) mod update; pub(crate) mod version; + +pub use chunk::EcmascriptBuildNodeChunk; +pub use entry::{chunk::EcmascriptBuildNodeEntryChunk, runtime::EcmascriptBuildNodeRuntimeChunk}; diff --git a/turbopack/crates/turbopack-nodejs/src/lib.rs b/turbopack/crates/turbopack-nodejs/src/lib.rs index 70f72ef4ec57..dd0bbc5d5eb4 100644 --- a/turbopack/crates/turbopack-nodejs/src/lib.rs +++ b/turbopack/crates/turbopack-nodejs/src/lib.rs @@ -2,6 +2,9 @@ #![feature(arbitrary_self_types_pointers)] pub(crate) mod chunking_context; -pub(crate) mod ecmascript; +pub mod ecmascript; pub use chunking_context::{NodeJsChunkingContext, NodeJsChunkingContextBuilder}; +pub use ecmascript::{ + EcmascriptBuildNodeChunk, EcmascriptBuildNodeEntryChunk, EcmascriptBuildNodeRuntimeChunk, +};