blob: cc7141df622b873941a99b98b4c5bc5c448a1094 (
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 { delay } from 'lodash';
import api from '~/api';
import { DEFER_DURATION, TRACKING_CAP_KEY, TRACKING_CAP_LENGTH } from '../constants';
function shouldDispatchEvent() {
const timestamp = parseInt(localStorage.getItem(TRACKING_CAP_KEY), 10);
if (Number.isNaN(timestamp)) {
return true;
}
return timestamp + TRACKING_CAP_LENGTH < Date.now();
}
export function dispatchRedisHllUserEvent(event, deferDuration = 0) {
delay(() => api.trackRedisHllUserEvent(event), deferDuration);
}
export function queueRedisHllEvents(events, { verifyCap = false } = {}) {
if (verifyCap) {
if (!shouldDispatchEvent()) {
return;
}
localStorage.setItem(TRACKING_CAP_KEY, Date.now());
}
events.forEach((event, index) => {
dispatchRedisHllUserEvent(event, DEFER_DURATION * (index + 1));
});
}
|