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.
This commit is contained in:
Danny Navarro
2016-01-26 12:43:18 +01:00
parent 4e5dc3433a
commit bb685c9afa
4 changed files with 135 additions and 116 deletions

View File

@ -27,11 +27,10 @@ library
Data.GraphQL.Execute
Data.GraphQL.Schema
Data.GraphQL.Parser
build-depends: base >=4.7 && < 5,
text >=0.11.3.1,
aeson >=0.7.0.3,
attoparsec >=0.10.4.0,
unordered-containers >=0.2.5.0
build-depends: base >= 4.7 && < 5,
text >= 0.11.3.1,
aeson >= 0.7.0.3,
attoparsec >= 0.10.4.0
test-suite tasty
default-language: Haskell2010
@ -41,12 +40,12 @@ test-suite tasty
ghc-options: -Wall
other-modules: Paths_graphql
Test.StarWars
build-depends: base >=4.6 && <5,
aeson >=0.7.0.3,
text >=0.11.3.1,
attoparsec >=0.10.4.0,
tasty >=0.10,
tasty-hunit >=0.9,
build-depends: base >= 4.6 && <5,
aeson >= 0.7.0.3,
text >= 0.11.3.1,
attoparsec >= 0.10.4.0,
tasty >= 0.10,
tasty-hunit >= 0.9,
graphql
source-repository head