-
-
Notifications
You must be signed in to change notification settings - Fork 241
/
example-5.js
75 lines (66 loc) · 1.44 KB
/
example-5.js
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import Analytics from 'analytics'
// Case for https://github.com/DavidWells/analytics/issues/24
const pluginA = {
name: 'pluginA',
config: {
test: 'A'
},
trackStart: ({ payload }) => {
const enrichedProperties = Object.assign({}, payload.properties, {
addOne: 'hello'
})
return {
...payload,
...{ properties: enrichedProperties }
}
}
}
const pluginB = {
name: 'pluginB',
config: {
test: 'B'
},
trackStart: ({ payload }) => {
const enrichedProperties = Object.assign({}, payload.properties, {
addTwo: 'there'
})
return {
...payload,
...{ properties: enrichedProperties }
}
}
}
const pluginC = {
name: 'pluginC',
trackStart: ({ payload }) => {
const enrichedProperties = Object.assign({}, payload.properties, {
addThree: 'now'
})
return {
...payload,
...{ properties: enrichedProperties }
}
}
}
const pluginDWithTrack = {
name: 'pluginD',
track: ({ config, payload }) => {
console.log('pluginD payload', payload)
console.log('pluginD payload.properties', payload.properties)
}
}
/* initialize analytics and load plugins */
const analytics = Analytics({
debug: true,
app: 'yolo',
plugins: [
pluginA,
pluginB,
pluginC,
pluginDWithTrack
]
})
// analytics.storage.setItem('wer', 'hi', 'cookie')
window.Analytics = analytics
/* export analytics for usage through the app */
export default analytics