@barejs/graphql-observable
v6.0.0
Published
GraphQL observable clients for the Python bareASGI web toolkit
Downloads
43
Maintainers
Readme
@barejs/graphql-observable
This is a collection of observable GraphQL clients which support queries, mutations and subscriptions. It uses the rxjs observable library.
It specifically targets the bareASGI GraphQL module from the bareASGI python web framework, which provides multiple transports for subscriptions.
This is a thin wrapper around @barejs/graphql-client where more documentation can be found.
Usage
Subscriptions
The graphqlObservableWsSubscriber
function used be used for subscriptions.
import { graphqlObservableWsSubscriber } from '@barejs/graphql-observable'
const url = 'http://www.example.com/subscriptions'
const init = {}
const query = 'subscription { someSubscription { someField someOtherField } }'
const variables = null
const operationName = null
subscription = graphqlObservableWsSubscriber(url, init, query, variables, operationName).subscribe({
next: data => console.log(data),
error: error => console.error(error),
complete: () => console.log('Completed')
})
Queries, Mutations and Subscriptions
The graphqlObservableWsClient
can be used for queries, mutations, and subscriptions.
import { graphqlObservableWsClient } from '@barejs/graphql-observable'
const url = 'http://www.example.com/graphql'
const init = {}
// This could be a query, mutation or subscription.
const query = 'subscription { someSubscription { someField someOtherField } }'
const variables = null
const operationName = null
const subscription = graphqlObservableWsClient(
url,
init,
query,
variables,
operationName)
.subscribe({
next: data => console.log(data),
error: error => console.log(error),
complete: () => console.log('complete')
})
// Later ...
subscription.unsubscribe()
Other transports
In addition to the fetch/WebSocket transports there is support for EventSource
and streaming fetch, although these are only supported by the bareASGI web framework.
The following functions are available:
- graphqlObservableEventSourceClient,
- graphqlObservableEventSourceSubscriber,
- graphqlObservableFetchClient,
- graphqlObservableStreamClient,
- graphqlObservableWsClient,
- graphqlObservableWsSubscriber
All of the clients abd subscribers take the same arguments as the WebSocket variant.