diff options
Diffstat (limited to 'app/assets/javascripts/runner/runner_list/index.js')
-rw-r--r-- | app/assets/javascripts/runner/runner_list/index.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/app/assets/javascripts/runner/runner_list/index.js b/app/assets/javascripts/runner/runner_list/index.js new file mode 100644 index 00000000000..5eba14a7948 --- /dev/null +++ b/app/assets/javascripts/runner/runner_list/index.js @@ -0,0 +1,42 @@ +import Vue from 'vue'; +import VueApollo from 'vue-apollo'; +import createDefaultClient from '~/lib/graphql'; +import RunnerDetailsApp from './runner_list_app.vue'; + +Vue.use(VueApollo); + +export const initRunnerList = (selector = '#js-runner-list') => { + const el = document.querySelector(selector); + + if (!el) { + return null; + } + + // TODO `activeRunnersCount` should be implemented using a GraphQL API. + const { activeRunnersCount, registrationToken, runnerInstallHelpPage } = el.dataset; + + const apolloProvider = new VueApollo({ + defaultClient: createDefaultClient( + {}, + { + assumeImmutableResults: true, + }, + ), + }); + + return new Vue({ + el, + apolloProvider, + provide: { + runnerInstallHelpPage, + }, + render(h) { + return h(RunnerDetailsApp, { + props: { + activeRunnersCount: parseInt(activeRunnersCount, 10), + registrationToken, + }, + }); + }, + }); +}; |