Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@doodle/tracking / dist / cjs / src / core / getTrackingDataAttrs.js
Size: Mime:
'use strict';

Object.defineProperty(exports, '__esModule', { value: true });

var utils = require('../helpers/utils.js');

/**
 * Returns an object with tracking-related data attributes to be spread over a JSX element
 *
 * @param {TrackingIntent} trackingIntent An object that holds the values that should be tracked
 * @return {Object} An object with data attributes as keys
 */

const getTrackingDataAttrs = ({
  track,
  identify,
  page,
  options: {
    services,
    setOnce,
    trackOnClick
  } = {}
}) => {
  const trackingOptions = { ...(!utils.isUndefined(services) && {
      services
    }),
    ...(!utils.isUndefined(setOnce) && {
      setOnce
    }),
    ...(!utils.isUndefined(trackOnClick) && {
      trackOnClick
    })
  };
  return { ...(trackingOptions && {
      'data-tracking-options': JSON.stringify(trackingOptions)
    }),
    ...(track && {
      'data-track': JSON.stringify(track)
    }),
    ...(identify && {
      'data-identify': JSON.stringify(identify)
    }),
    ...(page && {
      'data-page': JSON.stringify(page)
    })
  };
};

exports.getTrackingDataAttrs = getTrackingDataAttrs;
//# sourceMappingURL=getTrackingDataAttrs.js.map