From 17f7c60d2e69177b66362e3f42ddbab5c6907614 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 2 Apr 2024 17:56:54 +0530 Subject: [PATCH 1/3] fix stray DYNAMIC_SERVER_USAGE thrown --- packages/blitz/src/cli/utils/codegen-tasks.ts | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/packages/blitz/src/cli/utils/codegen-tasks.ts b/packages/blitz/src/cli/utils/codegen-tasks.ts index e991cc92dc..3a07a9d141 100644 --- a/packages/blitz/src/cli/utils/codegen-tasks.ts +++ b/packages/blitz/src/cli/utils/codegen-tasks.ts @@ -16,9 +16,17 @@ export const codegenTasks = async () => { */ const nextDir = await resolveCwd("next") const nextClientIndex = join(nextDir, "../..", "client", "index.js") + const nextClientOnRecoverableErrorIndex = join( + nextDir, + "../..", + "client", + "on-recoverable-error.js", + ) const readFile = await fs.readFile(nextClientIndex) + const readOnRecoverableErrorFile = await fs.readFile(nextClientOnRecoverableErrorIndex) const packageJson = await getPackageJson() const version = packageJson.dependencies.next + console.log("version", version) const nextVersion = semver.clean(version, {loose: true}) || semver.valid(semver.coerce(version)) if (nextVersion && /^([~^])?12/.test(nextVersion)) { @@ -48,14 +56,16 @@ export const codegenTasks = async () => { ) await fs.writeFile(nextClientIndex, updatedFile) log.success("Next.js was successfully patched with a React Suspense fix") - } else if (nextVersion && semver.satisfies(nextVersion, ">=13.3.1")) { - const updatedFile = readFile - .toString() - .replace( - /_onrecoverableerror\.default$/gm, - `(err) => (err.toString().includes("DYNAMIC_SERVER_USAGE") || err.toString().includes("could not finish this Suspense boundary") || err.toString().includes("Minified React error #419")) ? null : _onrecoverableerror.default(err)`, - ) - await fs.writeFile(nextClientIndex, updatedFile) + } else { + const updatedFile = readOnRecoverableErrorFile.toString().replace( + /defaultOnRecoverableError\(err\);/gm, + `if (err.toString().includes("DYNAMIC_SERVER_USAGE") || err.toString().includes("could not finish this Suspense boundary") || err.toString().includes("Minified React error #419")) { + return; + } else { + defaultOnRecoverableError(err); + }`, + ) + await fs.writeFile(nextClientOnRecoverableErrorIndex, updatedFile) log.success("Next.js was successfully patched with a React Suspense fix") } } catch (err) { From 0983c170c255e71b3e85dcc03018ea8cc682521d Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 2 Apr 2024 17:59:21 +0530 Subject: [PATCH 2/3] cleanup --- packages/blitz/src/cli/utils/codegen-tasks.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/blitz/src/cli/utils/codegen-tasks.ts b/packages/blitz/src/cli/utils/codegen-tasks.ts index 3a07a9d141..e07d132cd1 100644 --- a/packages/blitz/src/cli/utils/codegen-tasks.ts +++ b/packages/blitz/src/cli/utils/codegen-tasks.ts @@ -26,7 +26,6 @@ export const codegenTasks = async () => { const readOnRecoverableErrorFile = await fs.readFile(nextClientOnRecoverableErrorIndex) const packageJson = await getPackageJson() const version = packageJson.dependencies.next - console.log("version", version) const nextVersion = semver.clean(version, {loose: true}) || semver.valid(semver.coerce(version)) if (nextVersion && /^([~^])?12/.test(nextVersion)) { @@ -59,11 +58,11 @@ export const codegenTasks = async () => { } else { const updatedFile = readOnRecoverableErrorFile.toString().replace( /defaultOnRecoverableError\(err\);/gm, - `if (err.toString().includes("DYNAMIC_SERVER_USAGE") || err.toString().includes("could not finish this Suspense boundary") || err.toString().includes("Minified React error #419")) { + ` if (err.toString().includes("DYNAMIC_SERVER_USAGE") || err.toString().includes("could not finish this Suspense boundary") || err.toString().includes("Minified React error #419")) { return; - } else { + } else { defaultOnRecoverableError(err); - }`, + }`, ) await fs.writeFile(nextClientOnRecoverableErrorIndex, updatedFile) log.success("Next.js was successfully patched with a React Suspense fix") From bbe2db1ddc3e821db20ca11da00d7ec0c9ef4c76 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 2 Apr 2024 18:03:56 +0530 Subject: [PATCH 3/3] chore: changeset --- .changeset/swift-owls-admire.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/swift-owls-admire.md diff --git a/.changeset/swift-owls-admire.md b/.changeset/swift-owls-admire.md new file mode 100644 index 0000000000..d7eea832b1 --- /dev/null +++ b/.changeset/swift-owls-admire.md @@ -0,0 +1,5 @@ +--- +"blitz": patch +--- + +fix: patch next.js to hide intentional throws of `DYNAMIC_SERVER_USAGE`