Commit graph

98 commits

Author SHA1 Message Date
Michael Macias
b61281b63a Implement traits for ID to make it usable outside its module
ID is a named tuple with a private String field. This prevents any
creation of an ID outside its own module. Traits, such as conversion and
dereference, are added to make ID usable without exposing its inner
field.
2017-01-20 03:29:37 -06:00
Magnus Hallin
907d78d41b Merge pull request #14 from zaeleus/variables-type-alias
Add type alias for query variables
2017-01-19 09:28:52 -08:00
Michael Macias
e3500dff50 Add type alias for query variables 2017-01-15 13:37:30 -06:00
Magnus Hallin
80a2aceb85 Merge pull request #16 from zaeleus/graphiql-body
Fix graphQLFetcher body serialization
2017-01-15 11:49:37 +01:00
Magnus Hallin
ba4c54f1a2 Merge pull request #12 from zaeleus/rustc_serialize
Make rustc-serialize optional
2017-01-15 11:46:45 +01:00
Michael Macias
fe96029e3a Fix graphQLFetcher body serialization
`params.variables` is already an object when passed to the fetcher and
does not need to be parsed.
2017-01-14 15:10:18 -06:00
Michael Macias
b78aef715d Make rustc-serialize optional
This extracts rustc-serialize JSON serialization into its own module,
decoupling all core structures from its use.

rustc-serialize can now be completely disabled, removing it as a
dependency if serde (or none) is used instead. It is, however, still the
default serializer. In Cargo, the `default-features` field must be set
to `false` to disable it, e.g.,

    [dependencies.juniper]
    version = "0.6"
    default-features = false
    features = ["serde"]

The Iron handlers still require rustc-serialize.

The default values for attributes changed from being formatted as JSON
to how it is defined in [the reference implementation][printer.js].

[printer.js]: https://github.com/graphql/graphql-js/blob/v0.8.2/src/language/printer.js
2017-01-06 21:34:44 -06:00
Magnus Hallin
8620eb1e7a Prepare for 0.6.1 release 2017-01-06 13:15:16 +01:00
Magnus Hallin
1af950401c Add support for declaring input objects as public structs
Fixes #5.
2017-01-06 13:08:39 +01:00
Magnus Hallin
fce45ece3f Merge pull request #8 from zaeleus/serde
Add optional Serde serialization support
2017-01-06 12:48:12 +01:00
Magnus Hallin
0e65a20c77 Merge pull request #9 from zaeleus/to_camel_case
Rename erroneously named to_snake_case
2017-01-06 12:43:28 +01:00
Magnus Hallin
ccf6b8399a Merge pull request #10 from zaeleus/graphqlerror-to-json
Remove JSON wrapper object from GraphQLError::to_json
2017-01-06 12:43:19 +01:00
Magnus Hallin
aed959176f Merge pull request #11 from zaeleus/graphiql
Update to graphiql 0.8.1
2017-01-06 12:42:41 +01:00
Michael Macias
4fce6062f0 Update to graphiql 0.8.1 2017-01-04 22:05:37 -06:00
Michael Macias
bd00e6c23d Remove JSON wrapper object from GraphQLError::to_json
This should be the responsibility of the caller and makes it consistent
with how the successful case is handled.
2017-01-04 21:40:15 -06:00
Michael Macias
b0c43341e4 Rename erroneously named to_snake_case
This function is transforming snake_case to camelCase.
2017-01-04 21:07:01 -06:00
Michael Macias
aa056dd562 Add optional Serde serialization support
This adds the Serde serialization trait to the following:

  * `ExecutionError`
  * `GraphQLError`
  * `InputValue` (+ deserialization)
  * `RuleError`
  * `SourcePosition`
  * `Spanning<ParseError>`
  * `Value`

