Repository URL to install this package:
|
Version:
1.0.0-alpha.7 ▾
|
import { trackAmplitude } from '../amplitude';
import { trackGa } from '../googleAnalytics';
import { mapTrackingDataToAmplitude } from '../amplitude/mapTrackingDataToAmplitude';
import { mapTrackingDataToGoogleAnalytics } from '../googleAnalytics/helpers/mapTrackingDataToGoogleAnalytics';
import { validateTrackingData } from './validateTrackingData';
/**
* Dispatcher for trackers APIs
*
* @param {Object} trackingAttributes - An object produced by getTrackingDataObject function
* @return {undefined}
*/
const dispatchTrack = async ({ trackingData }) => {
const errors = validateTrackingData(trackingData);
if (errors.length > 0) {
throw errors;
}
const { services } = trackingData;
if (services.ga) {
try {
const destinationData = mapTrackingDataToGoogleAnalytics(trackingData);
await trackGa(destinationData);
} catch (e) {
console.warn('Error on Dispatch: Google Analytics');
console.error(e);
}
}
if (services.amplitude) {
try {
const destinationData = mapTrackingDataToAmplitude(trackingData);
await trackAmplitude(destinationData);
} catch (e) {
console.warn('Error on Dispatch: Amplitude');
console.error(e);
}
}
};
export { dispatchTrack };