summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/ide/services/gql.js
blob: c8c1031c0f31f373834817e4074749b661f42b8b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import { memoize } from 'lodash';
import createGqClient, { fetchPolicies } from '~/lib/graphql';

/**
 * Returns a memoized client
 *
 * We defer creating the client so that importing this module does not cause any side-effects.
 * Creating the client immediately caused issues with miragejs where the gql client uses the
 * real fetch() instead of the shimmed one.
 */
const getClient = memoize(() =>
  createGqClient(
    {},
    {
      fetchPolicy: fetchPolicies.NO_CACHE,
    },
  ),
);

export const query = (...args) => getClient().query(...args);
export const mutate = (...args) => getClient().mutate(...args);