Commit Graph

562 Commits

Author SHA1 Message Date
Sunli
4e7bb1a59c Added context for Extension. 2020-09-29 20:47:37 +08:00
Sunli
e60864a18d Rework async-graphql-derive. #288 2020-09-29 16:06:10 +08:00
Sunli
ded45bcf6b Update docs 2020-09-28 11:15:37 +08:00
Sunli
5d315ec6d2 Clippy clean. 2020-09-27 19:29:23 +08:00
Sunli
4d019f1d6f Update schema.rs 2020-09-27 19:13:12 +08:00
Sunli
012e5ee315 Fixed variables cannot deserialize from null. #282 2020-09-27 19:10:49 +08:00
Sunli
fae50062e0 Fix the problem when generating Federation SDL. #283 2020-09-27 18:49:04 +08:00
Sunli
f9cfc14e45 Update docs 2020-09-27 18:22:01 +08:00
Sunli
0d6771a199 Add some type detection to make the defined schema conform to the GraphQL specification. #282 2020-09-27 15:35:05 +08:00
Sunli
7d3eb9b62c Make Object and Subscription macros support #cfg(...) attribute. #281 2020-09-27 10:20:20 +08:00
Sunli
b47d08c5b5 Invoke extensions for execute_schema. 2020-09-26 15:52:59 +08:00
Sunli
5c293ffdc2 Improve the error message of Tracing extension. 2020-09-26 12:35:28 +08:00
Sunli
44a1869112 Update readme 2020-09-26 11:25:21 +08:00
Sunli
c350d182ce When an error occurs in the query, the Tracing extension can output the error message. 2020-09-26 09:49:46 +08:00
Sunli
089e830d26 Add StringNumber type. 2020-09-26 09:22:54 +08:00
Sunli
3e19b23178 Remove unnecessary features for tide and warp integrations. 2020-09-26 08:35:17 +08:00
Koxiaet
aae4c29dd0 Reduce code duplication in batches in actix web 2020-09-25 17:38:12 +01:00
Sunli
5eef10a1c4 Make uuid to optional dependent. 2020-09-25 15:40:04 +08:00
Sunli
b316c30416 Add data_XXX methods to ResolveInfo and remove context field from ResolveInfo. #260 2020-09-25 15:26:29 +08:00
Sunli
8a82954f0b Improve tracing 2020-09-25 15:01:55 +08:00
Sunli
390aac5ddd Merge pull request #275 from simplificAR/export_description
Export description with `Registry::export_sdl`
2020-09-24 09:21:47 +08:00
Koxiaet
9e98d79c88 Rustfmt and write ARCHITECTURE.md 2020-09-23 20:23:15 +01:00
Koxiaet
e97a7d9def Publicize resolver utils and move Scalar there 2020-09-23 19:50:35 +01:00
Koxiaet
70d2dbc39c Big improvements to tide integration 2020-09-23 18:30:03 +01:00
Daniel Wiesenberg
eeb38b69cf Run Rustfmt and Clippy 2020-09-23 15:54:33 +02:00
Daniel Wiesenberg
125eb74fbc Export description with Registry::export_sdl 2020-09-23 15:47:04 +02:00
Sunli
312b8f13d8 Add Schema::sdl method. #191 2020-09-23 14:14:22 +08:00
Koxiaet
6947d95030 Merge branch 'master' of github.com-koxiaet:async-graphql/async-graphql into master 2020-09-22 20:03:33 +01:00
Koxiaet
49462cf05f Move some validations to parser
This commit moves the single anonymous and duplicated operation name
validation rules into the parser, allowing for a nicer format to be
exposed by it. It also adds better error messages to the parser.
2020-09-22 19:59:48 +01:00
Sunli
47329b9458 Add Request::extension method. #271 2020-09-21 15:53:07 +08:00
Sunli
7eb2143b2c Implement Serialize/Deserialize for MaybeUndefine<T>. 2020-09-21 15:22:45 +08:00
Sunli
e12ae8b236 Add BatchRequest support for actixweb and warp integrations. 2020-09-21 14:57:33 +08:00
Sunli
92c5db674a Merge pull request #272 from mwilliammyers/feat/maybe-undefined
Remove Deserialize impl from MaybeUndefined
2020-09-21 07:56:47 +08:00
William Myers
b1763de1ea Remove Deserialize impl from MaybeUndefined
Change Serialize implementation to use the `untagged` attribute.
This handles the common case of directly serializing `MaybeUndefined`,
but deserializing into an `Option<T>`. We could add a more sophisticated
custom deserialize implementation later.
2020-09-20 13:22:51 -07:00
Sunli
22420ee7ec Make ObjectType is public. 2020-09-20 15:47:17 +08:00
Sunli
679385b5de Fix docs 2020-09-20 13:34:49 +08:00
Sunli
1f009c6e57 Merge branch 'master' of https://github.com/async-graphql/async-graphql 2020-09-20 13:28:25 +08:00
Sunli
20d240df47 Fix enum strings in query variables are not converted to proper enums. #270 2020-09-20 13:28:18 +08:00
William Myers
c117cc0bf5 Add more trait implementations to MaybeUndefined
Closes #267
2020-09-19 14:10:54 -07:00
Koxiaet
6095383019 Warp: Replace BoxedFilter with impl Filter 2020-09-19 18:10:46 +01:00
Koxiaet
d2489eca0b Reexport async-graphql-parser 2020-09-19 06:14:59 +01:00
Sunli
73333035bd Fix compiling without features 2020-09-18 15:14:40 +08:00
Sunli
c1d4dbed87 2.0.0-alpha.12 2020-09-18 15:05:07 +08:00
Sunli
45dc3d6d09 Add Upload::into_async_read with blocking 2020-09-18 14:32:00 +08:00
Sunli
e645e9d999 Remove the GQL prefix of all macros. #208 2020-09-18 09:10:24 +08:00
Koxiaet
07d2204773 Remove code duplication for batch requests 2020-09-17 19:43:03 +01:00
Koxiaet
d52268523f Merge branch 'master' of github.com-koxiaet:async-graphql/async-graphql into master 2020-09-17 19:23:15 +01:00
Koxiaet
890b282dd9 Improve websockets 2020-09-17 19:22:54 +01:00
Sunli
76257403e2 Add support for batch queries. 2020-09-17 19:54:12 +08:00
Sunli
34eaa1d686 Some improvements. 2020-09-17 11:22:09 +08:00
Sunli
5d705afeb4 Update docs 2020-09-17 09:03:36 +08:00
Sunli
70556af838 Add test for ErrorExtensions. 2020-09-17 08:47:41 +08:00
Koxiaet
e2f53cc30f Document features 2020-09-15 19:32:13 +01:00
Sunli
492bba1cdd Move http::websocket::create and http::websocket::create_with_initializer function to http::WebSocketStream. 2020-09-15 20:07:59 +08:00
Sunli
6b71ba87de Rework websocket
a
2020-09-15 11:49:07 +08:00
Sunli
86a6a34aac http::websocket::create function now returns the WebSocketStream type. 2020-09-15 11:19:00 +08:00
Sunli
1e430b9c11 Remove InputObjectType and add InputValueType/OutputValueType to docs 2020-09-15 09:31:55 +08:00
Koxiaet
c2f34b90e5 Rustfmt 2020-09-14 20:20:15 +01:00
Koxiaet
d2b1dd4cab Fix compiling without features 2020-09-14 20:16:41 +01:00
Koxiaet
c546b87de6 Improved serialize_resp 2020-09-14 19:56:12 +01:00
Koxiaet
a3ad1aac30 Remove and feature-gate dependencies 2020-09-14 19:38:41 +01:00
Sunli
42817a3aa6 Implement Type for more stdlib collection types #189
Implement InputValueType/OutputValueType for HashSet<T>/BTreeSet<T>/VecDeque<T>/LinkedList<T>
Implement ScalarType for char/NonZero*/HashMap<String,T>/BTreeMap<String, T>
2020-09-14 20:06:44 +08:00
Sunli
99ff3a8b96 Update README.md 2020-09-14 14:13:43 +08:00
Sunli
1ab5da63ef Improve websocket 2020-09-14 10:44:56 +08:00
Sunli
01f02c6bc1 Fix the problem that the compilation fails when the compilation parameter is --no-default-features.
Update mod.rs
2020-09-14 09:54:55 +08:00
Sunli
5bb705bdf3 2.0.0-alpha.5 2020-09-14 09:46:22 +08:00
Sunli
fd35272f62 Improve registry 2020-09-14 08:37:15 +08:00
Sunli
6e5153c8b1 Remove unnecessary memory allocation in websocket. 2020-09-14 08:25:00 +08:00
Koxiaet
6e628031bf Rework subscriptions
The main change in this commit is changing the return type of
SubscriptionType::create_stream from
Future<Result<Stream<Result<Response>>>> to just Stream<Result<Json>>. I
also allowed the returned stream to borrow from self and context.
2020-09-13 18:52:36 +01:00
Koxiaet
8d92454fc3 Support !Unpin in receive_body with pin project 2020-09-13 11:49:07 +01:00
Koxiaet
367076cd66 Remove SimpleBroker 2020-09-13 10:47:28 +01:00
Koxiaet
6cf7e78ea9 Restructure types module 2020-09-13 10:38:19 +01:00
Koxiaet
d4eed93ad4 Remove unused idx parameter on subscription 2020-09-13 08:13:56 +01:00
Koxiaet
06a52dc936 Improve lookahead 2020-09-13 08:02:14 +01:00
Koxiaet
9796364348 Move websockets to http module and fix doc tests 2020-09-13 07:40:34 +01:00
Sunli
24b80d52d3 Remove all attribute macros that can be replaced by derive. 2020-09-13 11:41:15 +08:00
Koxiaet
b8add03d53 Remove Deref for ContextBase 2020-09-12 17:42:15 +01:00
Koxiaet
dcc7d1be14 Replace http::GQLRequest with Request 2020-09-12 17:07:46 +01:00
Sunli
79bcf5f710 Hide async_graphql::resolver_utils module in docs.
l:
2020-09-12 21:47:11 +08:00
Sunli
adcd36a0bf Remove async_graphql::http::StreamBody
l:
2020-09-12 21:44:34 +08:00
Sunli
e136f90ba6 Delete serde.rs 2020-09-12 21:27:14 +08:00
Koxiaet
35e74a4e17 Create resolver_utils 2020-09-12 10:29:52 +01:00
Sunli
1320d1ae45 Change MultipartOptions to a builder. 2020-09-12 07:43:50 +08:00
Sunli
857afb1f54 Fix a little bug. 2020-09-11 23:43:26 +08:00
Sunli
c2e32c2ea1 async-graphql-tide 2.0 2020-09-11 22:17:17 +08:00
Sunli
a4fdf6a38a Re-enable the test on websocket. 2020-09-11 16:41:56 +08:00
Sunli
c129079f69 Fix tests 2020-09-11 16:05:21 +08:00
Sunli
049b652dd6 Add transports::websocket module. 2020-09-11 15:54:56 +08:00
Sunli
ec670adb6c Clippy clean 2020-09-11 10:51:20 +08:00
Sunli
35f17a389c Remove unnecessary Result on Schema::execute_stream function. 2020-09-11 10:47:55 +08:00
Sunli
91c75ced2a Make all tests passed (async-graphql). 2020-09-10 19:35:48 +08:00
Sunli
22d6e20da3 Merge changes. 2020-09-10 16:54:38 +08:00
Sunli
13f094b67e Merge branch '2.0' of github.com:async-graphql/async-graphql into 2.0 2020-09-10 16:43:24 +08:00
Sunli
f3c0d86f12 Continue to refactor. 2020-09-10 16:39:43 +08:00
Koxiaet
3945599015 Move HTTP functions to HTTP module 2020-09-10 08:04:24 +01:00
Sunli
ce0683e1f9 Initial attempt. 2020-09-10 12:49:08 +08:00
Sunli
53a7314666 Rustfmt 2020-09-10 09:09:55 +08:00
Koxiaet
f770501557 Remove anyhow, byteorder and base64 dependencies 2020-09-09 17:34:23 +01:00
Koxiaet
f1af4ea195 Merge branch 'master' of github.com-koxiaet:async-graphql/async-graphql into master 2020-09-09 17:06:36 +01:00
Koxiaet
45a08e9b00 Reorder dependencies and remove dependency on mime 2020-09-09 17:03:33 +01:00
Sunli
c397156657 Merge branch 'master' of https://github.com/async-graphql/async-graphql 2020-09-09 18:42:58 +08:00
Sunli
a4a5847d4f Add context to ResolveInfo. #260 2020-09-09 18:42:10 +08:00
Koxiaet
2f80e484d1 Fix Tide tests 2020-09-08 11:07:32 +01:00
Koxiaet
ea7e4eaf2a Fix tests 2020-09-08 10:19:25 +01:00
Koxiaet
324e65f3dd Merge branch 'master' into master 2020-09-08 09:48:01 +01:00
Koxiaet
f9ce6118b2 Merge branch 'master' of github.com-koxiaet:Koxiaet/async-graphql into master 2020-09-08 09:32:37 +01:00
Koxiaet
04c898ef01 Rustfmt 2020-09-08 09:30:29 +01:00
Koxiaet
47259548c4 Support service parsing in async-graphql-parser
- Instead of adding a separate module `schema` like there was before,
since service parsing and executable parsing have a fair amount of
overlap I put them as two submodules `executable` and `service` in both
`parse` and `types`. Also, the grammar is unified under one `.pest`
file.
- Added const equivalents to `Value`, `Directive` etc
- Change the reexport `async_graphql::Value` from
`async_graphql_parser::types::Value` to
`async_graphql_parser::types::ConstValue` since in 99% of cases in this library
a const value is wanted instead of a value.
- Added consistent usage of executable/service instead of the ambiguous
query/schema.
- Some of the tests actually had invalid GraphQL so the new more correct
grammar made them fail, that was fixed.
- Added a `Name` newtype to refer to GraphQL names
(`[A-Za-z_][A-Za-z_0-9]*`) since they are used so frequently.
2020-09-08 09:21:27 +01:00
Sunli
175a48875e Remove historical code that is no longer used. 2020-09-07 18:53:03 +08:00
Sunli
e2c9de9183 Clippy cleanup 2020-09-06 18:59:38 +08:00
Sunli
ca84859f46 Make all tests pass. 2020-09-06 18:53:24 +08:00
Koxiaet
1c26ff124f Merge branch 'master' into master 2020-09-06 07:20:18 +01:00
Koxiaet
c055736101 Rustfmt 2020-09-06 07:16:36 +01:00
Koxiaet
81d85c2535 Rewrite async-graphql-parser 2020-09-06 06:38:31 +01:00
Sunli
dece273372 Implement Into<ID> for all integer types. 2020-09-06 12:33:57 +08:00
Sunli
44413f32c9 Update docs for InputObject macro. 2020-09-03 20:20:33 +08:00
Sunli
613549d9c6 Remove unnecessary memory allocation. 2020-09-02 14:27:04 +08:00
Sunli
e79fa24641 Improve subscriptions performance. 2020-09-02 10:47:18 +08:00
Sunli
c3a4bf6e11 Merge branch 'master' of https://github.com/async-graphql/async-graphql 2020-09-01 19:34:05 +08:00
Sunli
ff43bd8a21 Improve subscriptions performance for warp. 2020-09-01 19:33:35 +08:00
Sunli
769bffcbf2 Fix the test code and add docs. 2020-09-01 09:10:12 +08:00
Koxiaet
02f7a5fbbc Remove dependency on serde_derive, satisfy Clippy, improve docs 2020-08-31 19:18:02 +01:00
Sunli
40d19f2f58 Add DateTime<Local> scalar.
Fixed compile problem with `v1.48-nightly`.
2020-08-31 16:12:12 +08:00
Sunli
0c4f8e5c16 Clippy clean 2020-08-31 15:40:44 +08:00
Sunli
78d3885a67 Cargo fmt --all 2020-08-31 15:35:53 +08:00
D1plo1d
7f7397650a Added async_graphql::graphql tracing namespace 2020-08-30 21:11:43 -04:00
D1plo1d
5a6c77ba9d Refactored tracing extension to allow better span and event filtering and improve signal to noise 2020-08-30 21:01:53 -04:00
D1plo1d
c675b929d3 Added Default to tracing extension 2020-08-30 16:32:14 -04:00
Renat Sadykov
7567a47498 Add the DateTime<FixedOffset> scalar 2020-08-29 23:18:57 +03:00
Sunli
6a38057a22 Implements Default for Schema. 2020-08-28 14:19:35 +08:00
Sunli
c35eecd90d Merge subscriptions #243 2020-08-27 15:35:48 +08:00
Sunli
8431c3a3d8 Rename SubscriptionTransport to ConnectionTransport. #240 2020-08-15 08:47:45 +08:00
Sunli
8c272127ea Add scalar type for NaiveDateTime. #237 2020-08-14 15:28:42 +08:00
Sunli
4e8bd65b34 Fix send data with 'complete' WebSocket message. #238 2020-08-14 15:21:10 +08:00
Sunli
6bf9718225 Update docs 2020-08-10 14:57:45 +08:00
Sunli
2a62c56104 Add derive macro GQLMergeObject. #231 2020-08-10 14:11:46 +08:00
Sunli
b0403f4e99 Add Default impl for MergedObject. #231 2020-08-10 10:47:30 +08:00
Sunli
4b6bb38e83 Add MergedObject type. #231 2020-08-09 15:03:10 +08:00
Midas Lambrichts
db904b623b 3% speedup in chat run by allocating vector up front 2020-08-08 13:36:14 +02:00
Sunli
47174966fb Add directive @ifdef 2020-08-06 14:52:54 +08:00
Sunli
aa3293b65c Add support for query execution over websocket. 2020-07-31 11:30:57 +08:00
Sunli
2cf350a5c8 Removes code about streaming requests. 2020-07-31 10:10:03 +08:00
Sunli
503339f504 InputValueValidator::is_valid function now returns the Result type. #221 2020-07-30 09:43:51 +08:00
Sunli
b7ad1ded91 Export serde_json::Number as async_graphql::Number. 2020-07-30 09:30:57 +08:00
Sunli
2dc61013be Replace Value::Int and Value::Float with Value::Number. 2020-07-29 09:42:52 +08:00
Sunli
a2aa731fe4 Use log crate instead of xlog because xlog still needs to be perfected. #217 2020-07-24 16:55:46 +08:00
Sunli
a18abab7b7 Fix Federation schema throws error while using multiple Option inputs #211 2020-07-17 10:14:40 +08:00
Sunli
4d3851e1b5 Replace log crate with xlog. 2020-07-15 18:05:24 +08:00
Sunli
909ae5e64d Fix input validator is ignored when using variable #207 2020-07-11 10:05:30 +08:00
Sunli
ea9e733a6e Merge pull request #206 from D1plo1d/patch-1
Add Serialize and Deserialize to ID
2020-07-08 15:10:01 +08:00