78749c982d
* Send the query key as argument to the skip fn This enabled the possibility for the skip to be defined in defaultOptions And based on certain things from the query to skip it EG: query with variable X should be skiped until Y prop is available * fix: watch logic * docs(api): skip option * chore: fix e2e dev * fix: skip watch logic
50 lines
1.3 KiB
Markdown
50 lines
1.3 KiB
Markdown
# Smart Subscription
|
|
|
|
Each subscription declared in the `apollo.$subscribe` option in a component results in the creation of a smart subscription object.
|
|
|
|
## Options
|
|
|
|
- `query`: GraphQL document (can be a file or a `gql` string).
|
|
- `variables`: Object or reactive function that returns an object. Each key will be mapped with a `'$'` in the GraphQL document, for example `foo` will become `$foo`.
|
|
- `throttle`: throttle variables updates (in ms).
|
|
- `debounce`: debounce variables updates (in ms).
|
|
- `result(data, key)` is a hook called when a result is received
|
|
- `error(error)` is a hook called when there are errors. `error` is an Apollo error object with either a `graphQLErrors` property or a `networkError` property.
|
|
- `skip` is a boolean or a (reactive) function that returns a boolean. The function gets the current component and smart query key as arguments, so it can be used in `$query` and in `ApolloProvider`'s `defaultOptions`.
|
|
|
|
## Properties
|
|
|
|
### Skip
|
|
|
|
You can pause or unpause with `skip`:
|
|
|
|
```js
|
|
this.$apollo.subscriptions.users.skip = true
|
|
```
|
|
|
|
## Methods
|
|
|
|
### refresh
|
|
|
|
Stops and restarts the query:
|
|
|
|
```js
|
|
this.$apollo.subscriptions.users.refresh()
|
|
```
|
|
|
|
### start
|
|
|
|
Starts the query:
|
|
|
|
```js
|
|
this.$apollo.subscriptions.users.start()
|
|
```
|
|
|
|
### stop
|
|
|
|
Stops the query:
|
|
|
|
```js
|
|
this.$apollo.subscriptions.users.stop()
|
|
```
|