-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathindex.js
More file actions
86 lines (65 loc) · 1.95 KB
/
Copy pathindex.js
File metadata and controls
86 lines (65 loc) · 1.95 KB
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
76
77
78
79
80
81
82
83
84
85
86
import { NativeModules } from 'react-native';
const { RNIndicative } = NativeModules;
class Indicative {
// --------------------------------------------------
// Identify
// --------------------------------------------------
launch(apiKey) {
RNIndicative.launch(apiKey);
}
identifyUser(uniqueKey) {
RNIndicative.identifyUser(uniqueKey);
}
clearUniqueKey() {
RNIndicative.clearUniqueKey();
}
addCommonProperties(properties) {
RNIndicative.addCommonProperties(truncateParameters(properties));
}
addCommonProperty(name, value) {
var truncatedValue = value;
if (isNaN(truncatedValue)) {
truncatedValue = JSON.stringify(value).substring(0,maxLength);
}
RNIndicative.addCommonProperty(name, {value: truncatedValue});
}
removeCommonProperty(name) {
RNIndicative.removeCommonProperty(name);
}
clearCommonProperties() {
RNIndicative.clearCommonProperties();
}
record(eventName) {
RNIndicative.record(eventName);
}
recordWithProperties(eventName, properties) {
RNIndicative.recordWithProperties(eventName, this.truncateParameters(properties));
}
recordWithUniqueKey(eventName, uniqueKey) {
RNIndicative.recordWithUniqueKey(eventName, uniqueKey);
}
recordWithPropertiesUniqueKey(eventName, uniqueKey, properties) {
RNIndicative.recordWithPropertiesUniqueKey(eventName, uniqueKey, truncateParameters(properties));
}
truncateParameters(rawParams) {
var truncatedParams = {};
var maxLength = 244
for(var key in rawParams) {
var value = rawParams[key];
if (value == undefined) {
continue;
}
if (Array.isArray(value) && value.length == 0) {
continue;
}
if (isNaN(value)) {
var value = JSON.stringify(value);
value = value.substring(0,maxLength);
}
truncatedParams[key] = value;
}
return truncatedParams
}
}
const indicative = new Indicative();
export default indicative;