Skip to content

Commit 07fcbe7

Browse files
authored
fix: array schema output order (#329)
previously the dependency graph didn't consider top-level array `items` correctly, which meant you could have situations that resulted in errors like: ``` error TS2454: Variable 's_SomeArrayItems' is used before being assigned. ```
1 parent ddba630 commit 07fcbe7

File tree

6 files changed

+29
-14
lines changed

6 files changed

+29
-14
lines changed

integration-tests/typescript-express/src/generated/api.github.com.yaml/schemas.ts

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

integration-tests/typescript-koa/src/generated/api.github.com.yaml/schemas.ts

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/openapi-code-generator/src/core/dependency-graph.spec.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ describe.each(testVersions)("%s - core/dependency-graph", (version) => {
2121
graph.order.indexOf("s_AOrdering"),
2222
)
2323

24+
expect(graph.order.indexOf("s_AArrayOrdering")).toBeGreaterThan(
25+
graph.order.indexOf("s_ZOrdering"),
26+
)
27+
2428
expect(graph.order.indexOf("s_ObjectWithRefs")).toBeGreaterThan(
2529
graph.order.indexOf("s_SimpleObject"),
2630
)

packages/openapi-code-generator/src/core/dependency-graph.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ const getDependenciesFromSchema = (
3131
? [schema.additionalProperties]
3232
: [],
3333
)
34+
.concat(schema.type === "array" ? [schema.items] : [])
3435

3536
return allSources.reduce((acc, it) => {
3637
if (isRef(it)) {

packages/openapi-code-generator/src/test/unit-test-inputs-3.0.3.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,11 @@ components:
152152
name:
153153
type: string
154154

155+
AArrayOrdering:
156+
type: array
157+
items:
158+
$ref: '#/components/schemas/ZOrdering'
159+
155160
AdditionalPropertiesBool:
156161
type: object
157162
additionalProperties: true

packages/openapi-code-generator/src/test/unit-test-inputs-3.1.0.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,11 @@ components:
156156
name:
157157
type: string
158158

159+
AArrayOrdering:
160+
type: array
161+
items:
162+
$ref: '#/components/schemas/ZOrdering'
163+
159164
AdditionalPropertiesBool:
160165
type: object
161166
additionalProperties: true

0 commit comments

Comments
 (0)