Commit Graph

142 Commits

Author SHA1 Message Date
Vladimir Razuvaev
65d9472b0b Moved PromiseAdapter to ExecutionContext; allow passing it to Executor::execute() directly vs setting statically 2017-07-12 19:44:04 +07:00
Vladimir Razuvaev
296544089c Moved GraphQL\Utils to GraphQL\Utils\Utils 2017-07-10 19:53:46 +07:00
Vladimir Razuvaev
ed28deda81 Replaced trigger_error with Warning for resolveType warning 2017-07-10 19:38:12 +07:00
Vladimir Razuvaev
9551569ffe Merge branch 'lazy-types' into v0.10
# Conflicts:
#	src/Executor/Executor.php
2017-07-10 17:11:41 +07:00
Vladimir Razuvaev
463d995d95 Reverted #116 (now Executor::defaultFieldResolver checks for instanceof Closure vs is_callable again) 2017-07-08 15:22:17 +07:00
Vladimir Razuvaev
ea94ee7515 Utility function getDirectiveValues + related refactoring 2017-07-05 19:33:25 +07:00
Vladimir Razuvaev
9b9a74c1d1 Spec compliance: errors in buildExecutionContext() are caught and included in result rather than thrown 2017-07-05 17:33:59 +07:00
Vladimir Razuvaev
78d9ba0d5e Allow providing default field resolver for execution call 2017-07-05 16:22:01 +07:00
Vladimir Razuvaev
b47c87f793 Allow null values for enums 2017-07-04 20:19:52 +07:00
Vladimir Razuvaev
f569c6de2d Spec compliance: coercion of Int values 2017-07-04 18:27:20 +07:00
Vladimir Razuvaev
88b85c9761 Make 'errors' top property in response array 2017-07-04 16:29:30 +07:00
Vladimir Razuvaev
a53b798f29 Minor spelling fix 2017-07-04 16:12:56 +07:00
Vladimir Razuvaev
3e1fc1a922 Refactored isThenable checks in Executor 2017-07-04 13:47:50 +07:00
Vladimir Razuvaev
34bd378c7e Refactored executor logic related to isTypeOf 2017-07-04 00:09:32 +07:00
Vladimir Razuvaev
d64c352262 Ability for interface types to resolve type asynchronously 2017-07-03 23:08:20 +07:00
Vladimir Razuvaev
445f579f09 Include expected type in isValidPHPValue error message 2017-07-03 18:24:58 +07:00
Vladimir Razuvaev
e30f2a99cf Pass ResolveInfo in default field resolver when value is callable 2017-07-03 18:14:45 +07:00
Vladimir Razuvaev
faf81ef18a Catch exceptions in isValidPHPValue and return corresponding error message 2017-07-03 18:12:12 +07:00
Vladimir Razuvaev
21e3445754 Merge pull request #116 from leocavalcante/resolve-callables
Resolve callables by default
2017-06-27 00:37:30 +07:00
Daniel Tschinder
65ef159ddc
Support PHP7 error exceptions everywhere
Also replace \Error with \Throwable
2017-06-25 07:33:28 -07:00
Vladimir Razuvaev
6fb62b25b3 Fixed "out of memory" error for edge cases of resolveType() calls 2017-05-29 22:54:35 +07:00
leocavalcante
e07c86bd5e Default resolve callables 2017-05-07 19:21:20 -03:00
Vladimir Razuvaev
ce9bf33f20 Ability to load types in schema on demand (#69) 2017-03-05 03:26:22 +07:00
Bernhard Schussek
e35b57601d Fixed SyncPromiseAdapter::all() to not change the order of arrays 2017-02-23 11:45:13 +01:00
petecoop
fc629a292d BuildSchema and SchemaPrinter 2017-02-19 19:26:56 +00:00
Daniel Tschinder
1ff9c429d6 Fix typo in DocBlock 2017-01-26 11:18:53 +01: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
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
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
660200ed50 GraphQL\Language\AST\NodeType -> GraphQL\Language\AST\NodeKind 2016-11-19 17:31:47 +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
8a676cde99 Support for NullValue 2016-11-18 23:59:28 +07:00
Andreas Heiberg
d8ca5f4183 move to NodeType enum 2016-11-16 18:07:56 +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
61245213c4 Minor instanceof tweak 2016-11-02 00:41:44 +07:00
vladar
e56eb6e10d Replaced \UnexpectedValueException with GraphQL\Error\InvariantViolationException; Improved some instanceof checks 2016-11-01 23:40:37 +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
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
2675b65095 Moved all error-related classes to separate namespace; fixed related broken tests 2016-10-21 16:40:56 +07:00
vladar
c25a29213c Fixed reported path for error; deprecated old FormattedError tool 2016-10-21 04:47:07 +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
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
26db43e7c4 Enabled subscriptions in executor 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
e7c7924dc0 New AST utils + test 2016-09-14 18:41:02 +07:00
Jeremiah VALERIE
3ae6c73367 Removed memoization on executor resolveField (see #43) 2016-06-10 11:57:43 +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
Jérémiah VALERIE
8763c94ea3 setDefaultResolveFn should be static
To ease override of $defaultResolveFn the setter should be `static`
2016-03-12 00:30:46 +01:00
vladar
68fb4ceb9c Refactored facade to simplify custom output formatting 2015-11-02 20:39:51 +06:00
vladar
c81605bfb1 Fixed bug with failing error reporting for mismatching interface / union implementations 2015-10-25 19:35:36 +06:00
vladar
ea4d43f00f Better approach for latest performance tweaks (#8) 2015-10-25 19:08:24 +06:00
vladar
3b3da9e066 Several performance improvements (#8) 2015-10-25 14:23:15 +06:00
vladar
d982bad63a Make sure default argument values are passed to resolve function (#4) 2015-10-23 17:30:02 +06:00
vladar
965c3ff743 Minor executor refactoring related to handling "resolve" errors 2015-10-23 15:45:40 +06:00
vladar
83f42825f8 Reverted mapping executor (#6) 2015-10-23 15:44:01 +06:00
vladar
2d54f654c2 Fine-grained type checks for Executor 2015-10-17 17:34:51 +06:00
vladar
83e33659cb Do not mess with original value in executor. Copy it instead. 2015-09-06 15:48:16 +06:00
vladar
3edf6248b0 Mapping Executor 2015-09-01 01:44:03 +06:00
vladar
003fa005ed Ability to set type-level "resolveField" method 2015-08-30 13:43:55 +06:00
vladar
841d6ab851 Updated to latest version of graphql-js 2015-08-17 20:01:55 +06:00
vladar
698b2cb862 Minor errors refactoring 2015-08-16 17:17:48 +06:00
David Mongeau-Petitpas
b3932c8fbe Updated listOfType validation to Traversable 2015-08-09 19:00:05 -04:00
David Mongeau-Petitpas
7431f2dcc5 Edit character bug 2015-08-09 14:26:36 -04:00
David Mongeau-Petitpas
afe28da475 Check on ListOfType is on ArrayAccess instead of ArrayObject 2015-08-09 14:25:01 -04:00
vladar
20c482ce2f Version 0.1 2015-07-15 23:05:46 +06:00