35 lines
670 B
JavaScript
35 lines
670 B
JavaScript
const { makeExecutableSchema } = require("graphql-tools");
|
|
const gql = require( "graphql-tag");
|
|
const { timer } = require( "rxjs");
|
|
const graphql = require( "reactive-graphql").graphql;
|
|
|
|
const typeDefs = `
|
|
type Query {
|
|
time: Int!
|
|
}
|
|
`;
|
|
|
|
const resolvers = {
|
|
Query: {
|
|
// resolvers can return an Observable
|
|
time: () => {
|
|
// Observable that emits increasing numbers every 1 second
|
|
return timer(1000, 1000);
|
|
}
|
|
}
|
|
};
|
|
|
|
const schema = makeExecutableSchema({
|
|
typeDefs,
|
|
resolvers
|
|
});
|
|
|
|
const query = gql`
|
|
query {
|
|
time
|
|
}
|
|
`;
|
|
|
|
const stream = graphql(schema, query);
|
|
// stream is an Observable
|
|
stream.subscribe(res => console.log(res)); |