summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/static_site_editor/graphql/index.js
blob: fbb3d7fbfccef1a4dc39cb32cc23fcc8e4c1a0e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import Vue from 'vue';
import VueApollo from 'vue-apollo';
import createDefaultClient from '~/lib/graphql';
import typeDefs from './typedefs.graphql';
import fileResolver from './resolvers/file';
import submitContentChangesResolver from './resolvers/submit_content_changes';
import hasSubmittedChangesResolver from './resolvers/has_submitted_changes';

Vue.use(VueApollo);

const createApolloProvider = appData => {
  const defaultClient = createDefaultClient(
    {
      Project: {
        file: fileResolver,
      },
      Mutation: {
        submitContentChanges: submitContentChangesResolver,
        hasSubmittedChanges: hasSubmittedChangesResolver,
      },
    },
    {
      typeDefs,
    },
  );

  defaultClient.cache.writeData({
    data: {
      appData: {
        __typename: 'AppData',
        ...appData,
      },
    },
  });

  return new VueApollo({
    defaultClient,
  });
};

export default createApolloProvider;