Sort operations to guarantee a stable order (#156)

Problem: currently when using a wildcard that covers multiple files in `operations:` YAML directive the generator emits functions in a non-stable ordering due to the use of map for storing file names:

https://github.com/Khan/genqlient/blob/e0accbded177db9143314911bacedf61b2cda656/generate/parse.go#L68-L84

Solution: sort the operations before emitting them.
This commit is contained in:
Nikolay Edigaryev
2021-11-26 23:32:03 +03:00
committed by GitHub
parent 2fdbb629be
commit f80df6d4f1
5 changed files with 445 additions and 329 deletions
+24 -24
View File
@@ -69,30 +69,6 @@ func (v *getViewerViewerUser) GetMyName() string { return v.MyName }
// GetCreatedAt returns getViewerViewerUser.CreatedAt, and is useful for accessing the field via an interface.
func (v *getViewerViewerUser) GetCreatedAt() time.Time { return v.CreatedAt }
func getViewer(
ctx context.Context,
client graphql.Client,
) (*getViewerResponse, error) {
var err error
var retval getViewerResponse
err = client.MakeRequest(
ctx,
"getViewer",
`
query getViewer {
viewer {
MyName: name
createdAt
}
}
`,
&retval,
nil,
)
return &retval, err
}
// getUser gets the given user's name from their username.
func getUser(
ctx context.Context,
@@ -121,3 +97,27 @@ query getUser ($Login: String!) {
)
return &retval, err
}
func getViewer(
ctx context.Context,
client graphql.Client,
) (*getViewerResponse, error) {
var err error
var retval getViewerResponse
err = client.MakeRequest(
ctx,
"getViewer",
`
query getViewer {
viewer {
MyName: name
createdAt
}
}
`,
&retval,
nil,
)
return &retval, err
}