Skip to content

Commit 0268405

Browse files
LekoArtspieh
andauthored
fix(gatsby): Stabilize types output of GraphQL Typegen (#35925)
* initial * Update packages/gatsby/src/utils/graphql-typegen/utils.ts Co-authored-by: Michal Piechowiak <[email protected]> Co-authored-by: Michal Piechowiak <[email protected]>
1 parent 76ed6a8 commit 0268405

File tree

2 files changed

+24
-10
lines changed

2 files changed

+24
-10
lines changed

packages/gatsby/src/utils/graphql-typegen/ts-codegen.ts

+17-10
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,11 @@ import type { TypeScriptDocumentsPluginConfig } from "@graphql-codegen/typescrip
88
import { CodeFileLoader } from "@graphql-tools/code-file-loader"
99
import { loadDocuments } from "@graphql-tools/load"
1010
import { IDefinitionMeta, IStateProgram } from "../../redux/types"
11-
import { filterTargetDefinitions, stabilizeSchema } from "./utils"
11+
import {
12+
filterTargetDefinitions,
13+
sortDefinitions,
14+
stabilizeSchema,
15+
} from "./utils"
1216

1317
const OUTPUT_PATH = `src/gatsby-types.d.ts`
1418
const NAMESPACE = `Queries`
@@ -104,6 +108,7 @@ export async function writeTypeScriptTypes(
104108
},
105109
}),
106110
],
111+
sort: true,
107112
}
108113
)
109114
} catch (e) {
@@ -112,15 +117,17 @@ export async function writeTypeScriptTypes(
112117

113118
const documents: Array<Types.DocumentFile> = [
114119
...filterTargetDefinitions(definitions).values(),
115-
].map(definitionMeta => {
116-
return {
117-
document: {
118-
kind: Kind.DOCUMENT,
119-
definitions: [definitionMeta.def],
120-
},
121-
hash: definitionMeta.hash.toString(),
122-
}
123-
})
120+
]
121+
.sort(sortDefinitions)
122+
.map(definitionMeta => {
123+
return {
124+
document: {
125+
kind: Kind.DOCUMENT,
126+
definitions: [definitionMeta.def],
127+
},
128+
hash: definitionMeta.hash.toString(),
129+
}
130+
})
124131

125132
const codegenOptions: Omit<Types.GenerateOptions, "plugins" | "pluginMap"> = {
126133
// @ts-ignore - Incorrect types

packages/gatsby/src/utils/graphql-typegen/utils.ts

+7
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,13 @@ export function stabilizeSchema(schema: GraphQLSchema): GraphQLSchema {
1414
return lexicographicSortSchema(schema)
1515
}
1616

17+
export function sortDefinitions(
18+
a: IDefinitionMeta,
19+
b: IDefinitionMeta
20+
): number {
21+
return a.name.localeCompare(b.name)
22+
}
23+
1724
/**
1825
* Internally in Gatsby we use the function generateQueryName:
1926
* packages/gatsby/src/query/file-parser.js

0 commit comments

Comments
 (0)