aws-amplify / aws-amplify/amplify-codegen

Add Option to Consume Depth Only on @model Joins, Allow Infinite Non-@model Nesting

Open
#943 0 comments 0 reactions 0 assignees View on GitHub
amplify-codegen feature-request
Dominant language
TypeScript
Stars
59
Forks
64
PR merge metrics
No merged PRs in 30d

Description

### Describe the feature you'd like to request

Problem
The current amplify-codegen depth logic (--maxDepth) increments depth for every nesting level, including into non-@model types (embedded objects/lists within a table). This limits traversal into a single table’s embedded structures, treating them as equivalent to joins, when only @model relationships (table-to-table joins) should consume depth.

### Describe the solution you'd like

Add an option to redefine depth so:
1. Depth Consumes Only on @model Joins: Nesting into non-@model types doesn’t increment depth.
2. Infinite Non-@model Depth: Fully expand embedded types without depth limits, respecting cycles.

Benefits
1. Logical Complexity: Depth reflects table joins (e.g., Todo to User @model), not embedded structure within a table, matching Amplify’s single-table design model.
2. Full Embedded Exposure: Infinite depth for non-@model types allows complete traversal of a table’s embedded data.

Proposed Implementation
New Config Option: `depthByModelOnly: true` (default false)—Depth increments only for @model joins, preserving current behavior unless opted in.

### Describe alternatives you've considered

None

### Additional context

_No response_

### Is this something that you'd be interested in working on?

- [ ] 👋 I may be able to implement this feature request

### Would this feature include a breaking change?

- [ ] ⚠️ This feature might incur a breaking change

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.