apollo-elements/apollo-elements

View on GitHub
packages/atomico/useSubscription.ts

Summary

Maintainability
A
3 hrs
Test Coverage
A
100%
import type { ComponentDocument, VariablesOf } from '@apollo-elements/core/types';

import { useController } from '@atomico/hooks/use-controller';

import {
  ApolloSubscriptionController,
  ApolloSubscriptionControllerOptions,
} from '@apollo-elements/core/apollo-subscription-controller';

export function useSubscription<D, V = VariablesOf<D>>(
  query: ComponentDocument<D, V>,
  options?: ApolloSubscriptionControllerOptions<D, V>
): ApolloSubscriptionController<D, V> {
  return useController(host => new ApolloSubscriptionController<D, V>(host, query, options));
}