* Make the executor and validation APIs public to enable splitting parsing and execution into two stages
Based on https://github.com/graphql-rust/juniper/pull/773#issuecomment-703783048 and https://github.com/graphql-rust/juniper/pull/773#issuecomment-704009918
* Fix fmt warning for visit_all_rules
* Add `Definition` to the public API so it's available for the result of compilation
* Make OperationType public so that user land code can tell the difference between query/mutation and subscription
* Add integrations tests for execute_validated_query_async, visit_all_rules, get_operation, and resolve_validated_subscription
Co-authored-by: Christian Legnitto <LegNeato@users.noreply.github.com>
* Resolves#818. Updates Object key_value_list to use HashMap<String, Value<S>>. Updates test cases.
* Updates to use IndexMap. Reverts changes to test cases.
Co-authored-by: Christian Legnitto <LegNeato@users.noreply.github.com>
* Support subscriptions for GraphiQL and Playground.
Add support for subscriptions for GraphiQL and Playground in `juniper_rocket_async`.
* Update example.
Co-authored-by: Christian Legnitto <LegNeato@users.noreply.github.com>
* Update juniper_codegen for syn 1.0.60
syn 1.0.60 has updated it's `Type::__Nonexhaustive` to
`Type::TestExhaustive`, breaking juniper. This updates juniper to use
the recommended idiom for doing exhaustive matching on `Type`, which
fixes this.
Not entirely clear if we need exhaustive matching here or if we could
just use a fallback, but this fixes the build at least.
Also updated the minimum syn so users have to pull it in
* Update example to use relative deps
As otherwise CI fails on this branch
* Use working GraphQL Playground version
the linked file on jsDelivr doesn't work, as I detailed in this issue on the GraphQL Playground repo (https://github.com/graphql/graphql-playground/issues/1310). Going back to version 1.7.20 ensures the playground loads for now until they can publish a new version with a working middleware.js file.
* Add versions for css and favicon
* Update from 1.7.20 to 1.7.26
Using latest version that still works