Commit Graph

554 Commits

Author SHA1 Message Date
Sunli
17240f1fed Add some type detection to make the defined schema conform to the GraphQL specification. #282 2020-09-27 15:35:05 +08:00
Sunli
9b4fc7d922 Make Object and Subscription macros support #cfg(...) attribute. #281 2020-09-27 10:20:20 +08:00
Sunli
39f8a4fa17 Invoke extensions for execute_schema. 2020-09-26 15:52:59 +08:00
Sunli
9333583483 Improve the error message of Tracing extension. 2020-09-26 12:35:28 +08:00
Sunli
e44cb6886f Update readme 2020-09-26 11:25:21 +08:00
Sunli
f4df7d57f8 When an error occurs in the query, the Tracing extension can output the error message. 2020-09-26 09:49:46 +08:00
Sunli
2ac69e2e29 Add StringNumber type. 2020-09-26 09:22:54 +08:00
Sunli
1cab6d0186 Remove unnecessary features for tide and warp integrations. 2020-09-26 08:35:17 +08:00
Koxiaet
38c9c718d6 Reduce code duplication in batches in actix web 2020-09-25 17:38:12 +01:00
Sunli
2c693e1245 Make uuid to optional dependent. 2020-09-25 15:40:04 +08:00
Sunli
68965e5a0c Add data_XXX methods to ResolveInfo and remove context field from ResolveInfo. #260 2020-09-25 15:26:29 +08:00
Sunli
09eea044eb Improve tracing 2020-09-25 15:01:55 +08:00
Sunli
3d749f329f
Merge pull request #275 from simplificAR/export_description
Export description with `Registry::export_sdl`
2020-09-24 09:21:47 +08:00
Koxiaet
b871be2731 Rustfmt and write ARCHITECTURE.md 2020-09-23 20:23:15 +01:00
Koxiaet
635a1a5ed7 Publicize resolver utils and move Scalar there 2020-09-23 19:50:35 +01:00
Koxiaet
7f35fbca4c Big improvements to tide integration 2020-09-23 18:30:03 +01:00
Daniel Wiesenberg
225f46d180
Run Rustfmt and Clippy 2020-09-23 15:54:33 +02:00
Daniel Wiesenberg
7b53e856e0
Export description with Registry::export_sdl 2020-09-23 15:47:04 +02:00
Sunli
e3125b2d2d Add Schema::sdl method. #191 2020-09-23 14:14:22 +08:00
Koxiaet
203ea4ad64 Merge branch 'master' of github.com-koxiaet:async-graphql/async-graphql into master 2020-09-22 20:03:33 +01:00
Koxiaet
0880be3e0b 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
fa10a55745 Add Request::extension method. #271 2020-09-21 15:53:07 +08:00
Sunli
0259a35782 Implement Serialize/Deserialize for MaybeUndefine<T>. 2020-09-21 15:22:45 +08:00
Sunli
37e21c54fa Add BatchRequest support for actixweb and warp integrations. 2020-09-21 14:57:33 +08:00
Sunli
559e7c41b3
Merge pull request #272 from mwilliammyers/feat/maybe-undefined
Remove Deserialize impl from MaybeUndefined
2020-09-21 07:56:47 +08:00
William Myers
90b2cfdaea
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
e21fe02cac Make ObjectType is public. 2020-09-20 15:47:17 +08:00
Sunli
7bb67f135e Fix docs 2020-09-20 13:34:49 +08:00
Sunli
707b8e5930 Merge branch 'master' of https://github.com/async-graphql/async-graphql 2020-09-20 13:28:25 +08:00
Sunli
5bfb992ad7 Fix enum strings in query variables are not converted to proper enums. #270 2020-09-20 13:28:18 +08:00
William Myers
d3f5c56c6d
Add more trait implementations to MaybeUndefined
Closes #267
2020-09-19 14:10:54 -07:00
Koxiaet
f873c9ac5a Warp: Replace BoxedFilter with impl Filter 2020-09-19 18:10:46 +01:00
Koxiaet
ec49d4ec56 Reexport async-graphql-parser 2020-09-19 06:14:59 +01:00
Sunli
b0690cae8b Fix compiling without features 2020-09-18 15:14:40 +08:00
Sunli
019241ac22 2.0.0-alpha.12 2020-09-18 15:05:07 +08:00
Sunli
c98b269e50 Add Upload::into_async_read with blocking 2020-09-18 14:32:00 +08:00
Sunli
322e296a24 Remove the GQL prefix of all macros. #208 2020-09-18 09:10:24 +08:00
Koxiaet
3c04411780 Remove code duplication for batch requests 2020-09-17 19:43:03 +01:00
Koxiaet
5cf527aeef Merge branch 'master' of github.com-koxiaet:async-graphql/async-graphql into master 2020-09-17 19:23:15 +01:00
Koxiaet
88be6bca61 Improve websockets 2020-09-17 19:22:54 +01:00
Sunli
acc1a6f515 Add support for batch queries. 2020-09-17 19:54:12 +08:00
Sunli
de3f0937b0 Some improvements. 2020-09-17 11:22:09 +08:00
Sunli
dc77e7f262 Update docs 2020-09-17 09:03:36 +08:00
Sunli
c3d70b0553 Add test for ErrorExtensions. 2020-09-17 08:47:41 +08:00
Koxiaet
f82322045e Document features 2020-09-15 19:32:13 +01:00
Sunli
509c92a11f Move http::websocket::create and http::websocket::create_with_initializer function to http::WebSocketStream. 2020-09-15 20:07:59 +08:00
Sunli
ba03ccf3ea Rework websocket
a
2020-09-15 11:49:07 +08:00
Sunli
059128e9c5 http::websocket::create function now returns the WebSocketStream type. 2020-09-15 11:19:00 +08:00
Sunli
d6eea10816 Remove InputObjectType and add InputValueType/OutputValueType to docs 2020-09-15 09:31:55 +08:00
Koxiaet
84be87aab6 Rustfmt 2020-09-14 20:20:15 +01:00
Koxiaet
91f059f9ee Fix compiling without features 2020-09-14 20:16:41 +01:00
Koxiaet
fbcae8aa29 Improved serialize_resp 2020-09-14 19:56:12 +01:00
Koxiaet
a86c3a86b8 Remove and feature-gate dependencies 2020-09-14 19:38:41 +01:00
Sunli
3233f3638c 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
fad20a80e9 Update README.md 2020-09-14 14:13:43 +08:00
Sunli
6e3dc9721b Improve websocket 2020-09-14 10:44:56 +08:00
Sunli
134ef7ad56 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
d67a511a07 2.0.0-alpha.5 2020-09-14 09:46:22 +08:00
Sunli
bbcfade50e Improve registry 2020-09-14 08:37:15 +08:00
Sunli
ae46e91b08 Remove unnecessary memory allocation in websocket. 2020-09-14 08:25:00 +08:00
Koxiaet
d404e756bc 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
91ec3486ce Support !Unpin in receive_body with pin project 2020-09-13 11:49:07 +01:00
Koxiaet
863d57a4b0 Remove SimpleBroker 2020-09-13 10:47:28 +01:00
Koxiaet
f204841d1f Restructure types module 2020-09-13 10:38:19 +01:00
Koxiaet
1af9ce5b95 Remove unused idx parameter on subscription 2020-09-13 08:13:56 +01:00
Koxiaet
42c3cfc17c Improve lookahead 2020-09-13 08:02:14 +01:00
Koxiaet
55753983a9 Move websockets to http module and fix doc tests 2020-09-13 07:40:34 +01:00
Sunli
f530d01bf4 Remove all attribute macros that can be replaced by derive. 2020-09-13 11:41:15 +08:00
Koxiaet
cffed09c78 Remove Deref for ContextBase 2020-09-12 17:42:15 +01:00
Koxiaet
8796c5e1a7 Replace http::GQLRequest with Request 2020-09-12 17:07:46 +01:00
Sunli
a8e7608c9e Hide async_graphql::resolver_utils module in docs.
l:
2020-09-12 21:47:11 +08:00
Sunli
bbf784fe42 Remove async_graphql::http::StreamBody
l:
2020-09-12 21:44:34 +08:00
Sunli
3b5d387f55 Delete serde.rs 2020-09-12 21:27:14 +08:00
Koxiaet
1aa36819eb Create resolver_utils 2020-09-12 10:29:52 +01:00
Sunli
e11d8c8d87 Change MultipartOptions to a builder. 2020-09-12 07:43:50 +08:00
Sunli
20dc0cfdfc Fix a little bug. 2020-09-11 23:43:26 +08:00
Sunli
a0b55a9e43 async-graphql-tide 2.0 2020-09-11 22:17:17 +08:00
Sunli
a93b91ae2d Re-enable the test on websocket. 2020-09-11 16:41:56 +08:00
Sunli
3e01ef0be7 Fix tests 2020-09-11 16:05:21 +08:00
Sunli
faac753096 Add transports::websocket module. 2020-09-11 15:54:56 +08:00
Sunli
9cc293c8be Clippy clean 2020-09-11 10:51:20 +08:00
Sunli
553e6ffd53 Remove unnecessary Result on Schema::execute_stream function. 2020-09-11 10:47:55 +08:00
Sunli
c88747dfe4 Make all tests passed (async-graphql). 2020-09-10 19:35:48 +08:00
Sunli
d5cbbfb05f Merge changes. 2020-09-10 16:54:38 +08:00
Sunli
2f5a1ccf20 Merge branch '2.0' of github.com:async-graphql/async-graphql into 2.0 2020-09-10 16:43:24 +08:00
Sunli
7a90069cad Continue to refactor. 2020-09-10 16:39:43 +08:00
Koxiaet
c00c368c35 Move HTTP functions to HTTP module 2020-09-10 08:04:24 +01:00
Sunli
9bc837da9e Initial attempt. 2020-09-10 12:49:08 +08:00
Sunli
cacb5aa9d8 Rustfmt 2020-09-10 09:09:55 +08:00
Koxiaet
096660a676 Remove anyhow, byteorder and base64 dependencies 2020-09-09 17:34:23 +01:00
Koxiaet
a526b751d5 Merge branch 'master' of github.com-koxiaet:async-graphql/async-graphql into master 2020-09-09 17:06:36 +01:00
Koxiaet
7ad1b8cd58 Reorder dependencies and remove dependency on mime 2020-09-09 17:03:33 +01:00
Sunli
31f4dcb2f2 Merge branch 'master' of https://github.com/async-graphql/async-graphql 2020-09-09 18:42:58 +08:00
Sunli
0d3a0f6949 Add context to ResolveInfo. #260 2020-09-09 18:42:10 +08:00
Koxiaet
b3093e92d4 Fix Tide tests 2020-09-08 11:07:32 +01:00
Koxiaet
122f8ef230 Fix tests 2020-09-08 10:19:25 +01:00
Koxiaet
7cd823ba04
Merge branch 'master' into master 2020-09-08 09:48:01 +01:00
Koxiaet
a42cc58f00 Merge branch 'master' of github.com-koxiaet:Koxiaet/async-graphql into master 2020-09-08 09:32:37 +01:00
Koxiaet
c42aa55625 Rustfmt 2020-09-08 09:30:29 +01:00
Koxiaet
ed5acdcf18 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
5f14325ef5 Remove historical code that is no longer used. 2020-09-07 18:53:03 +08:00
Sunli
9ce0554ed3 Clippy cleanup 2020-09-06 18:59:38 +08:00
Sunli
22fb1681d5 Make all tests pass. 2020-09-06 18:53:24 +08:00
Koxiaet
9ad4e8c1a8
Merge branch 'master' into master 2020-09-06 07:20:18 +01:00
Koxiaet
3bf5f3a16c Rustfmt 2020-09-06 07:16:36 +01:00
Koxiaet
e3e58d261d Rewrite async-graphql-parser 2020-09-06 06:38:31 +01:00
Sunli
dc02466cc7 Implement Into<ID> for all integer types. 2020-09-06 12:33:57 +08:00
Sunli
d393ed260d Update docs for InputObject macro. 2020-09-03 20:20:33 +08:00
Sunli
2aca257136 Remove unnecessary memory allocation. 2020-09-02 14:27:04 +08:00
Sunli
d2bb44798a Improve subscriptions performance. 2020-09-02 10:47:18 +08:00
Sunli
2165ddbc65 Merge branch 'master' of https://github.com/async-graphql/async-graphql 2020-09-01 19:34:05 +08:00
Sunli
59ce5fe9f2 Improve subscriptions performance for warp. 2020-09-01 19:33:35 +08:00
Sunli
d04b5b675f Fix the test code and add docs. 2020-09-01 09:10:12 +08:00
Koxiaet
945cd72869 Remove dependency on serde_derive, satisfy Clippy, improve docs 2020-08-31 19:18:02 +01:00
Sunli
b3f6e724bf Add DateTime<Local> scalar.
Fixed compile problem with `v1.48-nightly`.
2020-08-31 16:12:12 +08:00
Sunli
56550bac23 Clippy clean 2020-08-31 15:40:44 +08:00
Sunli
ea379141a6 Cargo fmt --all 2020-08-31 15:35:53 +08:00
D1plo1d
895b075c77 Added async_graphql::graphql tracing namespace 2020-08-30 21:11:43 -04:00
D1plo1d
895dbfae7c Refactored tracing extension to allow better span and event filtering and improve signal to noise 2020-08-30 21:01:53 -04:00
D1plo1d
05b2473b52 Added Default to tracing extension 2020-08-30 16:32:14 -04:00
Renat Sadykov
83261cef2a
Add the DateTime<FixedOffset> scalar 2020-08-29 23:18:57 +03:00
Sunli
80b2ff00c5 Implements Default for Schema. 2020-08-28 14:19:35 +08:00
Sunli
7fef4e3dca Merge subscriptions #243 2020-08-27 15:35:48 +08:00
Sunli
2e5c256de9 Rename SubscriptionTransport to ConnectionTransport. #240 2020-08-15 08:47:45 +08:00
Sunli
e596a27e05 Add scalar type for NaiveDateTime. #237 2020-08-14 15:28:42 +08:00
Sunli
fe336dd4d0 Fix send data with 'complete' WebSocket message. #238 2020-08-14 15:21:10 +08:00
Sunli
e8eac139b5 Update docs 2020-08-10 14:57:45 +08:00
Sunli
d280a13b70 Add derive macro GQLMergeObject. #231 2020-08-10 14:11:46 +08:00
Sunli
d7248e149f Add Default impl for MergedObject. #231 2020-08-10 10:47:30 +08:00
Sunli
dd7c64fc7a Add MergedObject type. #231 2020-08-09 15:03:10 +08:00
Midas Lambrichts
ac9996e458 3% speedup in chat run by allocating vector up front 2020-08-08 13:36:14 +02:00
Sunli
a193a8e51a Add directive @ifdef 2020-08-06 14:52:54 +08:00
Sunli
b67278eeec Add support for query execution over websocket. 2020-07-31 11:30:57 +08:00
Sunli
3d7594bac1 Removes code about streaming requests. 2020-07-31 10:10:03 +08:00
Sunli
c22ff21b96 InputValueValidator::is_valid function now returns the Result type. #221 2020-07-30 09:43:51 +08:00
Sunli
72aaf288a5 Export serde_json::Number as async_graphql::Number. 2020-07-30 09:30:57 +08:00
Sunli
3395c00603 Replace Value::Int and Value::Float with Value::Number. 2020-07-29 09:42:52 +08:00
Sunli
b8a887457d Use log crate instead of xlog because xlog still needs to be perfected. #217 2020-07-24 16:55:46 +08:00
Sunli
fcf9477fc2 Fix Federation schema throws error while using multiple Option inputs #211 2020-07-17 10:14:40 +08:00
Sunli
c7c4de94ed Replace log crate with xlog. 2020-07-15 18:05:24 +08:00
Sunli
8992b681dc Fix input validator is ignored when using variable #207 2020-07-11 10:05:30 +08:00
Sunli
1da351a059
Merge pull request #206 from D1plo1d/patch-1
Add Serialize and Deserialize to ID
2020-07-08 15:10:01 +08:00
Sunli
9510160432 Add OutputJson type #203 2020-07-08 14:44:57 +08:00
Rob Gilson
aab0bb157c
Add Serialize and Deserialize to ID
This should allow types containing IDs to be serialized (eg. for saving to a database).
2020-07-08 01:58:46 -04:00
Koxiaet
5a5257afef Document default values 2020-07-07 09:41:29 +01:00
Blaine Bublitz
6ed3909a9a Use FieldResult for data(), add data_unchecked() for panic 2020-07-06 17:39:53 -07:00
Sunli
c8409e1a00 Remove ref attribute for SimpleObject fields, and add owned attribute. 2020-06-23 14:42:57 +08:00
Sunli
6172887612 Fix typo 2020-06-22 15:59:53 +08:00
Sunli
94e0971827 Update datetime.rs 2020-06-16 23:21:05 +08:00
Jake Thompson
0a0fc03e8c
Update parsing to support more formats, this includes the JS standard format that is not compatible with the %+ time format 2020-06-16 01:46:20 +00:00