From 6202ea378fc29c1facff7e6cbeafef1d64bc404f Mon Sep 17 00:00:00 2001 From: Jiachi Liu Date: Tue, 8 Oct 2024 14:25:51 +0200 Subject: [PATCH] codemod: fix missing route transform --- .../origin-name-01-route.input.js | 3 +++ .../origin-name-01-route.output.js | 4 ++++ ...mefile-01.input.js => origin-name-01-somefile.input.js} | 0 ...file-01.output.js => origin-name-01-somefile.output.js} | 0 .../__tests__/next-async-request-api-dynamic-props.test.js | 7 ++++++- .../lib/async-request-api/next-async-dynamic-prop.ts | 3 ++- 6 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 packages/next-codemod/transforms/__testfixtures__/next-async-request-api-dynamic-props/origin-name-01-route.input.js create mode 100644 packages/next-codemod/transforms/__testfixtures__/next-async-request-api-dynamic-props/origin-name-01-route.output.js rename packages/next-codemod/transforms/__testfixtures__/next-async-request-api-dynamic-props/{origin-name-somefile-01.input.js => origin-name-01-somefile.input.js} (100%) rename packages/next-codemod/transforms/__testfixtures__/next-async-request-api-dynamic-props/{origin-name-somefile-01.output.js => origin-name-01-somefile.output.js} (100%) diff --git a/packages/next-codemod/transforms/__testfixtures__/next-async-request-api-dynamic-props/origin-name-01-route.input.js b/packages/next-codemod/transforms/__testfixtures__/next-async-request-api-dynamic-props/origin-name-01-route.input.js new file mode 100644 index 0000000000000..64fdeba1fea1a --- /dev/null +++ b/packages/next-codemod/transforms/__testfixtures__/next-async-request-api-dynamic-props/origin-name-01-route.input.js @@ -0,0 +1,3 @@ +export async function GET(req, { params }) { + f1(params) +} diff --git a/packages/next-codemod/transforms/__testfixtures__/next-async-request-api-dynamic-props/origin-name-01-route.output.js b/packages/next-codemod/transforms/__testfixtures__/next-async-request-api-dynamic-props/origin-name-01-route.output.js new file mode 100644 index 0000000000000..fd95d72f44bee --- /dev/null +++ b/packages/next-codemod/transforms/__testfixtures__/next-async-request-api-dynamic-props/origin-name-01-route.output.js @@ -0,0 +1,4 @@ +export async function GET(req, props) { + const params = await props.params; + f1(params) +} diff --git a/packages/next-codemod/transforms/__testfixtures__/next-async-request-api-dynamic-props/origin-name-somefile-01.input.js b/packages/next-codemod/transforms/__testfixtures__/next-async-request-api-dynamic-props/origin-name-01-somefile.input.js similarity index 100% rename from packages/next-codemod/transforms/__testfixtures__/next-async-request-api-dynamic-props/origin-name-somefile-01.input.js rename to packages/next-codemod/transforms/__testfixtures__/next-async-request-api-dynamic-props/origin-name-01-somefile.input.js diff --git a/packages/next-codemod/transforms/__testfixtures__/next-async-request-api-dynamic-props/origin-name-somefile-01.output.js b/packages/next-codemod/transforms/__testfixtures__/next-async-request-api-dynamic-props/origin-name-01-somefile.output.js similarity index 100% rename from packages/next-codemod/transforms/__testfixtures__/next-async-request-api-dynamic-props/origin-name-somefile-01.output.js rename to packages/next-codemod/transforms/__testfixtures__/next-async-request-api-dynamic-props/origin-name-01-somefile.output.js diff --git a/packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-props.test.js b/packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-props.test.js index 321e8038c4e2d..e9cb0f268cd71 100644 --- a/packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-props.test.js +++ b/packages/next-codemod/transforms/__tests__/next-async-request-api-dynamic-props.test.js @@ -43,7 +43,12 @@ describe('next-async-request-api - dynamic-props', () => { // Override test fixture input filename with `page.tsx` to always match the expected output, // otherwise fallback to the original filename. - const overrideFilename = /[\\/]origin-name-/.test(inputPath) ? inputPath : 'page.tsx' + const overrideFilename = /[\\/]origin-name-\d{2}-/.test(inputPath) + // extract the from `origin-name--.input.js` + ? inputPath + .replace(/origin-name-(\d{2})-/, '') + .replace(/\.input\./, '.') + : 'page.tsx' it(`transforms correctly ${prefix}`, () => { runInlineTest( diff --git a/packages/next-codemod/transforms/lib/async-request-api/next-async-dynamic-prop.ts b/packages/next-codemod/transforms/lib/async-request-api/next-async-dynamic-prop.ts index 8fbebbcdcba51..2d21c56aa808d 100644 --- a/packages/next-codemod/transforms/lib/async-request-api/next-async-dynamic-prop.ts +++ b/packages/next-codemod/transforms/lib/async-request-api/next-async-dynamic-prop.ts @@ -151,7 +151,7 @@ function applyUseAndRenameAccessedProp( return modified } -const MATCHED_FILE_PATTERNS = /([\\/]|^)(page|layout)\.(t|j)sx?$/ +const MATCHED_FILE_PATTERNS = /([\\/]|^)(page|layout|route)\.(t|j)sx?$/ function modifyTypes( paramTypeAnnotation: any, @@ -264,6 +264,7 @@ export function transformDynamicProps( filePath: string ) { const isMatched = MATCHED_FILE_PATTERNS.test(filePath) + console.log('filePath', filePath) if (!isMatched) { return null }