From 69439d8583ba8c76cad6db3ba27dc19b1f9371f0 Mon Sep 17 00:00:00 2001 From: Tim Neutkens Date: Mon, 25 Sep 2023 14:01:52 +0200 Subject: [PATCH] Add trailingSlash, basePath, and assetPrefix to Turbopack (#55921) Still some failing tests but it's a start. Adds the env vars used to support trailing slash, base path and asset prefix. --- packages/next-swc/crates/next-core/src/env.rs | 29 +++++++++++++++++++ .../crates/next-core/src/next_config.rs | 6 ++-- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/packages/next-swc/crates/next-core/src/env.rs b/packages/next-swc/crates/next-core/src/env.rs index c6907be0e6865..9fff7bea98c63 100644 --- a/packages/next-swc/crates/next-core/src/env.rs +++ b/packages/next-swc/crates/next-core/src/env.rs @@ -70,6 +70,35 @@ pub async fn env_for_js( }, ); + map.insert( + "__NEXT_TRAILING_SLASH".to_string(), + if next_config.trailing_slash.unwrap_or(false) { + "true".to_string() + } else { + "false".to_string() + }, + ); + + map.insert( + "__NEXT_ROUTER_BASEPATH".to_string(), + // Don't stringify undefined + if let Some(base_path) = next_config.base_path.as_ref() { + serde_json::to_string(base_path)? + } else { + "undefined".to_string() + }, + ); + + map.insert( + "__NEXT_ASSET_PREFIX".to_string(), + // Don't stringify undefined + if let Some(asset_prefix) = next_config.asset_prefix.as_ref() { + serde_json::to_string(asset_prefix)? + } else { + "undefined".to_string() + }, + ); + if !test_mode.is_empty() { map.insert("__NEXT_TEST_MODE".to_string(), "true".to_string()); } diff --git a/packages/next-swc/crates/next-core/src/next_config.rs b/packages/next-swc/crates/next-core/src/next_config.rs index 517ecd4f2e199..79fc29fd7668a 100644 --- a/packages/next-swc/crates/next-core/src/next_config.rs +++ b/packages/next-swc/crates/next-core/src/next_config.rs @@ -85,7 +85,9 @@ pub struct NextConfig { pub modularize_imports: Option>, pub dist_dir: Option, sass_options: Option, - trailing_slash: bool, + pub trailing_slash: Option, + pub asset_prefix: Option, + pub base_path: Option, // Partially supported pub compiler: Option, @@ -96,8 +98,6 @@ pub struct NextConfig { cross_origin: Option, amp: AmpConfig, analytics_id: String, - asset_prefix: String, - base_path: String, clean_dist_dir: bool, compress: bool, dev_indicators: DevIndicatorsConfig,