Commit Graph

202 Commits

Author SHA1 Message Date
Eugen Wissner e8b82122c6 Try all extension parsers 2020-01-28 11:08:28 +01:00
Eugen Wissner a6bd2370b6 Parse type extensions
Signed-off-by: Eugen Wissner <belka@caraus.de>
2020-01-26 11:55:15 +01:00
Eugen Wissner b4a3c98114 Parse schema extensions 2020-01-25 16:45:39 +01:00
Eugen Wissner cb5270b197 Update copyright 2020-01-21 23:27:21 +01:00
Eugen Wissner 3ef27f9d11 Add "extend symbol" lexer to parse extensions 2020-01-17 12:29:06 +01:00
Eugen Wissner ba710a3c96 Parse complete TypeSystemDefinition 2020-01-15 20:20:50 +01:00
Eugen Wissner d257d05d4e Parse enum and input object type definitions 2020-01-13 08:21:02 +01:00
Eugen Wissner adffa185bb Parse interface type definition 2020-01-13 08:21:02 +01:00
Eugen Wissner f4ed06741d Parse union definitions 2020-01-13 08:21:02 +01:00
Eugen Wissner 8efb08fda1 Parse ObjectDefinition 2020-01-13 08:21:02 +01:00
Eugen Wissner d9a2937b55 Parse SchemaDefinition 2020-01-13 08:18:30 +01:00
Eugen Wissner f4f076fa59 Reduce usage of the opt parser
opt directives = some directive
All other occurrences of opt parse an optional list withing some
delimiters (braces, parens).
2020-01-13 08:11:22 +01:00
Eugen Wissner 6d951491be Replace Parser.manyNE with NonEmpty.some 2020-01-12 07:19:28 +01:00
Eugen Wissner dd8f312cb3 Rewrite argument list to argument map 2020-01-01 10:58:11 +01:00
Eugen Wissner d82d5a36b3 Retrieve resolver arguments from the reader 2019-12-31 08:29:03 +01:00
Eugen Wissner 44dc80bb37 Replace substitution function with a map
It makes using variables with queries more approachable, but some work
still has to be done.
- The type `Subs` should be renamed and moved out of `Schema`, together with
`AST.Core.Value` probably.
- Some kind of conversion should be possible from a user-defined input
type T to the Value. So the final HashMap should have a type like
`HashMap name a`, where a is an instance of a potential typeclass
InputType.
2019-12-30 18:26:24 +01:00
Eugen Wissner fdf5914626 Move AST to AST.Document 2019-12-28 07:07:58 +01:00
Eugen Wissner 78ee76f9d5 Define schema AST.
Large parts of the schema aren't exported publically. They will be made
public during writing the parser.

