clarity-js
Version:
An analytics library that uses web page interactions to generate aggregated insights
31 lines (26 loc) • 736 B
text/typescript
import type { ClaritySignal, SignalCallback } from "@clarity-types/data";
export let signalCallback: SignalCallback = null;
export function signal(cb: SignalCallback): void {
signalCallback = cb;
}
function parseSignals(signalsPayload: string): ClaritySignal[] {
try {
const parsedSignals: ClaritySignal[] = JSON.parse(signalsPayload);
return parsedSignals;
} catch {
return [];
}
}
export function signalsEvent(signalsPayload: string) {
try {
if (!signalCallback) {
return;
}
const signals = parseSignals(signalsPayload);
for (const signal of signals) {
signalCallback(signal);
}
} catch {
//do nothing
}
}