Skip to content

Commit

Permalink
Turbopack: Add manifest generation to pages (#52793)
Browse files Browse the repository at this point in the history
This PR adds pages and build manifest generation to page entries in
Nexturbo dev.
  • Loading branch information
alexkirsz committed Jul 18, 2023
1 parent 56d85f2 commit 6705c80
Show file tree
Hide file tree
Showing 4 changed files with 209 additions and 177 deletions.
30 changes: 19 additions & 11 deletions packages/next-swc/crates/next-api/src/app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,7 @@ use turbopack_binding::{
chunk::EvaluatableAssets,
file_source::FileSource,
output::{OutputAsset, OutputAssets},
raw_output::RawOutput,
virtual_source::VirtualSource,
virtual_output::VirtualOutputAsset,
},
turbopack::{
module_options::ModuleOptionsContext, resolve_options_context::ResolveOptionsContext,
Expand Down Expand Up @@ -536,12 +535,15 @@ impl AppEndpoint {
.into_iter()
.collect(),
};
let app_build_manifest_output = Vc::upcast(RawOutput::new(Vc::upcast(VirtualSource::new(
node_root.join("server/app-build-manifest.json".to_string()),
let app_build_manifest_output = Vc::upcast(VirtualOutputAsset::new(
node_root.join(format!(
"server/app{original_name}/app-build-manifest.json",
original_name = app_entry.original_name
)),
AssetContent::file(
File::from(serde_json::to_string_pretty(&app_build_manifest)?).into(),
),
))));
));
output_assets.push(app_build_manifest_output);

let app_paths_manifest = AppPathsManifest {
Expand All @@ -559,22 +561,28 @@ impl AppEndpoint {
},
..Default::default()
};
let app_paths_manifest_output = Vc::upcast(RawOutput::new(Vc::upcast(VirtualSource::new(
node_root.join("server/app-paths-manifest.json".to_string()),
let app_paths_manifest_output = Vc::upcast(VirtualOutputAsset::new(
node_root.join(format!(
"server/app{original_name}/app-paths-manifest.json",
original_name = app_entry.original_name
)),
AssetContent::file(
File::from(serde_json::to_string_pretty(&app_paths_manifest)?).into(),
),
))));
));
output_assets.push(app_paths_manifest_output);

let build_manifest = BuildManifest {
root_main_files: client_shared_chunks_paths,
..Default::default()
};
let build_manifest_output = Vc::upcast(RawOutput::new(Vc::upcast(VirtualSource::new(
node_root.join("build-manifest.json".to_string()),
let build_manifest_output = Vc::upcast(VirtualOutputAsset::new(
node_root.join(format!(
"app{original_name}/build-manifest.json",
original_name = app_entry.original_name
)),
AssetContent::file(File::from(serde_json::to_string_pretty(&build_manifest)?).into()),
))));
));
output_assets.push(build_manifest_output);

let entry_manifest = ClientReferenceManifest::build_output(
Expand Down
Loading

0 comments on commit 6705c80

Please sign in to comment.