summaryrefslogtreecommitdiff
path: root/Data
AgeCommit message (Collapse)Author
2016-02-15Initial support for variable substitutionDanny Navarro
The correspondent end-to-end test has been ported. The variable definition still needs to be checked.
2016-02-12Handle Field arguments in Schema definitionDanny Navarro
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-09Handle Output enumerations in Schema definitionDanny Navarro
The third end-to-end test from graphql-js was implemented.
2016-02-08Extend `execute` for deeper queriesDanny Navarro
The second graphql-js end-to-end test was ported and passed successfully.
2016-02-05Introduce `graphql` functionDanny Navarro
This simplifies Attoparsec parsing when executing a GraphQL query.
2016-01-30Generalize `Maybe` type constructor to any MonadDanny Navarro
This allows schema definitions with side-effects for any type with a Monadic/Alternative implementation like IO for example.
2016-01-27Remove unnecessary importDanny Navarro
2016-01-26Fix for GHC-7.8.4Danny Navarro
2016-01-26GardenDanny Navarro
2016-01-26Rough implementation of `execute`Danny Navarro
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.
2015-10-19Implement first StarWars end-to-end testDanny Navarro
`execute` still needs to be implemented.
2015-10-17Test fixtures for Schema toplevelDanny Navarro
This includes simplications to the Schema data types.
2015-10-17Initial stub for a `GraphQL` and `execute`Danny Navarro
2015-09-25Adds IsString instance to Variable for easier REPL playingtimmy_tofu
2015-09-22Rename `Data.GraphQL.Printer` -> `Data.GraphQL.Encoder`Danny Navarro
2015-09-22Fixes for ghc-7.8Danny Navarro
2015-09-22Add kitchen sink parse/encode unit testDanny Navarro
This also includes the fixes to make it work. Golden tests have been removed.
2015-09-22Fix alias colon orderDanny Navarro
2015-09-22Polish printer codeDanny Navarro
- Add printing combinators to make code more readable. - Optimize printing for encoding. Pretty printing will be in a different module.
2015-09-22Parser fixes:Danny Navarro
- Braces instead of parens for `inputValueDefinitions`. - Rename `bool` -> `booleanValue`. - Some code rearrangements.
2015-09-21Initial implementation of GraphQL pretty printerDanny Navarro
This just typechecks. It needs to be cleaned and tested. Tests have been deactivated.
2015-09-21Introduce `Node` data type to simplify `OperationDefinition`Danny Navarro
Thanks to @swolchok for the suggestion.
2015-09-21Add errors for all parser `Alternative`sDanny Navarro
2015-09-18Handle escaped quotes for GraphQL String ValuesDanny Navarro
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-18GolfDanny Navarro
2015-09-18Parse secure namesDanny Navarro
2015-09-18Refine numeric typesDanny Navarro
2015-09-18GardenDanny Navarro
2015-09-16Support ghc-7.8Danny Navarro
2015-09-14Enable warnings and take care of extra importsDanny Navarro
2015-09-14Handle comments in whitespaceDanny Navarro
2015-09-14Fix `value` parsingDanny Navarro
- Add missing variable parsing. - Reuse `name` in value string. This parses successfully the `kitchen-sink.graphql` sample from `graphql-js`.
2015-09-14Replace `take...` functions with `many...`Danny Navarro
They are less efficient but they are giving me issues because they don't fail. Once this is working I'll look into optimizing. Also disable skipping comments until I figure out how to skip both comments and space at the same time.
2015-09-14Several improvements to the parserDanny Navarro
- Add token combinator to simplify whitespace handling. - Simplify whiteSpace parsers. - Add `optempty` to handle pure mempty cases. `empty /= pure mempty`. - Use `between` combinators for brackets, braces and parens. This also includes small adjustments to the AST.
2015-09-13Add missing `=` required default values and unionsDanny Navarro
2015-09-13Take care of commentsDanny Navarro
2015-09-13Add GraphQL parserDanny Navarro
WIP: This parser just type checks, it hasn't even been tested manually. Check new tasks in the TODO file and the TODO comments in the code for more gotchas.
2015-09-13Minor adjustments in AST for easier parsingDanny Navarro
Also `Maybe` wrappers removed. I don't think there needs to be a special case for empty values vs no values at all.
2015-09-12Add missing OperationDefinition `Name`Danny Navarro
2015-09-12Rename module `Data.GraphQL` -> `Data.GraphQL.AST`Danny Navarro
2015-09-12Initial commitDanny Navarro
This includes a rough port of the data types at https://github.com/graphql/graphql-js/blob/master/src/language/ast.js