Fixes #6.
2019-12-27 09:14:12 +01:00
Eugen Wissner 56d88310df Add definition module 2019-12-26 13:07:21 +01:00
Eugen Wissner e3a495a778 Add changelog header and versioning policy 2019-12-26 13:05:17 +01:00
Eugen Wissner 62f3c34bfe Replace AST.Selection data constructors 2019-12-25 06:45:29 +01:00
Eugen Wissner bdf711d69f Release 0.6.1.0 2019-12-23 06:35:32 +01:00
Eugen Wissner b215e1a4a7 Pretify multi-line string arguments as block strings
Fixes #10.
2019-12-21 09:25:05 +01:00
Eugen Wissner 1e55f17e7e Encode Unicode. Fix #34 2019-12-20 07:58:09 +01:00
Eugen Wissner 9a5d54c035 Escape non-source characters in the encoder 2019-12-19 06:59:27 +01:00
Eugen Wissner 0cbe69736b Move Execute.Directive to Type.Directive
Just to roughly follow the structure of the reference implementation.
2019-12-18 09:03:18 +01:00
Eugen Wissner 4c0d226030 Move Transform to Language.GraphQL.Execute
Language.GraphQL.AST.Transform is an internal module. Even though it
works with the AST, it is a part of the execution process, it translates
the original parser tree into a simpler one, so the executor has less
work to do. Language.GraphQL.AST should contain only the parser and be
independent from other packages, so it can be used on its own.
2019-12-07 09:46:00 +01:00
Eugen Wissner 3c1a5c800f Support directives (skip and include)
Fixes #24.
2019-12-06 22:52:24 +01:00
Eugen Wissner fc9ad9c4a1 Consider __typename when evaluating fragments
Fixes #30.
2019-12-02 07:43:19 +01:00
Sam Nolan def52ddc20 Fix strings not consuming spaces
Fixes #28
2019-11-28 19:09:26 +11:00
Eugen Wissner 3497784984 Release 0.6.0.0 2019-11-27 08:26:51 +01:00
Eugen Wissner 587aab005e Add a reader instance to the resolvers
The Reader contains a Name/Value hashmap, which will contain resolver
arguments.
2019-11-23 09:49:12 +01:00
Eugen Wissner 625d7100ca Try type parsers in a different order 2019-11-22 08:00:50 +01:00
Sam Nolan 73e21661b4 Fix failed parsing on multiple required arguments
Fixes #25.
2019-11-21 08:51:42 +01:00
Eugen Wissner 7b92e5bcfd Rewrite selections into a Sequence. Fix #21 2019-11-16 11:41:40 +01:00
Eugen Wissner 115aa02672 Fail on cyclic fragments, fix #22 2019-11-14 20:40:09 +01:00
Eugen Wissner 31c516927d Support nested fragments in any order
Fix #19.
2019-11-12 10:47:10 +01:00
Eugen Wissner 1dd6b7b013 Support nested fragments
... without forward lookup.
2019-11-09 23:24:31 +01:00
Eugen Wissner b77da3d492 AST.Transform: Pass down a reader
The reader contains variable substitution functions and fragments.
2019-11-07 06:34:36 +01:00
Eugen Wissner 73fc334bf8 Move related modules to Language.GraphQL.AST
Fixes #18.

- `Language.GraphQL.Encoder` moved to `Language.GraphQL.AST.Encoder`.
- `Language.GraphQL.Parser` moved to `Language.GraphQL.AST.Parser`.
- `Language.GraphQL.Lexer` moved to `Language.GraphQL.AST.Lexer`.
- All `Language.GraphQL.AST.Value` data constructor prefixes were removed. The
  module should be imported qualified.
- All `Language.GraphQL.AST.Core.Value` data constructor prefixes were removed.
  The module should be imported qualified.
- `Language.GraphQL.AST.Transform` is now isn't exposed publically anymore.
2019-11-03 11:00:18 +01:00
Eugen Wissner 417ff5da7d Propagate Maybe in the transform tree
Since the transform tree can already find some errors, it may fail here
and there. Almost all functions return a Maybe to signalize an error.
Will be replaced with an Either of course.
2019-11-02 06:24:21 +01:00
Eugen Wissner 0e3b6184be Save fragments in a hash map
Fixes #20.
2019-10-31 07:32:51 +01:00
Eugen Wissner 51d39b69e8 Remove deprecated functions and aliases 2019-10-25 09:07:45 +02:00
Eugen Wissner 75bc3b8509 Release 0.5.1.0 2019-10-22 07:07:54 +02:00
Eugen Wissner c7d5b02911 Handle top-level fragments
Fixes #17.
2019-10-19 10:00:25 +02:00
Eugen Wissner 37254c8c95 Inline fragments without type
Fixes #11.
2019-10-11 23:28:55 +02:00
Eugen Wissner 856efc5d25 Support inline fragments on types 2019-10-08 09:03:07 +02:00
Eugen Wissner b2a9ec7d82 Deprecate plural type aliases
Fixes #16. Deprecates:

- Language.GraphQL.AST.Arguments
- Language.GraphQL.AST.Directives
- Language.GraphQL.AST.VariableDefinitions
2019-10-01 07:24:25 +02:00
Eugen Wissner 0d142fb01c Set STACK_ROOT to cache dependencies in the CI
Set STACK_ROOT to cache dependencies between the builds.
2019-09-30 07:09:58 +02:00
Eugen Wissner f767f6cd40 Ignore graphql.cabal
This file is generated and for releases another version is generated
anyway.
2019-09-29 07:39:18 +02:00