move TODOs into issues

This commit is contained in:
Ben Kraft
2021-04-21 19:05:38 -07:00
parent 748f2cf072
commit b399e0d740
8 changed files with 5 additions and 78 deletions
-42
View File
@@ -87,45 +87,3 @@ Khan Academy is a non-profit organization with a mission to provide a free, worl
### Design
See [DESIGN.md](DESIGN.md) for documentation of major design decisions in this library.
### Major TODOs
(+) denotes things we further need before recommending anyone else use this in prod
Basic features:
- redo support for interfaces, unions, fragments (see DESIGN)
Fancy features:
- allow `__all` to request all fields (probably a terrible idea though)
- plugin to make `_entities` queries for apollo federation easy (basically you would just write the fragment)
- auto-caching -- if you `@genqlient(cache: true)` we cache (you can pass a cache into the client or something)
Generated code customization:
- add flag(s) to make a field use a pointer (for optionality or perf; see DESIGN)
- collapsing -- should be able to have `mutation { myMutation { error { code } } }` just return `(code string, err error)`
- map a field to a particular Go type (if you want to use a named type for some string, say)
- specify a particular name for a Go type, or for the helper function, or whatever else
- include full query in generated godoc
Config options:
- proper config/arguments setup (e.g. with [viper](https://github.com/spf13/viper))
- (+) improve client_getter to be more usable (and document it), maybe by just saying it has to be a function that takes context, or flag it out for now.
- get schema via GraphQL introspection (although honestly, it seems like SDL is becoming popular enough there may be no need)
- whether names should be exported
- default handling for optional fields? (maybe generate a HasFoo, you can always ignore if you don't care)
- generate mocks?
Runtime:
- (+) basic tests for graphql package
- integration tests against common servers for graphql package
- send hash rather than full query
Internal:
- set up linting beyond `go vet`
- switch to a snapshot testing lib (cupaloy looks good) for tests
Other:
- (+) API cleanup (check godoc)
- (+) improved validation and error checking
- (+) documentation
- get a designer to fix my bad logo-thing