Reactive GraphQL
GraphQL reactive executor
Execute GraphQL queries against reactive resolvers (resolvers that return Observable) to get a reactive results.
Install
$ npm i reactive-graphql --save
Usage
The usage is very similar to graphql-js
's graphql
function, except that:
- resolvers can return an Observable
- the result of a query is an Observable
;;; const typeDefs = ` type Query { time: Int! }`; const resolvers = Query: // resolvers can return an Observable { // Observable that emits increasing numbers every 1 second return ; } ; const schema = ; const query = ` query { time }`; const stream = ;// stream is an Observablestream;
outputs
{ data: { time: 0 } }
{ data: { time: 1 } }
{ data: { time: 2 } }
{ data: { time: 3 } }
{ data: { time: 4 } }
...
Caveats
GraphQL Subscriptions are not supported (see issue #27) as everything is treated as subscriptions.
See Also
;;; ; ;;;; // mocked API clients that return Observablesconst oldPosts = ;const newPosts = ;const fetchPosts = oldPosts;const votesStore = {};const fetchVotesForPost = ofvotesStorename || 0; const schema = ; const query = ` query { posts { title votes } }`; const postStream = ;const PostsList = ; { return <div className="App"> <PostsList /> </div> ;} const rootElement = document;ReactDOM;
License
Apache 2.0