Skip to content

Track generator: @hey-api/openapi-ts #5

Description

@aqeelat

Tool

Validation Criteria

For generic/template fixtures (generic-schema-binding, paginated-response, api-envelope), the output must use reusable parameterized types when the target language supports generics:

Output Classification
PaginatedTemplate<T> with PaginatedUserResponse = PaginatedTemplate<User> PASS
Separate PaginatedUserResponse { items: User[] } / PaginatedGroupResponse { items: Group[] } (duplicate concrete wrappers) PARTIAL — correct type content, lost reuse
PaginatedTemplate { items: unknown[] } (fallback to not: {}) DEGRADED

For recursive fixtures (recursive-category-tree, non-identifier-schema-key), dynamic scope must resolve to the active recursive type (e.g., children: LocalizedCategory[], not children: unknown[]).

Concrete materialization of generic fixtures is classified as PARTIAL because it defeats the type reuse that $dynamicRef provides. Languages without generics may use concrete wrappers as a documented fallback.

Current Result

Included in the expanded 9-tool matrix. Needs current generated output excerpts and type fidelity classification once the incoming PR is available.

Fixture Coverage

  • baseline-duplicated-pagination
  • generic-schema-binding
  • paginated-response
  • api-envelope
  • recursive-category-tree
  • nested-workspace-resources
  • non-identifier-schema-key

Next Action

Track upstream issue #3886 and the incoming PR. After the PR is opened, link it here, run focused cells for the dynamicRef fixtures, and classify the output using the criteria above. For generic fixtures, specifically check whether the output uses parameterized types (PASS) or materializes concrete wrappers (PARTIAL).

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:generatorSDK generator and type emitter trackinglang:typescriptTypeScript generator or type outputstatus:upstreamUpstream issue or PR exists

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions