Commit Graph

100 Commits

Author SHA1 Message Date
Daniel Tschinder
06c6c4bd97 Validate schema root types and directives
This moves validation out of GraphQLSchema's constructor (but not yet from other type constructors), which is responsible for root type validation and interface implementation checking.

Reduces time to construct GraphQLSchema significantly, shifting the time to validation.

This also allows for much looser rules within the schema builders, which implicitly validate while trying to adhere to flow types. Instead we use any casts to loosen the rules to defer that to validation where errors can be richer.

This also loosens the rule that a schema can only be constructed if it has a query type, moving that to validation as well. That makes flow typing slightly less nice, but allows for incremental schema building which is valuable

ref: graphql/graphql-js#1124
2018-02-13 10:42:35 +01:00
Daniel Tschinder
f661f38215 Fix unhandled error when parsing custom scalar literals.
This factors out the enum value validation from scalar value validation and ensures the same try/catch is used in isValidLiteralValue as isValidPHPValue and protecting from errors in valueFromAST.
ref: graphql/graphql-js#1126
2018-02-11 22:31:04 +01:00
Daniel Tschinder
d70a9a5e53 Update to match SDL changes
This changes the parsing grammar and validation rules to more correctly implement the current state of the GraphQL SDL proposal (facebook/graphql#90)

ref: graphql/graphl-js#1102
2018-02-11 13:27:26 +01:00
Daniel Tschinder
d6add77540 Add Docs 2018-02-10 18:46:37 +01:00
Vladimir Razuvaev
8cd154776e Added graphql-upload to the list of complementary tools 2018-01-19 13:58:07 +07:00
Vladimir Razuvaev
b534bfbbf1 Docs: Mention PSR15-compliant middleware in complementary tools section 2018-01-01 22:07:15 +07:00
Vladimir Razuvaev
57f5ee3783 Fixed typo in docs, see #185 2017-10-16 23:06:21 +07:00
Vladimir Razuvaev
fb0ca607e2 Fixed a mistake in the type language documentation (#176) 2017-09-29 20:07:36 +07:00
Vladimir Razuvaev
79ebc54538 Minor docs improvements 2017-09-05 15:29:46 +07:00
Vladimir Razuvaev
a1652468f0 Fixed minor error in docblock comment 2017-08-21 00:19:07 +07:00
Vladimir Razuvaev
a3b6974249 Added entry in docs about schema config class 2017-08-20 22:59:40 +07:00
Vladimir Razuvaev
7f346d5658 Documentation improvements 2017-08-20 22:10:37 +07:00
Vladimir Razuvaev
bd444752f8 Documentation and docblock improvements 2017-08-20 16:00:44 +07:00
Vladimir Razuvaev
009cdecb94 Reference docs generated from docblocks 2017-08-19 23:02:34 +07:00
Vladimir Razuvaev
99356f7faf Docs on security 2017-08-18 20:56:47 +07:00
Vladimir Razuvaev
4f374bca83 Docs about custom validation rules 2017-08-18 20:56:34 +07:00
Vladimir Razuvaev
637156fe65 Further documentation improvements 2017-08-18 02:56:22 +07:00
Vladimir Razuvaev
2537a62ec2 Documented server usage 2017-08-18 02:56:07 +07:00
Vladimir Razuvaev
c04d037fb1 Documentation improvements 2017-08-17 20:35:58 +07:00
Vladimir Razuvaev
c65d8d8624 Documented lazy loading of types in schema and ability to define schema using GraphQL type language 2017-08-17 20:35:35 +07:00
Vladimir Razuvaev
1d38643538 Ability to re-throw resolver exceptions 2017-08-17 03:01:23 +07:00
Vladimir Razuvaev
a2be92937e Documentation improvements (wip) 2017-08-17 02:17:01 +07:00
Vladimir Razuvaev
b294329a40 Added reference section to docs 2017-08-17 02:16:45 +07:00
Vladimir Razuvaev
34eae0b891 Schema validation + tests (#148) 2017-08-13 23:04:03 +07:00
Vladimir Razuvaev
d3580e959e Moved Schema to GraphQL\Type namespace (but preserved BC) 2017-08-12 21:40:03 +07:00
Vladimir Razuvaev
38922dbbed Default error formatter now returns "Internal server error" unless error is client-aware and safe to report directly to end-users 2017-07-18 20:57:30 +07:00
Vladimir Razuvaev
296544089c Moved GraphQL\Utils to GraphQL\Utils\Utils 2017-07-10 19:53:46 +07:00
Adrien Crivelli
5ca69c6ec8
Make Hello World compatible with GraphiQL
This allow newcomers to follow documentation to get started and then
keep exploring with GraphiQL

Closes #87
2017-03-22 10:53:00 +09:00
Adrien Crivelli
070ab7d430 Simplify install instructions
Composer can create `composer.json` if missing, and letting 
composer pick the latest version by itself is more future proof than
hardcoding a version that need to be changed on each release.
2017-03-20 23:15:17 +09:00
vladar
fa9611738d v0.9.0 2017-01-19 19:28:41 +07:00
vladar
ff3a40d329 Execution: modified deferred behavior to be more predictable (+added more tests for them) 2016-12-17 05:14:51 +07:00
vladar
9826f9a1f3 Docs: fixed version name 9.0 -> 0.9.0 2016-12-15 19:27:43 +07:00
vladar
0483560ee5 Fixed wrong "current version" number in docs 2016-12-14 20:34:48 +07:00
vladar
c7688c9249 Added "since" entry to docs for N+1 problem and async support 2016-12-14 20:22:38 +07:00
vladar
8e39b3d88d Added entry on data fetching to docs 2016-12-14 20:19:12 +07:00
vladar
961e44c1fc Version 0.8.0 2016-11-25 18:09:18 +07:00
vladar
2cc2255b1a Work in progress on better docs 2016-11-25 18:07:51 +07:00
vladar
7ee3431298 Added badges to docs + added section on complementary tools 2016-11-25 17:44:34 +07:00
vladar
0969073b8a Reverted DefinitionContainer (YAGNI) 2016-11-25 16:54:57 +07:00
vladar
0ab55ec0d9 Replaced "AST" with "Node" in variable names for better readability 2016-11-19 06:47:55 +07:00
vladar
8d696edee5 Renamed AST nodes to *Node to disambiguate types 2016-11-19 06:12:18 +07:00
vladar
399a340973 Minor change in error handling docs 2016-11-11 01:00:55 +07:00
vladar
37cb4d00ab Work in progress on better docs (minor changes) 2016-11-08 20:27:45 +07:00
vladar
ccad34517c Work in progress on better docs (added section on query execution and error handling) 2016-11-08 20:02:10 +07:00
vladar
24b2285ffe Work in progress on better docs (added sections on directives and schema to docs) 2016-11-08 17:17:48 +07:00
vladar
e6addd4644 Minor fixes in docs 2016-11-07 18:23:59 +07:00
vladar
ca01900e9d Work in progress on better docs (added docs for field arguments and input types) 2016-11-07 01:52:15 +07:00
vladar
3514b5ac83 Work in progress on better docs (added docs for interfaces and unions) 2016-11-06 23:45:22 +07:00
vladar
e69667c633 Work in progress on better docs 2016-11-05 23:55:51 +07:00
vladar
f9740c5f2c Work in progress on better docs 2016-10-23 22:16:32 +07:00