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    
Size: Mime:
'use strict';

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

var getBasicAnalyticsData = require('./helpers/getBasicAnalyticsData.js');
var getDefaultTrackingFields = require('./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>}
 */

const trackGa = (trackingData, {
  pageType,
  event,
  env: {
    DOODLE_ENV,
    NODE_ENV
  } = {}
} = {}) => new Promise((resolve, reject) => {
  try {
    const destinationData = { ...getBasicAnalyticsData.getBasicAnalyticsData(pageType, {
        DOODLE_ENV,
        NODE_ENV
      }),
      ...getDefaultTrackingFields.getDefaultTrackingFields(event),
      ...trackingData
    };
    return window.dataLayer.push(destinationData, resolve);
  } catch (e) {
    console.error('Error calling trackGa');
    reject(e);
  }
});

exports.trackGa = trackGa;
//# sourceMappingURL=index.js.map