@constructor-io/constructorio-client-javascript 2.26.5 → 2.27.2

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.
@@ -25,7 +25,23 @@ var EventDispatcher = require('./utils/event-dispatcher');
25
25
  var helpers = require('./utils/helpers');
26
26
 
27
27
  var _require = require('../package.json'),
28
- packageVersion = _require.version;
28
+ packageVersion = _require.version; // Compute package version string
29
+
30
+
31
+ var computePackageVersion = function computePackageVersion() {
32
+ var versionPrefix = 'ciojs-client-';
33
+ var versionModifiers = [];
34
+
35
+ if (!helpers.canUseDOM()) {
36
+ versionModifiers.push('domless');
37
+ }
38
+
39
+ if (typeof process.env !== 'undefined' && process.env.BUNDLED) {
40
+ versionModifiers.push('bundled');
41
+ }
42
+
43
+ return "".concat(versionPrefix).concat(versionModifiers.join('-')).concat(versionModifiers.length ? '-' : '').concat(packageVersion);
44
+ };
29
45
  /**
30
46
  * Class to instantiate the ConstructorIO client.
31
47
  */
@@ -61,9 +77,8 @@ var ConstructorIO = /*#__PURE__*/function () {
61
77
  function ConstructorIO() {
62
78
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
63
79
  (0, _classCallCheck2["default"])(this, ConstructorIO);
64
- var canUseDOM = helpers.canUseDOM();
65
80
  var apiKey = options.apiKey,
66
- version = options.version,
81
+ versionFromOptions = options.version,
67
82
  serviceUrl = options.serviceUrl,
68
83
  segments = options.segments,
69
84
  testCells = options.testCells,
@@ -84,9 +99,10 @@ var ConstructorIO = /*#__PURE__*/function () {
84
99
  }
85
100
 
86
101
  var session_id;
87
- var client_id; // Initialize ID session if DOM context is available
102
+ var client_id;
103
+ var versionFromGlobal = typeof global !== 'undefined' && global.CLIENT_VERSION; // Initialize ID session if DOM context is available
88
104
 
89
- if (canUseDOM) {
105
+ if (helpers.canUseDOM()) {
90
106
  var _ConstructorioID = new ConstructorioID(idOptions || {});
91
107
 
92
108
  session_id = _ConstructorioID.session_id;
@@ -105,7 +121,7 @@ var ConstructorIO = /*#__PURE__*/function () {
105
121
 
106
122
  this.options = {
107
123
  apiKey: apiKey,
108
- version: version || typeof global !== 'undefined' && global.CLIENT_VERSION || "ciojs-client-".concat(canUseDOM ? '' : 'domless-').concat(process.env.BUNDLED ? 'bundled-' : '').concat(packageVersion),
124
+ version: versionFromOptions || versionFromGlobal || computePackageVersion(),
109
125
  serviceUrl: serviceUrl && serviceUrl.replace(/\/$/, '') || 'https://ac.cnstrc.com',
110
126
  sessionId: sessionId || session_id,
111
127
  clientId: clientId || client_id,
@@ -146,17 +146,21 @@ var Autocomplete = /*#__PURE__*/function () {
146
146
  var fetch = this.options && this.options.fetch || fetchPonyfill({
147
147
  Promise: Promise
148
148
  }).fetch;
149
- var controller = new AbortController();
150
- var signal = controller.signal;
149
+ var signal;
150
+
151
+ if (typeof AbortController === 'function') {
152
+ var controller = new AbortController();
153
+ signal = controller && controller.signal; // Handle network timeout if specified
154
+
155
+ applyNetworkTimeout(this.options, networkParameters, controller);
156
+ }
151
157
 
152
158
  try {
153
159
  requestUrl = createAutocompleteUrl(query, parameters, this.options);
154
160
  } catch (e) {
155
161
  return Promise.reject(e);
156
- } // Handle network timeout if specified
157
-
162
+ }
158
163
 
159
- applyNetworkTimeout(this.options, networkParameters, controller);
160
164
  return fetch(requestUrl, {
161
165
  signal: signal
162
166
  }).then(function (response) {
@@ -216,17 +216,21 @@ var Browse = /*#__PURE__*/function () {
216
216
  var fetch = this.options && this.options.fetch || fetchPonyfill({
217
217
  Promise: Promise
218
218
  }).fetch;
219
- var controller = new AbortController();
220
- var signal = controller.signal;
219
+ var signal;
220
+
221
+ if (typeof AbortController === 'function') {
222
+ var controller = new AbortController();
223
+ signal = controller && controller.signal; // Handle network timeout if specified
224
+
225
+ helpers.applyNetworkTimeout(this.options, networkParameters, controller);
226
+ }
221
227
 
222
228
  try {
223
229
  requestUrl = createBrowseUrlFromFilter(filterName, filterValue, parameters, this.options);
224
230
  } catch (e) {
225
231
  return Promise.reject(e);
226
- } // Handle network timeout if specified
232
+ }
227
233
 
228
-
229
- helpers.applyNetworkTimeout(this.options, networkParameters, controller);
230
234
  return fetch(requestUrl, {
231
235
  signal: signal
232
236
  }).then(function (response) {
@@ -287,17 +291,21 @@ var Browse = /*#__PURE__*/function () {
287
291
  var fetch = this.options && this.options.fetch || fetchPonyfill({
288
292
  Promise: Promise
289
293
  }).fetch;
290
- var controller = new AbortController();
291
- var signal = controller.signal;
294
+ var signal;
295
+
296
+ if (typeof AbortController === 'function') {
297
+ var controller = new AbortController();
298
+ signal = controller && controller.signal; // Handle network timeout if specified
299
+
300
+ helpers.applyNetworkTimeout(this.options, networkParameters, controller);
301
+ }
292
302
 
293
303
  try {
294
304
  requestUrl = createBrowseUrlFromIDs(itemIds, parameters, this.options);
295
305
  } catch (e) {
296
306
  return Promise.reject(e);
297
- } // Handle network timeout if specified
298
-
307
+ }
299
308
 
300
- helpers.applyNetworkTimeout(this.options, networkParameters, controller);
301
309
  return fetch(requestUrl, {
302
310
  signal: signal
303
311
  }).then(function (response) {
@@ -356,15 +364,20 @@ var Browse = /*#__PURE__*/function () {
356
364
  }).fetch;
357
365
  var serviceUrl = this.options.serviceUrl;
358
366
  var queryParams = createQueryParams(parameters, this.options);
359
- var controller = new AbortController();
360
- var signal = controller.signal;
367
+ var signal;
368
+
369
+ if (typeof AbortController === 'function') {
370
+ var controller = new AbortController();
371
+ signal = controller && controller.signal; // Handle network timeout if specified
372
+
373
+ helpers.applyNetworkTimeout(this.options, networkParameters, controller);
374
+ }
375
+
361
376
  delete queryParams._dt;
362
377
  var queryString = qs.stringify(queryParams, {
363
378
  indices: false
364
379
  });
365
- var requestUrl = "".concat(serviceUrl, "/browse/groups?").concat(queryString); // Handle network timeout if specified
366
-
367
- helpers.applyNetworkTimeout(this.options, networkParameters, controller);
380
+ var requestUrl = "".concat(serviceUrl, "/browse/groups?").concat(queryString);
368
381
  return fetch(requestUrl, {
369
382
  signal: signal
370
383
  }).then(function (response) {
@@ -410,17 +423,21 @@ var Browse = /*#__PURE__*/function () {
410
423
  var fetch = this.options && this.options.fetch || fetchPonyfill({
411
424
  Promise: Promise
412
425
  }).fetch;
413
- var controller = new AbortController();
414
- var signal = controller.signal;
426
+ var signal;
427
+
428
+ if (typeof AbortController === 'function') {
429
+ var controller = new AbortController();
430
+ signal = controller && controller.signal; // Handle network timeout if specified
431
+
432
+ helpers.applyNetworkTimeout(this.options, networkParameters, controller);
433
+ }
415
434
 
416
435
  try {
417
436
  requestUrl = createBrowseUrlForFacets(parameters, this.options);
418
437
  } catch (e) {
419
438
  return Promise.reject(e);
420
- } // Handle network timeout if specified
421
-
439
+ }
422
440
 
423
- helpers.applyNetworkTimeout(this.options, networkParameters, controller);
424
441
  return fetch(requestUrl, {
425
442
  signal: signal
426
443
  }).then(function (response) {
@@ -136,18 +136,23 @@ var Recommendations = /*#__PURE__*/function () {
136
136
  var fetch = this.options && this.options.fetch || fetchPonyfill({
137
137
  Promise: Promise
138
138
  }).fetch;
139
- var controller = new AbortController();
140
- var signal = controller.signal;
139
+ var signal;
140
+
141
+ if (typeof AbortController === 'function') {
142
+ var controller = new AbortController();
143
+ signal = controller && controller.signal; // Handle network timeout if specified
144
+
145
+ helpers.applyNetworkTimeout(this.options, networkParameters, controller);
146
+ }
147
+
141
148
  parameters = parameters || {};
142
149
 
143
150
  try {
144
151
  requestUrl = createRecommendationsUrl(podId, parameters, this.options);
145
152
  } catch (e) {
146
153
  return Promise.reject(e);
147
- } // Handle network timeout if specified
148
-
154
+ }
149
155
 
150
- helpers.applyNetworkTimeout(this.options, networkParameters, controller);
151
156
  return fetch(requestUrl, {
152
157
  signal: signal
153
158
  }).then(function (response) {
@@ -166,17 +166,21 @@ var Search = /*#__PURE__*/function () {
166
166
  var fetch = this.options && this.options.fetch || fetchPonyfill({
167
167
  Promise: Promise
168
168
  }).fetch;
169
- var controller = new AbortController();
170
- var signal = controller.signal;
169
+ var signal;
170
+
171
+ if (typeof AbortController === 'function') {
172
+ var controller = new AbortController();
173
+ signal = controller && controller.signal; // Handle network timeout if specified
174
+
175
+ helpers.applyNetworkTimeout(this.options, networkParameters, controller);
176
+ }
171
177
 
172
178
  try {
173
179
  requestUrl = createSearchUrl(query, parameters, this.options);
174
180
  } catch (e) {
175
181
  return Promise.reject(e);
176
- } // Handle network timeout if specified
177
-
182
+ }
178
183
 
179
- helpers.applyNetworkTimeout(this.options, networkParameters, controller);
180
184
  return fetch(requestUrl, {
181
185
  signal: signal
182
186
  }).then(function (response) {
@@ -82,7 +82,7 @@ var RequestQueue = /*#__PURE__*/function () {
82
82
  var instance = this;
83
83
  RequestQueue.set(queue);
84
84
 
85
- if (networkParameters) {
85
+ if (networkParameters && typeof AbortController === 'function') {
86
86
  var controller = new AbortController();
87
87
  signal = controller.signal;
88
88
  helpers.applyNetworkTimeout(this.options, networkParameters, controller);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@constructor-io/constructorio-client-javascript",
3
- "version": "2.26.5",
3
+ "version": "2.27.2",
4
4
  "description": "Constructor.io JavaScript client",
5
5
  "main": "lib/constructorio.js",
6
6
  "scripts": {
@@ -18,7 +18,8 @@
18
18
  "docs": "jsdoc --configure ./.jsdoc.json ./README.md --recurse ./src --destination ./docs",
19
19
  "compile": "babel src/ -d lib/",
20
20
  "prepublish": "npm run compile",
21
- "bundle": "rm -rf ./dist/* && npm run compile && node bundle.js"
21
+ "bundle": "rm -rf ./dist/* && npm run compile && node bundle.js",
22
+ "prepare": "husky install"
22
23
  },
23
24
  "repository": {
24
25
  "type": "git",
@@ -30,9 +31,6 @@
30
31
  "url": "https://github.com/Constructor-io/constructorio-client-javascript/issues"
31
32
  },
32
33
  "homepage": "https://github.com/Constructor-io/constructorio-client-javascript#readme",
33
- "pre-push": [
34
- "lint"
35
- ],
36
34
  "files": [
37
35
  "lib/**/*"
38
36
  ],
@@ -49,6 +47,7 @@
49
47
  "eslint": "^8.0.1",
50
48
  "eslint-config-airbnb-base": "^13.1.0",
51
49
  "eslint-plugin-import": "^2.25.2",
50
+ "husky": "^7.0.4",
52
51
  "jsdoc": "^3.6.7",
53
52
  "jsdom": "^15.1.1",
54
53
  "license-checker": "^25.0.1",
@@ -57,13 +56,12 @@
57
56
  "mocha": "^9.1.3",
58
57
  "mocha-jsdom": "^2.0.0",
59
58
  "nyc": "^15.1.0",
60
- "pre-push": "^0.1.1",
61
59
  "serve": "^13.0.2",
62
60
  "sinon": "^7.5.0",
63
61
  "sinon-chai": "^3.7.0"
64
62
  },
65
63
  "dependencies": {
66
- "@constructor-io/constructorio-id": "^2.4.6",
64
+ "@constructor-io/constructorio-id": "^2.4.8",
67
65
  "crc-32": "^1.2.0",
68
66
  "es6-promise": "^4.2.8",
69
67
  "events": "^3.0.0",