Repository URL to install this package:
|
Version:
3.0.0 ▾
|
import { asyncToGenerator as _asyncToGenerator } from '../../_virtual/_rollupPluginBabelHelpers.js';
import { fetchApi } from './fetch.js';
import { TRACKING_CMDS } from '../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 = _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 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(TRACKING_CMDS.TRACK);
/** @async */
var identifyDoodleDataLayer = sendToDoodleDataLayer(TRACKING_CMDS.IDENTIFY);
/** @async */
var pageDoodleDataLayer = sendToDoodleDataLayer(TRACKING_CMDS.PAGE);
export { identifyDoodleDataLayer, pageDoodleDataLayer, sendToDoodleDataLayer, trackDoodleDataLayer };
//# sourceMappingURL=doodleDataLayer.js.map