@codecademy/tracking 1.0.14 → 1.0.15-alpha.3ec3866cb6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -47,6 +47,21 @@ export var createTracker = function createTracker(_ref) {
47
47
  keepalive: true
48
48
  }));
49
49
  };
50
+ var serverSideBeacon = function serverSideBeacon(endpoint, data) {
51
+ var uri = new URL(endpoint, apiBaseUrl).toString();
52
+ var form = new URLSearchParams();
53
+ for (var _i3 = 0, _Object$entries2 = Object.entries(data); _i3 < _Object$entries2.length; _i3++) {
54
+ var _ref4 = _Object$entries2[_i3];
55
+ var _ref5 = _slicedToArray(_ref4, 2);
56
+ var k = _ref5[0];
57
+ var v = _ref5[1];
58
+ form.append(k, v.toString());
59
+ }
60
+ fetch(uri, {
61
+ method: 'POST',
62
+ body: form
63
+ });
64
+ };
50
65
  var event = function event(category, _event, userData) {
51
66
  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
52
67
  // support server-side-only as well as client-side events
@@ -68,9 +83,8 @@ export var createTracker = function createTracker(_ref) {
68
83
  });
69
84
  console.groupEnd();
70
85
  }
71
-
72
- // This allows the UTM query params to get registered in the user session.
73
86
  if (typeof window !== 'undefined') {
87
+ // This allows the UTM query params to get registered in the user session.
74
88
  var queryParams = window.location.search;
75
89
  beacon("/analytics/".concat(category).concat(queryParams), {
76
90
  category: category,
@@ -78,6 +92,12 @@ export var createTracker = function createTracker(_ref) {
78
92
  properties: JSON.stringify(properties),
79
93
  gdpr_safe: "".concat(options.gdprSafe)
80
94
  });
95
+ } else {
96
+ serverSideBeacon("/analytics/".concat(category), {
97
+ category: category,
98
+ event: _event,
99
+ properties: JSON.stringify(properties)
100
+ });
81
101
  }
82
102
  };
83
103
  return {
@@ -92,8 +112,8 @@ export var createTracker = function createTracker(_ref) {
92
112
  return event('user', 'visit', data);
93
113
  },
94
114
  pushDataLayerEvent: function pushDataLayerEvent(eventName) {
95
- var _ref4;
96
- ((_ref4 = window).dataLayer || (_ref4.dataLayer = [])).push({
115
+ var _ref6;
116
+ ((_ref6 = window).dataLayer || (_ref6.dataLayer = [])).push({
97
117
  event: eventName
98
118
  });
99
119
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@codecademy/tracking",
3
3
  "description": "Tracking library for Codecademy",
4
- "version": "1.0.14",
4
+ "version": "1.0.15-alpha.3ec3866cb6.0",
5
5
  "author": "Codecademy Engineering <dev@codecademy.com>",
6
6
  "files": [
7
7
  "dist/**"
@@ -13,5 +13,5 @@
13
13
  "access": "public"
14
14
  },
15
15
  "repository": "git@github.com:codecademy-engineering/mono.git",
16
- "gitHead": "357e88ff4a37fece54005422e94e591bc176df77"
16
+ "gitHead": "d9dadf695ac2d20232854746942b29c2b690138e"
17
17
  }