blob: 99e4a6aa3c747d7a39e9e73d695a2bf01cf5dedb (
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
42
43
44
45
46
|
import * as Sentry from '@sentry/browser';
import getStandardContext from './get_standard_context';
export function dispatchSnowplowEvent(
category = document.body.dataset.page,
action = 'generic',
data = {},
) {
if (!category) {
/* eslint-disable-next-line @gitlab/require-i18n-strings */
throw new Error('Tracking: no category provided for tracking.');
}
const { label, property, extra = {} } = data;
let { value } = data;
const standardContext = getStandardContext({ extra });
let contexts = [standardContext];
if (data.context) {
if (Array.isArray(data.context)) {
contexts = [...contexts, ...data.context];
} else {
contexts.push(data.context);
}
}
if (value !== undefined) {
value = Number(value);
}
try {
window.snowplow('trackStructEvent', {
category,
action,
label,
property,
value,
context: contexts,
});
return true;
} catch (error) {
Sentry.captureException(error);
return false;
}
}
|