diff --git a/packages/next-codemod/transforms/__testfixtures__/next-async-request-api-dynamic-props/access-props-32.input.tsx b/packages/next-codemod/transforms/__testfixtures__/next-async-request-api-dynamic-props/access-props-32.input.tsx new file mode 100644 index 0000000000000..bed7e00cf5623 --- /dev/null +++ b/packages/next-codemod/transforms/__testfixtures__/next-async-request-api-dynamic-props/access-props-32.input.tsx @@ -0,0 +1,6 @@ +export async function GET( + req: NextRequest, + ctx: any, +): Promise { + callback(ctx.propDoesNotExist); +} diff --git a/packages/next-codemod/transforms/__testfixtures__/next-async-request-api-dynamic-props/access-props-32.output.tsx b/packages/next-codemod/transforms/__testfixtures__/next-async-request-api-dynamic-props/access-props-32.output.tsx new file mode 100644 index 0000000000000..bed7e00cf5623 --- /dev/null +++ b/packages/next-codemod/transforms/__testfixtures__/next-async-request-api-dynamic-props/access-props-32.output.tsx @@ -0,0 +1,6 @@ +export async function GET( + req: NextRequest, + ctx: any, +): Promise { + callback(ctx.propDoesNotExist); +} 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 df62c81754629..5bb61d7bbf174 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 @@ -51,6 +51,15 @@ function awaitMemberAccessOfProp( memberAccess.forEach((memberAccessPath) => { const member = memberAccessPath.value + const memberProperty = member.property + const isAccessingMatchedProperty = + j.Identifier.check(memberProperty) && + TARGET_PROP_NAMES.has(memberProperty.name) + + if (!isAccessingMatchedProperty) { + return + } + if (isParentPromiseAllCallExpression(memberAccessPath, j)) { return }