summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/releases/mount_index.js
blob: afb8ab461cd82c5096ebeddbd01833ec73f8c713 (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
import Vue from 'vue';
import VueApollo from 'vue-apollo';
import createDefaultClient from '~/lib/graphql';
import ReleaseIndexApp from './components/app_index.vue';

export default () => {
  const el = document.getElementById('js-releases-page');

  Vue.use(VueApollo);

  const apolloProvider = new VueApollo({
    defaultClient: createDefaultClient(
      {},
      {
        // This page attempts to decrease the perceived loading time
        // by sending two requests: one request for the first item only (which
        // completes relatively quickly), and one for all the items (which is slower).
        // By default, Apollo Client batches these requests together, which defeats
        // the purpose of making separate requests. So we explicitly
        // disable batching on this page.
        batchMax: 1,
      },
    ),
  });

  return new Vue({
    el,
    apolloProvider,
    provide: { ...el.dataset },
    render: (h) => h(ReleaseIndexApp),
  });
};