21 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
Vladimir Razuvaev
296544089c Moved GraphQL\Utils to GraphQL\Utils\Utils 2017-07-10 19:53:46 +07:00
Vladimir Razuvaev
90e1ea4d22 Added tools for warnings with ability to suppress them 2017-07-04 17:13:05 +07:00
Vladimir Razuvaev
c3db8de9e7 Note about dunderscore becoming hard error in next version 2017-07-04 13:58:56 +07:00
Vladimir Razuvaev
c5484ae6f9 Convert error to warning for non-compliant usage of __ in names 2017-07-04 00:28:17 +07:00
Vladimir Razuvaev
445f579f09 Include expected type in isValidPHPValue error message 2017-07-03 18:24:58 +07:00
Vladimir Razuvaev
b471938f16 Consistent validation of type names + reject names starting with __ 2017-07-03 18:04:08 +07:00
Vladimir Razuvaev
a0657b7847 Refactored Lexer algorithm for better performance. Now O(N) vs O(N^2) previously (#137) 2017-06-24 22:42:55 +07:00
petecoop
fc629a292d BuildSchema and SchemaPrinter 2017-02-19 19:26:56 +00:00
Adam Dumas
97674cbbb9 Fixed Utils::assign() bug relating to detecting missing required keys 2017-02-13 12:50:34 -05:00
vladar
e97ca7f971 Execution: added SyncPromiseAdapter and made it default for Executor (+removed GenericPromiseAdapter) 2016-12-03 02:14:14 +07:00
vladar
439959b292 Enforce input coercion rules 2016-11-19 04:15:40 +07:00
Andreas Heiberg
80a662564e [style changes] arrays and callback 2016-11-16 17:29:50 +07:00
vladar
927997a705 Various tools for better error reporting / formatting 2016-10-21 17:46:35 +07:00
vladar
236021acf8 Added deprecated directive; changed custom directives handling in schema; various minor tweaks 2016-10-19 01:34:46 +07:00
vladar
c3d7a49a08 Updated executor and it's tests for april2016 specs 2016-09-14 18:47:34 +07:00
vladar
c053169671 Updated Lexer and LexerTest to april 2016 spec 2016-09-14 18:41:02 +07:00
vladar
2d54f654c2 Fine-grained type checks for Executor 2015-10-17 17:34:51 +06:00
vladar
25c42e6b52 Added Utils::groupBy as a convenience tool 2015-09-06 15:50:16 +06:00
vladar
c6a9712790 Several useful utils for Traversables 2015-08-30 13:44:52 +06:00
vladar
20c482ce2f Version 0.1 2015-07-15 23:05:46 +06:00