@constructor-io/constructorio-client-javascript 2.27.2 → 2.27.6
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.
- package/lib/modules/autocomplete.js +7 -1
- package/lib/modules/browse.js +107 -5
- package/lib/modules/search.js +23 -2
- package/package.json +2 -2
|
@@ -82,7 +82,13 @@ function createAutocompleteUrl(query, parameters, options) {
|
|
|
82
82
|
|
|
83
83
|
|
|
84
84
|
if (hiddenFields) {
|
|
85
|
-
queryParams.
|
|
85
|
+
if (queryParams.fmt_options) {
|
|
86
|
+
queryParams.fmt_options.hidden_fields = hiddenFields;
|
|
87
|
+
} else {
|
|
88
|
+
queryParams.fmt_options = {
|
|
89
|
+
hidden_fields: hiddenFields
|
|
90
|
+
};
|
|
91
|
+
}
|
|
86
92
|
}
|
|
87
93
|
}
|
|
88
94
|
|
package/lib/modules/browse.js
CHANGED
|
@@ -12,6 +12,8 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
12
12
|
|
|
13
13
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
14
14
|
|
|
15
|
+
/* eslint-disable max-len */
|
|
16
|
+
|
|
15
17
|
/* eslint-disable object-curly-newline, no-underscore-dangle */
|
|
16
18
|
var qs = require('qs');
|
|
17
19
|
|
|
@@ -63,7 +65,8 @@ function createQueryParams(parameters, options) {
|
|
|
63
65
|
sortOrder = parameters.sortOrder,
|
|
64
66
|
section = parameters.section,
|
|
65
67
|
fmtOptions = parameters.fmtOptions,
|
|
66
|
-
hiddenFields = parameters.hiddenFields
|
|
68
|
+
hiddenFields = parameters.hiddenFields,
|
|
69
|
+
hiddenFacets = parameters.hiddenFacets; // Pull page from parameters
|
|
67
70
|
|
|
68
71
|
if (!helpers.isNil(page)) {
|
|
69
72
|
queryParams.page = page;
|
|
@@ -100,7 +103,24 @@ function createQueryParams(parameters, options) {
|
|
|
100
103
|
|
|
101
104
|
|
|
102
105
|
if (hiddenFields) {
|
|
103
|
-
queryParams.
|
|
106
|
+
if (queryParams.fmt_options) {
|
|
107
|
+
queryParams.fmt_options.hidden_fields = hiddenFields;
|
|
108
|
+
} else {
|
|
109
|
+
queryParams.fmt_options = {
|
|
110
|
+
hidden_fields: hiddenFields
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
} // Pull hidden facets from parameters
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
if (hiddenFacets) {
|
|
117
|
+
if (queryParams.fmt_options) {
|
|
118
|
+
queryParams.fmt_options.hidden_facets = hiddenFacets;
|
|
119
|
+
} else {
|
|
120
|
+
queryParams.fmt_options = {
|
|
121
|
+
hidden_facets: hiddenFacets
|
|
122
|
+
};
|
|
123
|
+
}
|
|
104
124
|
}
|
|
105
125
|
}
|
|
106
126
|
|
|
@@ -154,13 +174,29 @@ function createBrowseUrlForFacets(parameters, options) {
|
|
|
154
174
|
var queryParams = _objectSpread({}, createQueryParams(parameters, options)); // Endpoint does not accept _dt
|
|
155
175
|
|
|
156
176
|
|
|
157
|
-
delete queryParams._dt;
|
|
158
|
-
|
|
159
|
-
delete queryParams.fmt_options;
|
|
177
|
+
delete queryParams._dt;
|
|
160
178
|
var queryString = qs.stringify(queryParams, {
|
|
161
179
|
indices: false
|
|
162
180
|
});
|
|
163
181
|
return "".concat(serviceUrl, "/browse/facets?").concat(queryString);
|
|
182
|
+
} // Create URL from supplied facet name and parameters
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
function createBrowseUrlForFacetOptions(facetName, parameters, options) {
|
|
186
|
+
var serviceUrl = options.serviceUrl; // Validate facet name is provided
|
|
187
|
+
|
|
188
|
+
if (!facetName || typeof facetName !== 'string') {
|
|
189
|
+
throw new Error('facetName is a required parameter of type string');
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
var queryParams = _objectSpread({}, createQueryParams(parameters, options)); // Endpoint does not accept _dt
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
delete queryParams._dt;
|
|
196
|
+
var queryString = qs.stringify(queryParams, {
|
|
197
|
+
indices: false
|
|
198
|
+
});
|
|
199
|
+
return "".concat(serviceUrl, "/browse/facet_options?facet_name=").concat(facetName, "&").concat(queryString);
|
|
164
200
|
}
|
|
165
201
|
/**
|
|
166
202
|
* Interface to browse related API calls
|
|
@@ -192,6 +228,7 @@ var Browse = /*#__PURE__*/function () {
|
|
|
192
228
|
* @param {string} [parameters.sortOrder='descending'] - The sort order for results
|
|
193
229
|
* @param {object} [parameters.fmtOptions] - The format options used to refine result groups
|
|
194
230
|
* @param {string[]} [parameters.hiddenFields] - Hidden metadata fields to return
|
|
231
|
+
* @param {string[]} [parameters.hiddenFacets] - Hidden facets to return
|
|
195
232
|
* @param {object} [networkParameters] - Parameters relevant to the network request
|
|
196
233
|
* @param {number} [networkParameters.timeout] - Request timeout (in milliseconds)
|
|
197
234
|
* @returns {Promise}
|
|
@@ -269,6 +306,8 @@ var Browse = /*#__PURE__*/function () {
|
|
|
269
306
|
* @param {string} [parameters.sortBy='relevance'] - The sort method for results
|
|
270
307
|
* @param {string} [parameters.sortOrder='descending'] - The sort order for results
|
|
271
308
|
* @param {object} [parameters.fmtOptions] - The format options used to refine result groups
|
|
309
|
+
* @param {string[]} [parameters.hiddenFields] - Hidden metadata fields to return
|
|
310
|
+
* @param {string[]} [parameters.hiddenFacets] - Hidden facets to return
|
|
272
311
|
* @param {object} [networkParameters] - Parameters relevant to the network request
|
|
273
312
|
* @param {number} [networkParameters.timeout] - Request timeout (in milliseconds)
|
|
274
313
|
* @returns {Promise}
|
|
@@ -402,6 +441,7 @@ var Browse = /*#__PURE__*/function () {
|
|
|
402
441
|
* @function getBrowseFacets
|
|
403
442
|
* @param {object} [parameters] - Additional parameters to refine result set
|
|
404
443
|
* @param {number} [parameters.page] - The page number of the results
|
|
444
|
+
* @param {boolean} [parameters.fmtOptions.show_hidden_facets] - Include facets configured as hidden
|
|
405
445
|
* @param {number} [parameters.resultsPerPage] - The number of results per page to return
|
|
406
446
|
* @param {object} [networkParameters] - Parameters relevant to the network request
|
|
407
447
|
* @param {number} [networkParameters.timeout] - Request timeout (in milliseconds)
|
|
@@ -456,6 +496,68 @@ var Browse = /*#__PURE__*/function () {
|
|
|
456
496
|
throw new Error('getBrowseFacets response data is malformed');
|
|
457
497
|
});
|
|
458
498
|
}
|
|
499
|
+
/**
|
|
500
|
+
* Retrieve facet options from API
|
|
501
|
+
*
|
|
502
|
+
* @function getBrowseFacetOptions
|
|
503
|
+
* @param {string} facetName - Name of the facet whose options to return
|
|
504
|
+
* @param {object} [networkParameters] - Parameters relevant to the network request
|
|
505
|
+
* @param {number} [networkParameters.timeout] - Request timeout (in milliseconds)
|
|
506
|
+
* @param {object} [parameters] - Additional parameters to refine result set
|
|
507
|
+
* @param {object} [parameters.fmtOptions] - The format options used to refine result groups
|
|
508
|
+
* @param {boolean} [parameters.fmtOptions.show_hidden_facets] - Include facets configured as hidden
|
|
509
|
+
* @param {}
|
|
510
|
+
* @returns {Promise}
|
|
511
|
+
* @see https://docs.constructor.io/rest_api/browse/facet_options/
|
|
512
|
+
* @example
|
|
513
|
+
* constructorio.browse.getBrowseFacetOptions('price', {
|
|
514
|
+
* });
|
|
515
|
+
*/
|
|
516
|
+
|
|
517
|
+
}, {
|
|
518
|
+
key: "getBrowseFacetOptions",
|
|
519
|
+
value: function getBrowseFacetOptions(facetName) {
|
|
520
|
+
var _this5 = this;
|
|
521
|
+
|
|
522
|
+
var parameters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
523
|
+
var networkParameters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
524
|
+
var requestUrl;
|
|
525
|
+
var fetch = this.options && this.options.fetch || fetchPonyfill({
|
|
526
|
+
Promise: Promise
|
|
527
|
+
}).fetch;
|
|
528
|
+
var signal;
|
|
529
|
+
|
|
530
|
+
if (typeof AbortController === 'function') {
|
|
531
|
+
var controller = new AbortController();
|
|
532
|
+
signal = controller && controller.signal; // Handle network timeout if specified
|
|
533
|
+
|
|
534
|
+
helpers.applyNetworkTimeout(this.options, networkParameters, controller);
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
try {
|
|
538
|
+
requestUrl = createBrowseUrlForFacetOptions(facetName, parameters, this.options);
|
|
539
|
+
} catch (e) {
|
|
540
|
+
return Promise.reject(e);
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
return fetch(requestUrl, {
|
|
544
|
+
signal: signal
|
|
545
|
+
}).then(function (response) {
|
|
546
|
+
if (response.ok) {
|
|
547
|
+
return response.json();
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
return helpers.throwHttpErrorFromResponse(new Error(), response);
|
|
551
|
+
}).then(function (json) {
|
|
552
|
+
if (json.response && json.response.facets) {
|
|
553
|
+
_this5.eventDispatcher.queue('browse.getBrowseFacetOptions.completed', json);
|
|
554
|
+
|
|
555
|
+
return json;
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
throw new Error('getBrowseFacetOptions response data is malformed');
|
|
559
|
+
});
|
|
560
|
+
}
|
|
459
561
|
}]);
|
|
460
562
|
return Browse;
|
|
461
563
|
}();
|
package/lib/modules/search.js
CHANGED
|
@@ -6,6 +6,8 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
|
|
|
6
6
|
|
|
7
7
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
8
8
|
|
|
9
|
+
/* eslint-disable max-len */
|
|
10
|
+
|
|
9
11
|
/* eslint-disable object-curly-newline, no-underscore-dangle */
|
|
10
12
|
var qs = require('qs');
|
|
11
13
|
|
|
@@ -63,7 +65,8 @@ function createSearchUrl(query, parameters, options) {
|
|
|
63
65
|
sortOrder = parameters.sortOrder,
|
|
64
66
|
section = parameters.section,
|
|
65
67
|
fmtOptions = parameters.fmtOptions,
|
|
66
|
-
hiddenFields = parameters.hiddenFields
|
|
68
|
+
hiddenFields = parameters.hiddenFields,
|
|
69
|
+
hiddenFacets = parameters.hiddenFacets; // Pull page from parameters
|
|
67
70
|
|
|
68
71
|
if (!helpers.isNil(page)) {
|
|
69
72
|
queryParams.page = page;
|
|
@@ -101,7 +104,24 @@ function createSearchUrl(query, parameters, options) {
|
|
|
101
104
|
|
|
102
105
|
|
|
103
106
|
if (hiddenFields) {
|
|
104
|
-
queryParams.
|
|
107
|
+
if (queryParams.fmt_options) {
|
|
108
|
+
queryParams.fmt_options.hidden_fields = hiddenFields;
|
|
109
|
+
} else {
|
|
110
|
+
queryParams.fmt_options = {
|
|
111
|
+
hidden_fields: hiddenFields
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
} // Pull hidden facets from parameters
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
if (hiddenFacets) {
|
|
118
|
+
if (queryParams.fmt_options) {
|
|
119
|
+
queryParams.fmt_options.hidden_facets = hiddenFacets;
|
|
120
|
+
} else {
|
|
121
|
+
queryParams.fmt_options = {
|
|
122
|
+
hidden_facets: hiddenFacets
|
|
123
|
+
};
|
|
124
|
+
}
|
|
105
125
|
}
|
|
106
126
|
}
|
|
107
127
|
|
|
@@ -142,6 +162,7 @@ var Search = /*#__PURE__*/function () {
|
|
|
142
162
|
* @param {string} [parameters.section='Products'] - The section name for results
|
|
143
163
|
* @param {object} [parameters.fmtOptions] - The format options used to refine result groups
|
|
144
164
|
* @param {string[]} [parameters.hiddenFields] - Hidden metadata fields to return
|
|
165
|
+
* @param {string[]} [parameters.hiddenFacets] - Hidden facets to return
|
|
145
166
|
* @param {object} [networkParameters] - Parameters relevant to the network request
|
|
146
167
|
* @param {number} [networkParameters.timeout] - Request timeout (in milliseconds)
|
|
147
168
|
* @returns {Promise}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@constructor-io/constructorio-client-javascript",
|
|
3
|
-
"version": "2.27.
|
|
3
|
+
"version": "2.27.6",
|
|
4
4
|
"description": "Constructor.io JavaScript client",
|
|
5
5
|
"main": "lib/constructorio.js",
|
|
6
6
|
"scripts": {
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"sinon-chai": "^3.7.0"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@constructor-io/constructorio-id": "^2.4.
|
|
64
|
+
"@constructor-io/constructorio-id": "^2.4.9",
|
|
65
65
|
"crc-32": "^1.2.0",
|
|
66
66
|
"es6-promise": "^4.2.8",
|
|
67
67
|
"events": "^3.0.0",
|