Commit Graph

290 Commits

Author SHA1 Message Date
Laurin Quast
1c62f554ae Implements DisableIntrospection validation rule 2017-06-17 14:50:24 +02:00
Vladimir Razuvaev
ffc4542cd0 Improvements in config validation 2017-06-12 22:48:48 +07:00
Vladimir Razuvaev
e7cde5ecf3 Fixed broken 5.4 build 2017-06-03 17:17:42 +07:00
Vladimir Razuvaev
bc4b990946 Do not run query complexity validation if there were other validation errors (as it will throw and mess up previous validation results), see #125 2017-06-03 17:07:01 +07:00
Vladimir Razuvaev
bc6c0e2eea Reverted float literal parsing, as it was not the cause of #125 2017-06-03 16:48:29 +07:00
Vladimir Razuvaev
4eb68bf63f Do not parse invalid input strings as floats (see #125) 2017-06-03 14:04:47 +07:00
Vladimir Razuvaev
6fb62b25b3 Fixed "out of memory" error for edge cases of resolveType() calls 2017-05-29 22:54:35 +07:00
Jeremiah VALERIE
6d5b4e5a37 Use dedicated exception for scalar type parsing error 2017-05-29 10:32:48 +02:00
leocavalcante
e07c86bd5e Default resolve callables 2017-05-07 19:21:20 -03:00
Vladimir Razuvaev
848f9c3edf Preserve backwards compatibility of Ast\Node::toArray(): do shallow conversion by default 2017-04-25 18:02:45 +07:00
Vladimir Razuvaev
835e4e6b2d Removed unnecessary loc entry in AST\Node::toArray() 2017-04-25 18:00:06 +07:00
Pascal de Vink
11a1b13b72
Use directives to calculate query complexity 2017-04-24 14:21:58 +02:00
Andreas Heiberg
ed8bf4e2b2 fix __toString() for AST Node
previously it would only shallowly convert to array causing json_encode to fail
2017-04-07 11:34:33 +01:00
Decebal Dobrica
51e67d49c7 php merge for associative array non-integer intexed 2017-03-16 10:21:26 +00:00
Vladimir Razuvaev
f77bd17eba ResolveInfo: Take in account inline fragments in getFieldSelection() 2017-03-10 19:21:27 +07:00
Vladimir Razuvaev
ce9bf33f20 Ability to load types in schema on demand (#69) 2017-03-05 03:26:22 +07:00
Vladimir Razuvaev
827bfa7907 Server: added missing return $this; statements 2017-02-27 18:19:09 +07:00
Vladimir Razuvaev
34ca931533 Sanity check to ensure that GraphQL query is string 2017-02-24 17:14:30 +07:00
Vladimir Razuvaev
3f909e3e11 Separate utility for extractTypes 2017-02-24 16:29:28 +07:00
Bernhard Schussek
e35b57601d Fixed SyncPromiseAdapter::all() to not change the order of arrays 2017-02-23 11:45:13 +01:00
petecoop
664af3d44a use constants 2017-02-20 10:31:11 +00: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
jane-olszewska
060dc51595 Set schema element description to strings retrieved from a continuous chunk of comment tokens immediately preceding the element 2017-02-06 18:33:21 +00:00
jane-olszewska
dd31ab2b80 Added a description field to schema type definition classes 2017-02-06 18:33:18 +00:00
jane-olszewska
bbb5cf1e4d Fixed comment token extraction: will no longer read one character from the next line 2017-02-06 18:13:43 +00:00
vladar
c18cd16960 GraphQL\Server: set PromiseAdapter before executing query 2017-01-26 19:24:53 +07:00
vladar
d10e933a00 Merge branch 'master' of https://github.com/webonyx/graphql-php 2017-01-26 19:18:40 +07:00
vladar
c545474715 Fixed DocBlock comment 2017-01-26 19:00:10 +07:00
vladar
2ddae2bf88 Added EXPERIMENTAL note for code related to type resolution strategies 2017-01-26 18:59:14 +07:00
Daniel Tschinder
1ff9c429d6 Fix typo in DocBlock 2017-01-26 11:18:53 +01:00
vladar
e2875953e1 Tests for new GraphQL\Server facade 2017-01-19 19:23:00 +07:00
vladar
8e75cc3d60 Merge branch 'master' of https://github.com/webonyx/graphql-php 2017-01-19 11:55:10 +07:00
OwlyCode
d022b19b4e Added compatibility with php7 error handling. 2017-01-12 17:18:25 +01:00
vladar
ceaf798b07 Merge branch 'master' of https://github.com/webonyx/graphql-php 2016-12-23 22:42:05 +07:00
Juuso Leinonen
90c4b5d9fa Changed ReactPromiseAdapter::all to preserve the array key order and added tests 2016-12-22 15:08:28 +02:00
vladar
296cc7530d Added Server class as a new facade for library, including HTTP endpoint compatible with express-graphql format 2016-12-19 20:40:46 +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
9e8e77a071 Execution: Calling resolve function directly (vs calling it via call_user_func) 2016-12-15 15:34:27 +07:00
vladar
078a1efd50 Added GraphQL\GraphQL::setDefaultFieldResolver() 2016-12-14 20:18:10 +07:00
vladar
2043cc7e75 Introduced type resolution strategies: eager and lazy (for #69) 2016-12-14 17:12:09 +07:00
vladar
ae57a72461 Deleted unused SchemaValidator 2016-12-08 06:05:40 +07:00
vladar
51d816d280 Tests for Config 2016-12-08 04:16:13 +07:00
vladar
c5bba0e7d4 Cleaning up old unused messages 2016-12-06 03:45:52 +07:00
vladar
a165c3aaab Shortened method names of PromiseAdapter 2016-12-04 15:53:23 +07:00
vladar
7ab75cd05a Execution: tests are green 2016-12-03 04:11:14 +07:00
vladar
ab4ae779af Execution: fixed rejection issue in sync promise 2016-12-03 02:48:51 +07:00
vladar
e97ca7f971 Execution: added SyncPromiseAdapter and made it default for Executor (+removed GenericPromiseAdapter) 2016-12-03 02:14:14 +07:00
vladar
48d78412ec Execution: refactored promise adapters 2016-12-03 02:06:28 +07:00
vladar
3a375bb78e Simple implementation of Promises A+ for our sync case (using queue) 2016-12-02 18:43:54 +07:00
vladar
821e96508b Execution: added promiseForAssocArray method for cases when result contains promise 2016-12-01 18:29:50 +07:00
vladar
418ee48b20 Execution: moved then method to promise adapter 2016-12-01 17:52:42 +07:00
vladar
77244d3aab Refactored executor: now works as instance with exeContext and promise adapter as properties 2016-12-01 17:09:22 +07:00
Jeremiah VALERIE
dd9062d77e Add a generic promise support.
Make lib supports promises, using a promise adapter interface.
2016-11-26 20:50:01 +01:00
vladar
4945317406 Fixing broken build for 0.8 2016-11-25 18:45:38 +07:00
vladar
c08cc2b00b Fixing broken build for 0.8 2016-11-25 18:18:53 +07:00
vladar
0969073b8a Reverted DefinitionContainer (YAGNI) 2016-11-25 16:54:57 +07:00
vladar
7c0aa4ceec Better docs and comments on breaks and deprecations for 8.0 2016-11-25 16:37:00 +07:00
vladar
b665d267c3 Changed scope of Schema props (and some others) to private 2016-11-25 16:35:46 +07:00
vladar
16bfc12ab1 Moved directive location constants to separate class 2016-11-25 16:30:35 +07:00
vladar
018ac819cf Removed deprecated error classes and added class_alias for them instead in deprecated.php 2016-11-25 16:03:04 +07:00
vladar
3d4cd15678 Added file with deprecations (for moved/renamed classes) 2016-11-25 16:02:19 +07:00
vladar
63d44fe002 Disabled deprecation notice for ResolveInfo->fieldASTs (until next version) 2016-11-19 17:37:54 +07:00
vladar
660200ed50 GraphQL\Language\AST\NodeType -> GraphQL\Language\AST\NodeKind 2016-11-19 17:31:47 +07:00
vladar
7340e30753 Types are now serializable to JSON (output their name) 2016-11-19 17:25:34 +07:00
vladar
04550f805f Differentiate between input values with no default and with default = null 2016-11-19 17:21:22 +07:00
vladar
5a17ae8246 Clearer lexer errors 2016-11-19 17:08:20 +07:00
vladar
0ab55ec0d9 Replaced "AST" with "Node" in variable names for better readability 2016-11-19 06:47:55 +07:00
vladar
5aad8b596b Consistent docblock comments for arrays 2016-11-19 06:19:41 +07:00
vladar
8d696edee5 Renamed AST nodes to *Node to disambiguate types 2016-11-19 06:12:18 +07:00
vladar
5ce9a7009a Renamed default resolver 2016-11-19 04:22:08 +07:00
vladar
439959b292 Enforce input coercion rules 2016-11-19 04:15:40 +07:00
vladar
f672f0c90c Added validation rule for unique directives per location 2016-11-19 00:21:56 +07:00
vladar
8a676cde99 Support for NullValue 2016-11-18 23:59:28 +07:00
vladar
5d889ccacd Reverted several breaking changes from #75; tests are green 2016-11-16 18:37:35 +07:00
Andreas Heiberg
b2c8d8eeb1 [style changes] Lexer 2016-11-16 18:14:46 +07:00
Andreas Heiberg
d8ca5f4183 move to NodeType enum 2016-11-16 18:07:56 +07:00
Andreas Heiberg
816fa067b3 type hint Name node in visitor 2016-11-16 18:06:25 +07:00
Andreas Heiberg
46788f2ddb move NodeTypes enum to seperate class 2016-11-16 18:02:58 +07:00
Andreas Heiberg
2e25f51829 [style change] put VisitorOperation up top 2016-11-16 17:30:25 +07:00
Andreas Heiberg
80a662564e [style changes] arrays and callback 2016-11-16 17:29:50 +07:00
Andreas Heiberg
3c98963f72 remove static functions from Printer 2016-11-16 17:22:57 +07:00
vladar
bacb0649c2 Minor objectType refactoring 2016-11-11 01:00:32 +07:00
vladar
add2621a33 Replaced directive locations array with constants 2016-11-08 16:55:33 +07:00
vladar
1927102183 Minor executor tweaks 2016-11-07 19:52:44 +07:00
vladar
6023c0ff60 Refactoring abstract type resolution 2016-11-07 17:28:47 +07:00
vladar
afbd5dbc90 Removed last traces of field memoization 2016-11-07 16:26:02 +07:00
vladar
1672bd33e3 Minor comments improvement 2016-11-02 05:08:17 +07:00
vladar
61245213c4 Minor instanceof tweak 2016-11-02 00:41:44 +07:00
vladar
22e41a3729 Validate type/field/argument names 2016-11-02 00:14:44 +07:00
vladar
3b0e52f254 Updated AST Utils to match the behavior of reference implementation 2016-11-02 00:11:33 +07:00
vladar
443845d1f9 Added missing short-hand notation for input type fields 2016-11-02 00:07:10 +07:00
vladar
8f80389ecf Moved parse/serialize methods from abstract ScalarType class to LeafType interface (as EnumType implements them as well) 2016-11-01 23:50:18 +07:00
vladar
e56eb6e10d Replaced \UnexpectedValueException with GraphQL\Error\InvariantViolationException; Improved some instanceof checks 2016-11-01 23:40:37 +07:00
vladar
19436c326d Infer type name from className for enum and scalar types as well 2016-10-24 16:47:39 +07:00
vladar
e4fa881cc3 Infer type name from class name for those using inheritance 2016-10-23 21:32:54 +07:00
vladar
2ef58a615f Several minor tweaks 2016-10-23 05:06:36 +07:00
vladar
9941a0143a Added DefinitionContainer interface to enable compositional use of user-land types (vs extending ObjectType, InterfaceType, etc). Very similar to IteratorAggregate vs Iterator 2016-10-23 05:05:50 +07:00
vladar
c11f25794a Deprecated callbacks in "type" option of field/argument definitions (see #35) 2016-10-23 00:49:25 +07:00
vladar
276a58f6d1 Reverted one minor breaking change 2016-10-22 17:19:40 +07:00
vladar
a612b780c9 Return stdClass vs empty array for empty ObjectType values (see #59) 2016-10-22 17:16:47 +07:00
vladar
6c076e21d4 Another minor improvement to error formatting 2016-10-21 18:36:49 +07:00
vladar
7f1d74f980 Improved error reporting for invalid field definitions 2016-10-21 18:17:20 +07:00
vladar
927997a705 Various tools for better error reporting / formatting 2016-10-21 17:46:35 +07:00
vladar
2675b65095 Moved all error-related classes to separate namespace; fixed related broken tests 2016-10-21 16:40:56 +07:00
vladar
2b305ad6e2 Updated config validation rules 2016-10-21 15:52:58 +07:00
vladar
6d7a4a4f34 Fixed tests broken by recent changes to serialized error format 2016-10-21 15:28:24 +07:00
vladar
c25a29213c Fixed reported path for error; deprecated old FormattedError tool 2016-10-21 04:47:07 +07:00
vladar
2369454687 Minor comment tweaks + ability to define enum values as simple k=>v pairs 2016-10-21 03:10:06 +07:00
vladar
3ba187ec04 Added missing one-line shorthand for field arguments 2016-10-21 00:06:34 +07:00
vladar
fc37515ec2 Replaced instanceof check with is_array for shorthand notation of field definitions (as instanceof might be pretty slow) 2016-10-20 19:15:20 +07:00
vladar
5148c3bf03 Allow one-liner shorthand for field definitions (#47) 2016-10-20 19:09:48 +07:00
vladar
09cc313072 Allow to define enum values by simply passing array of strings, e.g. 'values' => ['ONE', 'TWO', 'THREE'] 2016-10-20 19:01:30 +07:00
vladar
0a79be8409 Updated introspection query and related tests for recent changes 2016-10-19 01:35:18 +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
7625d6abf1 Scalar serialization now throws on spec-incompatible values vs returning null 2016-10-19 01:23:38 +07:00
vladar
0a182ac53c Improved enums (now they can handle complex values) 2016-10-19 01:21:47 +07:00
vladar
7f22d4b874 Spec compliance improvement: data key should not exist in response when it is null / missing (#56) 2016-10-18 22:25:39 +07:00
vladar
3e2d9459aa resolveType for interface/unions is now allowed to return type name vs instance 2016-10-18 22:23:20 +07:00
vladar
89eb6dede9 Breaking change when returning Closure from resolver: this closure is expected to have different signature now (shouldn't affect most of the users) 2016-10-18 22:20:51 +07:00
vladar
a94640f9d2 Enabled GraphQL\Error to include path to failed value during execution step (not location in source query, but exact path to value, including index in array, etc) + tests for errors 2016-10-18 22:15:21 +07:00
vladar
357166791a Consistent coding style + doc block comments for Types and Utils 2016-10-17 19:14:29 +07:00
vladar
cd14146032 Updated parser to consume latest lexer; New public parser API methods: parseType and parseValue; added directives to schema parser/printer 2016-10-17 02:57:24 +07:00
vladar
3eeb4d450b Reworked lexer: tokens are now represented as double linked list 2016-10-17 02:53:50 +07:00
Vladimir Razuvaev
f91cbf3409 Merge pull request #51 from geshido/master
Fix fatal error with deprecated directive fields in introspection query
2016-09-16 16:48:07 +07:00
vladar
4b651d80a5 Fixed php notice with deprecated schema constructor 2016-09-15 17:32:54 +07:00
Yury
6b97439877 Fix fatal error when GraphiQL tries to run introspection query 2016-09-15 15:47:56 +07:00
Yury
dab3e52242 Fix fatal error 2016-09-15 14:34:50 +07:00
vladar
f7c8c670fe Fixed syntax errors specific to PHP5.5- to still support PHP5.4+ 2016-09-14 18:47:34 +07:00
vladar
26db43e7c4 Enabled subscriptions in executor 2016-09-14 18:47:34 +07:00
vladar
31f40f5e26 Fixed scalar Int to respect min/max values according to graphql spec; added descriptions to scalars 2016-09-14 18:47:34 +07:00
vladar
c3d7a49a08 Updated executor and it's tests for april2016 specs 2016-09-14 18:47:34 +07:00
vladar
00f12b3197 Fixed definition tests; added enum tests 2016-09-14 18:41:02 +07:00
vladar
183a9d72cf Introspection for april 2016 spec + fixed tests 2016-09-14 18:41:02 +07:00
vladar
e7c7924dc0 New AST utils + test 2016-09-14 18:41:02 +07:00
vladar
a6a4f7862b Several validator fixes 2016-09-14 18:41:02 +07:00
vladar
e82f887918 Fixed visitor; more visitor tests 2016-09-14 18:41:02 +07:00
vladar
800d8ba25f Continue updating validator rules for april2016 spec 2016-09-14 18:41:02 +07:00
vladar
8ab7a9a438 Implemented covariant return types for interface fields (#23) 2016-09-14 18:41:02 +07:00
vladar
f1ddc98390 Updating validator rules for april2016 spec 2016-09-14 18:41:02 +07:00
vladar
17081cec1c More AST visitor tests 2016-09-14 18:41:02 +07:00
vladar
687b023616 Schema language parsing / printing 2016-09-14 18:41:02 +07:00
vladar
4f4776726d Updated parser to 2016 spec version; schema language parsing 2016-09-14 18:41:02 +07:00
vladar
86adfde0a0 Updated AST to 2016 spec version 2016-09-14 18:41:02 +07:00
vladar
c053169671 Updated Lexer and LexerTest to april 2016 spec 2016-09-14 18:41:02 +07:00
Matthew Leverton
7c6f216578 Change Lexer::readString to decode escaped characters to their literal values 2016-07-14 13:32:57 -05:00
Jeremiah VALERIE
3ae6c73367 Removed memoization on executor resolveField (see #43) 2016-06-10 11:57:43 +02:00
Jeremiah VALERIE
be46b14441 Fix ResolveInfo::getFieldSelection() when using multiple fragments on the same field. 2016-05-18 16:20:53 +02:00
Jeremiah VALERIE
de4eba7077 Fix interface implementaion when interface is extends. 2016-04-25 14:44:08 +02:00
Jérémiah VALERIE
327cc52601 Add ExecutionResult $extensions
https://facebook.github.io/graphql/#sec-Response-Format
2016-04-25 14:44:08 +02:00