aws-amplify / aws-amplify/amplify-codegen
Add Option to Consume Depth Only on @model Joins, Allow Infinite Non-@model Nesting
- 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
Assessment
This issue has not been assessed yet.