Support package-names with dashes in them (#232)

Support package-names with dashes in them

We were smart about aliasing if you have name-collisions, but not if
your package name is something that's not a valid identifier, like
`"path/to/my-package"`, which Go for better or worse allows. Now we
remove all the invalid characters (in practice mainly dashes, dots, and
leading digits).

Fixes #231.

Test plan: make check
This commit is contained in:
Ben Kraft
2022-11-09 09:43:04 -08:00
committed by GitHub
parent 1d71fffcb6
commit 80687e7336
6 changed files with 197 additions and 2 deletions
@@ -0,0 +1,68 @@
// Code generated by github.com/Khan/genqlient, DO NOT EDIT.
package queries
import (
"context"
"github.com/Khan/genqlient/graphql"
junkfunname "github.com/Khan/genqlient/internal/testutil/junk---fun.name"
)
// Check that context_type from genqlient.yaml implements context.Context.
var _ context.Context = (junkfunname.MyContext)(nil)
// SimpleQueryResponse is returned by SimpleQuery on success.
type SimpleQueryResponse struct {
// user looks up a user by some stuff.
//
// See UserQueryInput for what stuff is supported.
// If query is null, returns the current user.
User SimpleQueryUser `json:"user"`
}
// GetUser returns SimpleQueryResponse.User, and is useful for accessing the field via an interface.
func (v *SimpleQueryResponse) GetUser() SimpleQueryUser { return v.User }
// SimpleQueryUser includes the requested fields of the GraphQL type User.
// The GraphQL type's documentation follows.
//
// A User is a user!
type SimpleQueryUser struct {
// id is the user's ID.
//
// It is stable, unique, and opaque, like all good IDs.
Id string `json:"id"`
}
// GetId returns SimpleQueryUser.Id, and is useful for accessing the field via an interface.
func (v *SimpleQueryUser) GetId() string { return v.Id }
func SimpleQuery(
ctx junkfunname.MyContext,
client graphql.Client,
) (*SimpleQueryResponse, error) {
req := &graphql.Request{
OpName: "SimpleQuery",
Query: `
query SimpleQuery {
user {
id
}
}
`,
}
var err error
var data SimpleQueryResponse
resp := &graphql.Response{Data: &data}
err = client.MakeRequest(
ctx,
req,
resp,
)
return &data, err
}