Skip to content

Commit 5d1696d

Browse files
committed
also patch resolveServerReference in browser react
1 parent 6800560 commit 5d1696d

File tree

5 files changed

+34
-30
lines changed

5 files changed

+34
-30
lines changed

packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.browser.development.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
'" in the React Server Manifest. This is probably a bug in the React Server Components bundler.'
4949
);
5050
}
51-
return [resolvedModuleData.id, resolvedModuleData.chunks, name];
51+
return resolvedModuleData.async ? [resolvedModuleData.id, resolvedModuleData.chunks, name, 1] : [resolvedModuleData.id, resolvedModuleData.chunks, name];
5252
}
5353
function requireAsyncModule(id) {
5454
var promise = __turbopack_require__(id);

packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.browser.production.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ function resolveServerReference(bundlerConfig, id) {
4848
'" in the React Server Manifest. This is probably a bug in the React Server Components bundler.'
4949
);
5050
}
51-
return [resolvedModuleData.id, resolvedModuleData.chunks, name];
51+
return resolvedModuleData.async ? [resolvedModuleData.id, resolvedModuleData.chunks, name, 1] : [resolvedModuleData.id, resolvedModuleData.chunks, name];
5252
}
5353
function requireAsyncModule(id) {
5454
var promise = __turbopack_require__(id);

packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
'" in the React Server Manifest. This is probably a bug in the React Server Components bundler.'
4949
);
5050
}
51-
return [resolvedModuleData.id, resolvedModuleData.chunks, name];
51+
return resolvedModuleData.async ? [resolvedModuleData.id, resolvedModuleData.chunks, name, 1] : [resolvedModuleData.id, resolvedModuleData.chunks, name];
5252
}
5353
function requireAsyncModule(id) {
5454
var promise = __turbopack_require__(id);

packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.production.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ function resolveServerReference(bundlerConfig, id) {
4848
'" in the React Server Manifest. This is probably a bug in the React Server Components bundler.'
4949
);
5050
}
51-
return [resolvedModuleData.id, resolvedModuleData.chunks, name];
51+
return resolvedModuleData.async ? [resolvedModuleData.id, resolvedModuleData.chunks, name, 1] : [resolvedModuleData.id, resolvedModuleData.chunks, name];
5252
}
5353
function requireAsyncModule(id) {
5454
var promise = __turbopack_require__(id);

packages/next/taskfile.js

Lines changed: 30 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1804,45 +1804,49 @@ export async function copy_vendor_react(task_) {
18041804
)
18051805
// eslint-disable-next-line require-yield
18061806
.run({ every: true }, function* (file) {
1807-
// We replace the module loading code with our own implementation in Next.js.
1808-
// NOTE: We only replace module loading for server builds because the server
1809-
// bundles have unique constraints like a runtime bundle. For browser builds this
1810-
// package will be bundled alongside user code and we don't need to introduce the extra
1811-
// indirection
1812-
18131807
if (
1814-
(file.base.startsWith('react-server-dom-turbopack-client') ||
1815-
file.base.startsWith('react-server-dom-turbopack-server')) &&
1816-
!file.base.includes('.browser.')
1808+
file.base.startsWith('react-server-dom-turbopack-client') ||
1809+
file.base.startsWith('react-server-dom-turbopack-server')
18171810
) {
18181811
let source = file.data.toString()
18191812

1820-
// Patch async modules support into `resolveServerReference`
1813+
// Workaround: patch support for async modules into `resolveServerReference`
1814+
// Needed until the React TODO is resolved:
1815+
// https://github.com/facebook/react/blob/5e0c951b58a98feed034e2bb92f25ae6d0616855/packages/react-server-dom-turbopack/src/client/ReactFlightClientConfigBundlerTurbopack.js#L135-L137
18211816
if (file.base.startsWith('react-server-dom-turbopack-client')) {
18221817
source = source.replace(
18231818
`return [resolvedModuleData.id, resolvedModuleData.chunks, name];`,
18241819
`return resolvedModuleData.async ? [resolvedModuleData.id, resolvedModuleData.chunks, name, 1] : [resolvedModuleData.id, resolvedModuleData.chunks, name];`
18251820
)
18261821
}
18271822

1828-
const filepath = file.dir + '/' + file.base
1829-
const ast = parseFile(source, { sourceFileName: filepath })
1823+
// We replace the module loading code with our own implementation in Next.js.
1824+
// NOTE: We only replace module loading for server builds because the server
1825+
// bundles have unique constraints like a runtime bundle. For browser builds this
1826+
// package will be bundled alongside user code and we don't need to introduce the extra
1827+
// indirection
1828+
if (!file.base.includes('.browser.')) {
1829+
const filepath = file.dir + '/' + file.base
1830+
const ast = parseFile(source, { sourceFileName: filepath })
1831+
1832+
replaceIdentifiersInAst(
1833+
ast,
1834+
new Map([
1835+
[
1836+
'__turbopack_load_by_url__',
1837+
parseExpression('globalThis.__next_chunk_load__'),
1838+
],
1839+
[
1840+
'__turbopack_require__',
1841+
parseExpression('globalThis.__next_require__'),
1842+
],
1843+
])
1844+
)
18301845

1831-
replaceIdentifiersInAst(
1832-
ast,
1833-
new Map([
1834-
[
1835-
'__turbopack_load_by_url__',
1836-
parseExpression('globalThis.__next_chunk_load__'),
1837-
],
1838-
[
1839-
'__turbopack_require__',
1840-
parseExpression('globalThis.__next_require__'),
1841-
],
1842-
])
1843-
)
1846+
source = recast.print(ast).code
1847+
}
18441848

1845-
file.data = recast.print(ast).code
1849+
file.data = source
18461850
} else if (file.base === 'package.json') {
18471851
file.data = overridePackageName(file.data)
18481852
}

0 commit comments

Comments
 (0)