Serde support is enabled via the "serde" feature flag.
2017-01-04 20:50:12 -06:00
Magnus Hallin
f33213e17e Release version 0.6.0 2017-01-02 13:15:45 +01:00
Magnus Hallin
8f3e60a71c Add notes about new API breaking changes 2016-12-28 19:15:54 +01:00
Magnus Hallin
853c92a0b7 Use borrowed string references in all AST nodes 2016-12-28 19:09:19 +01:00
Magnus Hallin
f066fca1f4 Use borrowed names when constructing Type instances 2016-12-28 19:09:19 +01:00
Magnus Hallin
1f62b628f9 Don't clone directive lists during execution 2016-12-28 12:03:23 +01:00
Magnus Hallin
5ce330a0e8 Don't clone argument names when building final argument hashmap 2016-12-28 11:59:50 +01:00
Magnus Hallin
d7e98d955a Don't clone field names when recursing down in selection sets 2016-12-28 11:51:37 +01:00
Magnus Hallin
13903d7628 Don't clone selection sets during execution 2016-12-28 11:28:48 +01:00
Magnus Hallin
6a4b883b97 Don't clone fragment names in executor 2016-12-28 11:13:45 +01:00
Magnus Hallin
96c1ad0ef9 Use bencher crate to run benchmarks on stable rust 2016-12-26 12:16:19 +01:00
Magnus Hallin
7a0439bad7 Add changelog 2016-12-23 23:58:21 +01:00
Magnus Hallin
ebda74ba91 Refactor IntoResolvable (previously IntoFieldResult)
It now supports a blanket implementation for all GraphQLTypes, and
resolving into new context types.
2016-12-23 13:12:12 +01:00
Magnus Hallin
6b8f4c9562 Move context type parameter to associated type of GraphQLType 2016-12-22 16:25:44 +01:00
Magnus Hallin
885fe8b09b Update API documentation link to our own
Fixes #6.
2016-12-18 19:52:14 +01:00
Magnus Hallin
b61ca14f53 Pass the executor immutably through resolution
The executor is now using internal mutability through RwLock to make
it thread-safe.
2016-12-11 20:09:52 +01:00
Magnus Hallin
cd33093dee Release version 0.5.3 2016-12-05 22:23:00 +01:00
Magnus Hallin
f3e0acc742 Add helper traits/macros to produce FieldResults 2016-12-05 22:18:42 +01:00
Magnus Hallin
3b71755521 Expose RuleError from crate root 2016-12-05 22:18:31 +01:00
Magnus Hallin
ff00b0c952 Merge pull request #4 from theduke/patch-1
Add cargo and API docs links
2016-12-05 21:22:14 +01:00
theduke
358f344fda Add cargo and API docs links 2016-12-05 17:06:09 +01:00
Magnus Hallin
46764de1a6 Add support for return statements in field resolver functions 2016-11-30 21:49:50 +01:00
Magnus Hallin
ca3832c6c2 Ignore InnerT when implementing Send/Sync for RootNode (unsafe) 2016-11-30 20:57:18 +01:00
Magnus Hallin
e5167e1aae Relax Iron handler context trait requirements 2016-11-30 20:50:08 +01:00
Magnus Hallin
f7123ed9db Cross off some tasks on the 1.0 todo 2016-11-13 10:41:46 +01:00
Magnus Hallin
7effd11348 Update readme to 0.5.2 2016-11-12 22:58:46 +01:00
Magnus Hallin
0ea61fa493 Add interface and union tests 2016-11-12 22:52:34 +01:00
Magnus Hallin
c555241978 Add executor tests, fix a bunch of bugs 2016-11-12 17:49:04 +01:00
Magnus Hallin
251f957a7f Add directive tests, fix some bugs 2016-11-12 11:03:42 +01:00
Magnus Hallin
478c7b7819 Add enum input value tests and improve validation 2016-11-12 10:24:23 +01:00
Magnus Hallin
b3a750ffa5 Add input variable tests, fix a bunch of related bugs 2016-11-09 21:48:21 +01:00
Magnus Hallin
ba7839f321 Use object shorthand in tests and documentation 2016-10-20 20:56:23 +02:00
Magnus Hallin
2b1c9cf906 Remove travis-cargo 2016-10-20 20:44:28 +02:00
Magnus Hallin
f4887badeb Add documentation for the union helper macro 2016-10-20 20:43:47 +02:00