@searchspring/snap-controller 0.63.4 → 0.64.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.
@@ -1 +1 @@
1
- {"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAa,MAAM,+BAA+B,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EACX,sBAAsB,EAGtB,kBAAkB,EAClB,gBAAgB,EAGhB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EACX,kBAAkB,EAKlB,MAAM,2BAA2B,CAAC;AAmBnC,KAAK,kBAAkB,GAAG;IACzB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;KAC/D,CAAC;CACF,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;IACvC,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,eAAe,CAAwC;gBAG9D,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAuJ3B,KAAK,EAAE,kBAAkB,CA+CvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAiD/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAsN9B;CACF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAiBxF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,MAAM,GAAG,SAAS,CAgCvG"}
1
+ {"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAa,MAAM,+BAA+B,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EACX,sBAAsB,EAGtB,kBAAkB,EAClB,gBAAgB,EAGhB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EACX,kBAAkB,EAKlB,MAAM,2BAA2B,CAAC;AAmBnC,KAAK,kBAAkB,GAAG;IACzB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;KAC/D,CAAC;CACF,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;IACvC,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,eAAe,CAAwC;gBAG9D,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IA2J3B,KAAK,EAAE,kBAAkB,CA+CvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAiD/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAoN9B;CACF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAiBxF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,MAAM,GAAG,SAAS,CAgCvG"}
@@ -151,16 +151,16 @@ var SearchController = /** @class */ (function (_super) {
151
151
  var params_1, err_1, stringyParams, prevStringyParams, searchProfile, meta, response, preventBackfill, dontBackfill, backfillRequests, backfillResponses, backfillResults, afterSearchProfile, err_2, afterStoreProfile, err_3, err_4;
152
152
  var _a, _b;
153
153
  var _this = this;
154
- var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
155
- return __generator(this, function (_p) {
156
- switch (_p.label) {
154
+ var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
155
+ return __generator(this, function (_o) {
156
+ switch (_o.label) {
157
157
  case 0:
158
- _p.trys.push([0, 22, 23, 24]);
158
+ _o.trys.push([0, 22, 23, 24]);
159
159
  if (!!this.initialized) return [3 /*break*/, 2];
160
160
  return [4 /*yield*/, this.init()];
161
161
  case 1:
162
- _p.sent();
163
- _p.label = 2;
162
+ _o.sent();
163
+ _o.label = 2;
164
164
  case 2:
165
165
  params_1 = this.params;
166
166
  if (((_d = (_c = this.params.search) === null || _c === void 0 ? void 0 : _c.query) === null || _d === void 0 ? void 0 : _d.string) && ((_f = (_e = this.params.search) === null || _e === void 0 ? void 0 : _e.query) === null || _f === void 0 ? void 0 : _f.string.length)) {
@@ -168,18 +168,18 @@ var SearchController = /** @class */ (function (_super) {
168
168
  this.store.history.save(this.params.search.query.string);
169
169
  }
170
170
  this.store.loading = true;
171
- _p.label = 3;
171
+ _o.label = 3;
172
172
  case 3:
173
- _p.trys.push([3, 5, , 6]);
173
+ _o.trys.push([3, 5, , 6]);
174
174
  return [4 /*yield*/, this.eventManager.fire('beforeSearch', {
175
175
  controller: this,
176
176
  request: params_1,
177
177
  })];
178
178
  case 4:
179
- _p.sent();
179
+ _o.sent();
180
180
  return [3 /*break*/, 6];
181
181
  case 5:
182
- err_1 = _p.sent();
182
+ err_1 = _o.sent();
183
183
  if ((err_1 === null || err_1 === void 0 ? void 0 : err_1.message) == 'cancelled') {
184
184
  this.log.warn("'beforeSearch' middleware cancelled");
185
185
  return [2 /*return*/];
@@ -227,7 +227,7 @@ var SearchController = /** @class */ (function (_super) {
227
227
  });
228
228
  return [4 /*yield*/, Promise.all(backfillRequests)];
229
229
  case 7:
230
- backfillResponses = _p.sent();
230
+ backfillResponses = _o.sent();
231
231
  // backfillResponses are [meta, searchResponse][]
232
232
  // set the meta and response to the first page of backfillResponses
233
233
  meta = backfillResponses[0][0];
@@ -245,10 +245,10 @@ var SearchController = /** @class */ (function (_super) {
245
245
  case 8: return [4 /*yield*/, this.client.search(params_1)];
246
246
  case 9:
247
247
  // infinite with no backfills.
248
- _a = _p.sent(), meta = _a[0], response = _a[1];
248
+ _a = _o.sent(), meta = _a[0], response = _a[1];
249
249
  // append new results to previous results
250
250
  response.results = __spreadArray(__spreadArray([], this.previousResults, true), (response.results || []), true);
251
- _p.label = 10;
251
+ _o.label = 10;
252
252
  case 10: return [3 /*break*/, 13];
253
253
  case 11:
254
254
  // normal request for next page
@@ -256,8 +256,8 @@ var SearchController = /** @class */ (function (_super) {
256
256
  this.previousResults = [];
257
257
  return [4 /*yield*/, this.client.search(params_1)];
258
258
  case 12:
259
- _b = _p.sent(), meta = _b[0], response = _b[1];
260
- _p.label = 13;
259
+ _b = _o.sent(), meta = _b[0], response = _b[1];
260
+ _o.label = 13;
261
261
  case 13:
262
262
  // MockClient will overwrite the client search() method and use SearchData to return mock data which already contains meta data
263
263
  if (!response.meta) {
@@ -266,19 +266,19 @@ var SearchController = /** @class */ (function (_super) {
266
266
  searchProfile.stop();
267
267
  this.log.profile(searchProfile);
268
268
  afterSearchProfile = this.profiler.create({ type: 'event', name: 'afterSearch', context: params_1 }).start();
269
- _p.label = 14;
269
+ _o.label = 14;
270
270
  case 14:
271
- _p.trys.push([14, 16, , 17]);
271
+ _o.trys.push([14, 16, , 17]);
272
272
  return [4 /*yield*/, this.eventManager.fire('afterSearch', {
273
273
  controller: this,
274
274
  request: params_1,
275
275
  response: response,
276
276
  })];
277
277
  case 15:
278
- _p.sent();
278
+ _o.sent();
279
279
  return [3 /*break*/, 17];
280
280
  case 16:
281
- err_2 = _p.sent();
281
+ err_2 = _o.sent();
282
282
  if ((err_2 === null || err_2 === void 0 ? void 0 : err_2.message) == 'cancelled') {
283
283
  this.log.warn("'afterSearch' middleware cancelled");
284
284
  afterSearchProfile.stop();
@@ -292,26 +292,24 @@ var SearchController = /** @class */ (function (_super) {
292
292
  case 17:
293
293
  afterSearchProfile.stop();
294
294
  this.log.profile(afterSearchProfile);
295
- // store previous results for infinite usage
296
- if ((_o = this.config.settings) === null || _o === void 0 ? void 0 : _o.infinite) {
297
- this.previousResults = JSON.parse(JSON.stringify(response.results));
298
- }
295
+ // store previous results for infinite usage (need to alsways store in case switch to infinite after pagination)
296
+ this.previousResults = JSON.parse(JSON.stringify(response.results));
299
297
  // update the store
300
298
  this.store.update(response);
301
299
  afterStoreProfile = this.profiler.create({ type: 'event', name: 'afterStore', context: params_1 }).start();
302
- _p.label = 18;
300
+ _o.label = 18;
303
301
  case 18:
304
- _p.trys.push([18, 20, , 21]);
302
+ _o.trys.push([18, 20, , 21]);
305
303
  return [4 /*yield*/, this.eventManager.fire('afterStore', {
306
304
  controller: this,
307
305
  request: params_1,
308
306
  response: response,
309
307
  })];
310
308
  case 19:
311
- _p.sent();
309
+ _o.sent();
312
310
  return [3 /*break*/, 21];
313
311
  case 20:
314
- err_3 = _p.sent();
312
+ err_3 = _o.sent();
315
313
  if ((err_3 === null || err_3 === void 0 ? void 0 : err_3.message) == 'cancelled') {
316
314
  this.log.warn("'afterStore' middleware cancelled");
317
315
  afterStoreProfile.stop();
@@ -327,7 +325,7 @@ var SearchController = /** @class */ (function (_super) {
327
325
  this.log.profile(afterStoreProfile);
328
326
  return [3 /*break*/, 24];
329
327
  case 22:
330
- err_4 = _p.sent();
328
+ err_4 = _o.sent();
331
329
  if (err_4) {
332
330
  if (err_4.err && err_4.fetchDetails) {
333
331
  switch (err_4.fetchDetails.status) {
@@ -399,6 +397,8 @@ var SearchController = /** @class */ (function (_super) {
399
397
  redirectURL = (_b = (_a = search.response) === null || _a === void 0 ? void 0 : _a.merchandising) === null || _b === void 0 ? void 0 : _b.redirect;
400
398
  searchStore = search.controller.store;
401
399
  if (redirectURL && ((_d = (_c = config === null || config === void 0 ? void 0 : config.settings) === null || _c === void 0 ? void 0 : _c.redirects) === null || _d === void 0 ? void 0 : _d.merchandising) && !((_f = (_e = search === null || search === void 0 ? void 0 : search.response) === null || _e === void 0 ? void 0 : _e.filters) === null || _f === void 0 ? void 0 : _f.length) && !searchStore.loaded) {
400
+ //set loaded to true to prevent infinite search/reloading from happening
401
+ searchStore.loaded = true;
402
402
  window.location.replace(redirectURL);
403
403
  return [2 /*return*/, false];
404
404
  }
@@ -407,6 +407,8 @@ var SearchController = /** @class */ (function (_super) {
407
407
  ((_m = (_l = search === null || search === void 0 ? void 0 : search.response) === null || _l === void 0 ? void 0 : _l.search) === null || _m === void 0 ? void 0 : _m.query) &&
408
408
  ((_p = (_o = search === null || search === void 0 ? void 0 : search.response) === null || _o === void 0 ? void 0 : _o.pagination) === null || _p === void 0 ? void 0 : _p.totalResults) === 1 &&
409
409
  !(nonBackgroundFilters === null || nonBackgroundFilters === void 0 ? void 0 : nonBackgroundFilters.length)) {
410
+ //set loaded to true to prevent infinite search/reloading from happening
411
+ searchStore.loaded = true;
410
412
  window.location.replace(search === null || search === void 0 ? void 0 : search.response.results[0].mappings.core.url);
411
413
  return [2 /*return*/, false];
412
414
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAa,MAAM,+BAA+B,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EACX,sBAAsB,EAGtB,kBAAkB,EAClB,gBAAgB,EAGhB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EACX,kBAAkB,EAKlB,MAAM,2BAA2B,CAAC;AAmBnC,KAAK,kBAAkB,GAAG;IACzB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;KAC/D,CAAC;CACF,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;IACvC,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,eAAe,CAAwC;gBAG9D,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAuJ3B,KAAK,EAAE,kBAAkB,CA+CvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAiD/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAsN9B;CACF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAiBxF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,MAAM,GAAG,SAAS,CAgCvG"}
1
+ {"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAa,MAAM,+BAA+B,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EACX,sBAAsB,EAGtB,kBAAkB,EAClB,gBAAgB,EAGhB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EACX,kBAAkB,EAKlB,MAAM,2BAA2B,CAAC;AAmBnC,KAAK,kBAAkB,GAAG;IACzB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;KAC/D,CAAC;CACF,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;IACvC,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,eAAe,CAAwC;gBAG9D,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IA2J3B,KAAK,EAAE,kBAAkB,CA+CvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAiD/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAoN9B;CACF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAiBxF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,MAAM,GAAG,SAAS,CAgCvG"}
@@ -186,10 +186,8 @@ export class SearchController extends AbstractController {
186
186
  }
187
187
  afterSearchProfile.stop();
188
188
  this.log.profile(afterSearchProfile);
189
- // store previous results for infinite usage
190
- if (this.config.settings?.infinite) {
191
- this.previousResults = JSON.parse(JSON.stringify(response.results));
192
- }
189
+ // store previous results for infinite usage (need to alsways store in case switch to infinite after pagination)
190
+ this.previousResults = JSON.parse(JSON.stringify(response.results));
193
191
  // update the store
194
192
  this.store.update(response);
195
193
  const afterStoreProfile = this.profiler.create({ type: 'event', name: 'afterStore', context: params }).start();
@@ -278,6 +276,8 @@ export class SearchController extends AbstractController {
278
276
  const redirectURL = search.response?.merchandising?.redirect;
279
277
  const searchStore = search.controller.store;
280
278
  if (redirectURL && config?.settings?.redirects?.merchandising && !search?.response?.filters?.length && !searchStore.loaded) {
279
+ //set loaded to true to prevent infinite search/reloading from happening
280
+ searchStore.loaded = true;
281
281
  window.location.replace(redirectURL);
282
282
  return false;
283
283
  }
@@ -286,6 +286,8 @@ export class SearchController extends AbstractController {
286
286
  search?.response?.search?.query &&
287
287
  search?.response?.pagination?.totalResults === 1 &&
288
288
  !nonBackgroundFilters?.length) {
289
+ //set loaded to true to prevent infinite search/reloading from happening
290
+ searchStore.loaded = true;
289
291
  window.location.replace(search?.response.results[0].mappings.core.url);
290
292
  return false;
291
293
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@searchspring/snap-controller",
3
- "version": "0.63.4",
3
+ "version": "0.64.0",
4
4
  "description": "Snap Controllers",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -20,22 +20,22 @@
20
20
  "test:watch": "jest --watch"
21
21
  },
22
22
  "dependencies": {
23
- "@searchspring/snap-toolbox": "^0.63.4",
23
+ "@searchspring/snap-toolbox": "^0.64.0",
24
24
  "css.escape": "1.5.1",
25
25
  "deepmerge": "4.3.1"
26
26
  },
27
27
  "devDependencies": {
28
- "@searchspring/snap-client": "^0.63.4",
29
- "@searchspring/snap-event-manager": "^0.63.4",
30
- "@searchspring/snap-logger": "^0.63.4",
31
- "@searchspring/snap-profiler": "^0.63.4",
32
- "@searchspring/snap-store-mobx": "^0.63.4",
33
- "@searchspring/snap-tracker": "^0.63.4",
34
- "@searchspring/snap-url-manager": "^0.63.4"
28
+ "@searchspring/snap-client": "^0.64.0",
29
+ "@searchspring/snap-event-manager": "^0.64.0",
30
+ "@searchspring/snap-logger": "^0.64.0",
31
+ "@searchspring/snap-profiler": "^0.64.0",
32
+ "@searchspring/snap-store-mobx": "^0.64.0",
33
+ "@searchspring/snap-tracker": "^0.64.0",
34
+ "@searchspring/snap-url-manager": "^0.64.0"
35
35
  },
36
36
  "sideEffects": false,
37
37
  "files": [
38
38
  "dist/**/*"
39
39
  ],
40
- "gitHead": "8d744ee5f79d14ed44a3d2f1dcf8cd2a08f12485"
40
+ "gitHead": "fc0fb9a2fe535b394a2f0d340a20b2b72ab84bff"
41
41
  }