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 / esm / src / services / googleAnalytics / dispatcher.js
Size: Mime:
import { objectSpread2 as _objectSpread2 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
import { getBasicAnalyticsData as getBasicAnalyticsData$1 } from './helpers/getBasicAnalyticsData.js';
import { getDefaultTrackingFields as getDefaultTrackingFields$1 } from './helpers/getDefaultTrackingFields.js';

/**
 * Async function to push tracking data to Google Analytics' data layer
 *
 * @param {TrackingDefinitionData} trackingData The data that needs to be tracked
 * @param {TrackingDefinitionOptions} [trackingOptions]
 * @param {string} [trackingOptions.pageType] - Will be pushed as `page.pageType` to the dataLayer
 * @param {string} [trackingOptions.event]
 * @param {Object} [trackingOptions.env]
 * @return {Promise<boolean>}
 */

var trackGa = function trackGa(trackingData) {
  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
      pageType = _ref.pageType,
      event = _ref.event,
      _ref$env = _ref.env;

  _ref$env = _ref$env === void 0 ? {} : _ref$env;
  var DOODLE_ENV = _ref$env.DOODLE_ENV,
      NODE_ENV = _ref$env.NODE_ENV;
  return new Promise(function (resolve, reject) {
    try {
      var destinationData = _objectSpread2(_objectSpread2(_objectSpread2({}, getBasicAnalyticsData$1(pageType, {
        DOODLE_ENV: DOODLE_ENV,
        NODE_ENV: NODE_ENV
      })), getDefaultTrackingFields$1(event)), trackingData);

      return window.dataLayer.push(destinationData, resolve);
    } catch (e) {
      console.error('Error calling trackGa');
      reject(e);
    }
  });
};

export { trackGa };
//# sourceMappingURL=dispatcher.js.map