summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/ci_settings_pipeline_triggers/index.js
blob: 3ea8e0df02279cd280c316a82229f57b8d806f0b (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
import Vue from 'vue';
import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';
import TriggersList from './components/triggers_list.vue';

const parseJsonArray = (triggers) => {
  try {
    return convertObjectPropsToCamelCase(JSON.parse(triggers), { deep: true });
  } catch {
    return [];
  }
};

export default (containerId = 'js-ci-pipeline-triggers-list') => {
  const containerEl = document.getElementById(containerId);

  const triggers = parseJsonArray(containerEl.dataset.triggers);

  return new Vue({
    el: containerEl,
    components: {
      TriggersList,
    },
    render(h) {
      return h(TriggersList, {
        props: {
          triggers,
        },
      });
    },
  });
};