Skip to content

Commit 3b341b4

Browse files
committed
Propagate the query parameter to all the inner processed assets
1 parent 64cfab9 commit 3b341b4

File tree

1 file changed

+25
-4
lines changed

1 file changed

+25
-4
lines changed

crates/next-core/src/next_pages/page_entry.rs

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,11 @@ pub async fn create_page_ssr_entry_module(
8787
replacements.push(("VAR_MODULE_DOCUMENT", &inner_document));
8888
replacements.push(("VAR_MODULE_APP", &inner_app));
8989
}
90+
let source_ident = source.ident().await?;
91+
// for PagesData we apply a ?server-data query parameter to avoid conflicts with the Page
92+
// module.
93+
// We need to copy that to all the modules we create.
94+
let source_query = source_ident.query.clone();
9095

9196
// Load the file from the next.js codebase.
9297
let mut source =
@@ -127,13 +132,15 @@ pub async fn create_page_ssr_entry_module(
127132
let document_module = process_global_item(
128133
*pages_structure_ref.document,
129134
reference_type.clone(),
135+
source_query.clone(),
130136
ssr_module_context,
131137
)
132138
.to_resolved()
133139
.await?;
134140
let app_module = process_global_item(
135141
*pages_structure_ref.app,
136142
reference_type.clone(),
143+
source_query.clone(),
137144
ssr_module_context,
138145
)
139146
.to_resolved()
@@ -163,6 +170,7 @@ pub async fn create_page_ssr_entry_module(
163170
reference_type,
164171
pages_structure,
165172
next_config,
173+
source_query.clone(),
166174
);
167175
} else {
168176
ssr_module = wrap_edge_entry(
@@ -186,9 +194,13 @@ pub async fn create_page_ssr_entry_module(
186194
async fn process_global_item(
187195
item: Vc<PagesStructureItem>,
188196
reference_type: ReferenceType,
197+
source_query: RcStr,
189198
module_context: Vc<Box<dyn AssetContext>>,
190199
) -> Result<Vc<Box<dyn Module>>> {
191-
let source = Vc::upcast(FileSource::new(item.file_path().owned().await?));
200+
let source = Vc::upcast(FileSource::new_with_query(
201+
item.file_path().owned().await?,
202+
source_query,
203+
));
192204
Ok(module_context.process(source, reference_type).module())
193205
}
194206

@@ -202,6 +214,7 @@ async fn wrap_edge_page(
202214
reference_type: ReferenceType,
203215
pages_structure: Vc<PagesStructure>,
204216
next_config: Vc<NextConfig>,
217+
source_query: RcStr,
205218
) -> Result<Vc<Box<dyn Module>>> {
206219
const INNER: &str = "INNER_PAGE_ENTRY";
207220

@@ -260,26 +273,34 @@ async fn wrap_edge_page(
260273
INNER_DOCUMENT.into() => process_global_item(
261274
*pages_structure_ref.document,
262275
reference_type.clone(),
276+
source_query.clone(),
263277
asset_context,
264278
).to_resolved().await?,
265279
INNER_APP.into() => process_global_item(
266280
*pages_structure_ref.app,
267281
reference_type.clone(),
282+
source_query.clone(),
268283
asset_context,
269284
).to_resolved().await?,
270285
INNER_ERROR.into() => process_global_item(
271286
*pages_structure_ref.error,
272287
reference_type.clone(),
288+
source_query.clone(),
273289
asset_context,
274290
).to_resolved().await?,
275291
};
276292

277293
if let Some(error_500) = pages_structure_ref.error_500 {
278294
inner_assets.insert(
279295
INNER_ERROR_500.into(),
280-
process_global_item(*error_500, reference_type.clone(), asset_context)
281-
.to_resolved()
282-
.await?,
296+
process_global_item(
297+
*error_500,
298+
reference_type.clone(),
299+
source_query.clone(),
300+
asset_context,
301+
)
302+
.to_resolved()
303+
.await?,
283304
);
284305
}
285306

0 commit comments

Comments
 (0)