Skip to content

Instantly share code, notes, and snippets.

@batazor
Created November 27, 2019 23:54
Show Gist options
  • Save batazor/0031a54dc7bb6e5ad9897168451339d8 to your computer and use it in GitHub Desktop.
Save batazor/0031a54dc7bb6e5ad9897168451339d8 to your computer and use it in GitHub Desktop.
packr.go
// GetHandler ...
func (api *API) GetHandler() *relay.Handler {
buf := bytes.Buffer{}
pkger.Walk("/pkg/api/graphql/schema", func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if !info.IsDir() {
file, _ := pkger.Open(path)
f := make([]byte, info.Size())
_, err := file.Read(f)
// Add a newline if the file does not end in a newline.
if len(f) > 0 && f[len(f)-1] != '\n' {
if err := buf.WriteByte('\n'); err != nil {
panic(err)
}
}
if err != nil {
panic(err)
}
if _, err := buf.Write(f); err != nil {
panic(err)
}
}
return nil
})
s := graphql.MustParseSchema(buf.String(), &resolver.Resolver{Store: api.store})
handler := relay.Handler{Schema: s}
return &handler
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment