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 / helpers / doodleDataLayer.js
Size: Mime:
'use strict';

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

var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
var fetch = require('./fetch.js');
var constants = require('../constants.js');

/**
 * Factory that produces an async dispatcher configured for a specific tracking command
 *
 * @private
 * @param {TRACKING_CMDS} trackingCommand - The tracking command to be sent
 * @return {function} - A configured dispatcher
 */

var sendToDoodleDataLayer = function sendToDoodleDataLayer(trackingCommand) {
  return (
    /*#__PURE__*/

    /**
     * Sends a request to appropriate svc-data-layer endpoint according to trackingCommand
     *
     * @param {TrackingDefinitionData} destinationData - The tracking data formatted to the Doodle Data Layer API
     * @param {TrackingApiOptions} options - The API client's options
     * @return {Promise.<undefined|Object>}
     */
    function () {
      var _sendToDoodleDataLayerInner = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(destinationData, _ref) {
        var clientId, svcDataLayerApi, headers, data;
        return regeneratorRuntime.wrap(function _callee$(_context) {
          while (1) {
            switch (_context.prev = _context.next) {
              case 0:
                clientId = _ref.clientId, svcDataLayerApi = _ref.env.svcDataLayerApi;
                headers = {
                  'Content-Type': 'application/json'
                };
                _context.next = 4;
                return fetch.fetchApi({
                  headers: headers,
                  url: "".concat(svcDataLayerApi, "/").concat(trackingCommand, "?client_id=").concat(clientId),
                  method: 'POST',
                  body: JSON.stringify(destinationData),
                  asBeacon: true
                });

              case 4:
                data = _context.sent;
                return _context.abrupt("return", data);

              case 6:
              case "end":
                return _context.stop();
            }
          }
        }, _callee);
      }));

      function sendToDoodleDataLayerInner(_x, _x2) {
        return _sendToDoodleDataLayerInner.apply(this, arguments);
      }

      return sendToDoodleDataLayerInner;
    }()
  );
};
/** @async */


var trackDoodleDataLayer = sendToDoodleDataLayer(constants.TRACKING_CMDS.TRACK);
/** @async */

var identifyDoodleDataLayer = sendToDoodleDataLayer(constants.TRACKING_CMDS.IDENTIFY);
/** @async */

var pageDoodleDataLayer = sendToDoodleDataLayer(constants.TRACKING_CMDS.PAGE);

exports.identifyDoodleDataLayer = identifyDoodleDataLayer;
exports.pageDoodleDataLayer = pageDoodleDataLayer;
exports.sendToDoodleDataLayer = sendToDoodleDataLayer;
exports.trackDoodleDataLayer = trackDoodleDataLayer;
//# sourceMappingURL=doodleDataLayer.js.map