Danny Navarro
e944c76040
Add @Tritlo and @solrun as authors
2016-03-17 15:57:18 +01:00
Danny Navarro
77853b17ae
Merge branch 'all-improvements'
...
This adds general API documentation, a tutorial and error handling.
2016-03-15 14:02:34 +01:00
solrun
61d6af7778
Added documentation of functions and modules and included tutorial.lhs.
2016-03-14 01:42:55 +01:00
Matthías Páll Gissurarson
d195389102
Added exception handling with Alternative constraint according to spec.
2016-03-14 01:01:24 +01:00
Matthías Páll Gissurarson
b74278cd19
Added a tutorial, based on graphql-js and servant documentation.
2016-03-14 01:01:20 +01:00
Danny Navarro
d8a731fe30
Remove StringValue
type
2016-02-22 13:59:38 +01:00
Danny Navarro
770df82718
Simplify Schema definition API
...
Now there is one `Resolver` type and the `Output` and `Scalar` types
have been removed. This should be closer to the final Schema definition
API.
2016-02-19 19:21:32 +01:00
Danny Navarro
8ee50727bd
Overhaul Schema DSL
...
Aside of making the definition of Schemas easier, it takes care of
issues like nested aliases which previously wasn't possible. The naming
of the DSL functions is still provisional.
2016-02-18 13:49:02 +01:00
Danny Navarro
a6b2fd297b
Garden
2016-02-17 13:20:56 +01:00
Danny Navarro
7131d1c142
Initial support for aliases in execute
2016-02-17 13:20:56 +01:00
Danny Navarro
a0f12455c5
Add remaining tests with variables in arguments
...
The test with invalid ID is commented out until proper exception
handling is implemented.
2016-02-17 12:35:54 +01:00
Danny Navarro
98d2d41cda
Initial support for variable substitution
...
The correspondent end-to-end test has been ported. The variable
definition still needs to be checked.
2016-02-15 14:43:52 +01:00
Danny Navarro
119f94b38e
Clean up StarWars test queries
2016-02-15 11:19:05 +01:00
Danny Navarro
04d8d40b3a
Split StarWars tests in different modules
2016-02-12 13:27:46 +01:00
Danny Navarro
a088c81944
Handle Field arguments in Schema definition
...
The `Schema` has been overhauled to make `Output` monomorphic.
Traversing the `GraphQL` document is handled implicitly while defining
the `Schema`.
The 4th end-to-end test from `graphql-js` has been ported.
2016-02-12 12:51:18 +01:00
Danny Navarro
70fbaf359e
Split Character data type into Droid and Human
...
`Character` is now a synonym of the sum type of `Droid` and `Human`.
For now I don't see the need to implement GraphQL Schema interfaces with
type classes or lens. Plain Haskell ADTs should be good enough.
2016-02-09 14:38:19 +01:00
Danny Navarro
df8e43c9aa
Handle Output enumerations in Schema definition
...
The third end-to-end test from graphql-js was implemented.
2016-02-09 13:31:28 +01:00
Danny Navarro
c385566912
Bump copyright year
2016-02-08 17:35:33 +01:00
Danny Navarro
781788e306
Drop support for older stackage versions
2016-02-08 17:33:51 +01:00
Danny Navarro
1561e62489
Extend execute
for deeper queries
...
The second graphql-js end-to-end test was ported and passed
successfully.
2016-02-08 17:30:18 +01:00
Danny Navarro
53e101f35e
Simplify JSON notation in tests
2016-02-05 12:54:04 +01:00
Danny Navarro
c81ddb0335
Introduce graphql
function
...
This simplifies Attoparsec parsing when executing a GraphQL
query.
2016-02-05 12:32:35 +01:00
Danny Navarro
eca3c2d8d4
Generalize Maybe
type constructor to any Monad
...
This allows schema definitions with side-effects for any type with a
Monadic/Alternative implementation like IO for example.
2016-01-30 12:29:49 +01:00
Danny Navarro
a832991ac0
Remove unnecessary import
2016-01-27 18:52:20 +01:00
Danny Navarro
b72cfc097a
Fix for GHC-7.8.4
2016-01-26 13:57:58 +01:00
Danny Navarro
78e0d871d5
Garden
2016-01-26 13:38:02 +01:00
Danny Navarro
a70732a4b6
Pin stack to LTS-4.2
2016-01-26 13:35:53 +01:00
Danny Navarro
bb685c9afa
Rough implementation of execute
...
The first end-to-end test taken from `graphql-js` passes but this still
needs to be extended to support more general cases.
- `Data.GraphQL.Schema` has been heavily modified to support the
execution model. More drastic changes are expected in this module.
- When defining a `Schema` ordinary functions taking fields as input are
being used instead of maps. This makes the implementation of `execute`
easier, and, arguably, makes `Schema` definitions more *Haskellish*.
- Drop explicit `unordered-containers` dependency. `Aeson.Value`s and
field functions should be good enough for now.
2016-01-26 12:43:18 +01:00
Danny Navarro
4e5dc3433a
Implement first StarWars end-to-end test
...
`execute` still needs to be implemented.
2015-10-19 12:19:39 +02:00
Danny Navarro
3f30a44d1d
Test fixtures for Schema toplevel
...
This includes simplications to the Schema data types.
2015-10-17 17:49:56 +02:00
Danny Navarro
8e3bae4b5c
Initial stub for a GraphQL
and execute
2015-10-17 13:23:49 +02:00
Danny Navarro
c8f629e826
Merge pull request #2 from timmytofu/isstring-variable
...
`IsString` variable and .gitignore
2015-09-26 09:23:46 +02:00
timmy_tofu
85941139c1
Adds IsString instance to Variable for easier REPL playing
2015-09-25 19:12:22 -04:00
timmy_tofu
0848e65da2
Adds dist/ dir and cabal sandbox dir and file to gitignore
2015-09-25 19:11:42 -04:00
Danny Navarro
6ce2004264
Version Bump
...
This also includes updates to CHANGELOG, TODO and README.
2015-09-22 14:27:10 +02:00
Danny Navarro
af42e5577c
Rename Data.GraphQL.Printer
-> Data.GraphQL.Encoder
2015-09-22 14:23:18 +02:00
Danny Navarro
a4db99ea5d
Fixes for ghc-7.8
2015-09-22 14:02:49 +02:00
Danny Navarro
06b3302862
Add kitchen sink parse/encode unit test
...
This also includes the fixes to make it work. Golden tests have been
removed.
2015-09-22 14:02:49 +02:00
Danny Navarro
4508364266
Fix alias colon order
2015-09-22 11:16:36 +02:00
Danny Navarro
99b4d86702
Polish printer code
...
- Add printing combinators to make code more readable.
- Optimize printing for encoding. Pretty printing will be in a different
module.
2015-09-22 11:13:09 +02:00
Danny Navarro
da97387042
Parser fixes:
...
- Braces instead of parens for `inputValueDefinitions`.
- Rename `bool` -> `booleanValue`.
- Some code rearrangements.
2015-09-22 10:39:14 +02:00
Danny Navarro
e74ee640a8
Initial implementation of GraphQL pretty printer
...
This just typechecks. It needs to be cleaned and tested. Tests have been
deactivated.
2015-09-21 18:26:22 +02:00
Danny Navarro
3d97b3e2ff
Introduce Node
data type to simplify OperationDefinition
...
Thanks to @swolchok for the suggestion.
2015-09-21 10:05:09 +02:00
Danny Navarro
88ca3d1866
Add errors for all parser Alternative
s
2015-09-21 09:28:51 +02:00
Danny Navarro
899fa1b531
Handle escaped quotes for GraphQL String Values
...
This also includes a new type for Value String.
The tests fail now, although it parses successfully. I'll use a pretty
printer in next commit so that it's easier to spot the differences.
Onces this is working I'll add the rest of the escaped characters.
2015-09-18 18:11:11 +02:00
Danny Navarro
cb9977141d
Golf
2015-09-18 16:29:40 +02:00
Danny Navarro
4f4e31805a
Parse secure names
2015-09-18 15:43:22 +02:00
Danny Navarro
d88acf3d0e
Refine numeric types
2015-09-18 15:02:51 +02:00
Danny Navarro
c9c1137ceb
Garden
2015-09-18 14:55:59 +02:00
Danny Navarro
dac6721f02
Version bump and CHANGELOG
2015-09-16 11:16:16 +02:00