@searchspring/snap-controller 0.27.5 → 0.27.8

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.
Files changed (37) hide show
  1. package/dist/cjs/Abstract/AbstractController.d.ts +5 -4
  2. package/dist/cjs/Abstract/AbstractController.d.ts.map +1 -1
  3. package/dist/cjs/Autocomplete/AutocompleteController.d.ts +6 -5
  4. package/dist/cjs/Autocomplete/AutocompleteController.d.ts.map +1 -1
  5. package/dist/cjs/Autocomplete/AutocompleteController.js +43 -37
  6. package/dist/cjs/Finder/FinderController.d.ts.map +1 -1
  7. package/dist/cjs/Finder/FinderController.js +4 -1
  8. package/dist/cjs/Recommendation/RecommendationController.d.ts +26 -12
  9. package/dist/cjs/Recommendation/RecommendationController.d.ts.map +1 -1
  10. package/dist/cjs/Recommendation/RecommendationController.js +12 -11
  11. package/dist/cjs/Search/SearchController.d.ts +1 -1
  12. package/dist/cjs/Search/SearchController.d.ts.map +1 -1
  13. package/dist/cjs/Search/SearchController.js +39 -36
  14. package/dist/cjs/types.d.ts +3 -3
  15. package/dist/cjs/types.d.ts.map +1 -1
  16. package/dist/cjs/utils/getParams.d.ts +2 -1
  17. package/dist/cjs/utils/getParams.d.ts.map +1 -1
  18. package/dist/cjs/utils/getParams.js +0 -1
  19. package/dist/esm/Abstract/AbstractController.d.ts +5 -4
  20. package/dist/esm/Abstract/AbstractController.d.ts.map +1 -1
  21. package/dist/esm/Autocomplete/AutocompleteController.d.ts +6 -5
  22. package/dist/esm/Autocomplete/AutocompleteController.d.ts.map +1 -1
  23. package/dist/esm/Autocomplete/AutocompleteController.js +13 -8
  24. package/dist/esm/Finder/FinderController.d.ts.map +1 -1
  25. package/dist/esm/Finder/FinderController.js +4 -1
  26. package/dist/esm/Recommendation/RecommendationController.d.ts +26 -12
  27. package/dist/esm/Recommendation/RecommendationController.d.ts.map +1 -1
  28. package/dist/esm/Recommendation/RecommendationController.js +11 -10
  29. package/dist/esm/Search/SearchController.d.ts +1 -1
  30. package/dist/esm/Search/SearchController.d.ts.map +1 -1
  31. package/dist/esm/Search/SearchController.js +8 -5
  32. package/dist/esm/types.d.ts +3 -3
  33. package/dist/esm/types.d.ts.map +1 -1
  34. package/dist/esm/utils/getParams.d.ts +2 -1
  35. package/dist/esm/utils/getParams.d.ts.map +1 -1
  36. package/dist/esm/utils/getParams.js +0 -1
  37. package/package.json +11 -11
@@ -27,7 +27,7 @@ export class SearchController extends AbstractController {
27
27
  product: {
28
28
  click: (e, result) => {
29
29
  // store scroll position
30
- if (this.config.settings.infinite) {
30
+ if (this.config.settings?.infinite) {
31
31
  const stringyParams = this.storage.get('lastStringyParams');
32
32
  const scrollMap = {};
33
33
  scrollMap[stringyParams] = window.scrollY;
@@ -75,7 +75,7 @@ export class SearchController extends AbstractController {
75
75
  // no param change - not searching
76
76
  return;
77
77
  }
78
- if (this.config.settings.infinite) {
78
+ if (this.config.settings?.infinite) {
79
79
  // TODO: refactor this
80
80
  const preventBackfill = this.config.settings.infinite?.backfill && !this.store.results.length && params.pagination?.page > this.config.settings.infinite.backfill;
81
81
  const dontBackfill = !this.config.settings.infinite?.backfill && !this.store.results.length && params.pagination?.page > 1;
@@ -87,22 +87,24 @@ export class SearchController extends AbstractController {
87
87
  }
88
88
  const searchProfile = this.profiler.create({ type: 'event', name: 'search', context: params }).start();
89
89
  const [meta, response] = await this.client.search(params);
90
+ // @ts-ignore
90
91
  if (!response.meta) {
91
92
  /**
92
93
  * MockClient will overwrite the client search() method and use
93
94
  * SearchData to return mock data which already contains meta data
94
95
  */
96
+ // @ts-ignore
95
97
  response.meta = meta;
96
98
  }
97
99
  // infinite functionality
98
100
  // if params.page > 1 and infinite setting exists we should append results
99
- if (this.config.settings.infinite && params.pagination?.page > 1) {
101
+ if (this.config.settings?.infinite && params.pagination?.page > 1) {
100
102
  // if no results fetch results...
101
103
  let previousResults = this.store.data?.results || [];
102
104
  if (this.config.settings?.infinite.backfill && !previousResults.length) {
103
105
  // figure out how many pages of results to backfill and wait on all responses
104
106
  const backfills = [];
105
- for (let page = 1; page < params.pagination.page; page++) {
107
+ for (let page = 1; page < params.pagination?.page; page++) {
106
108
  const backfillParams = deepmerge({ ...params }, { pagination: { page } });
107
109
  backfills.push(this.client.search(backfillParams));
108
110
  }
@@ -137,6 +139,7 @@ export class SearchController extends AbstractController {
137
139
  afterSearchProfile.stop();
138
140
  this.log.profile(afterSearchProfile);
139
141
  // update the store
142
+ // @ts-ignore
140
143
  this.store.update(response);
141
144
  const afterStoreProfile = this.profiler.create({ type: 'event', name: 'afterStore', context: params }).start();
142
145
  try {
@@ -250,7 +253,7 @@ export class SearchController extends AbstractController {
250
253
  this.use(this.config);
251
254
  }
252
255
  get params() {
253
- const params = deepmerge({ ...getSearchParams(this.urlManager.state) }, this.config.globals);
256
+ const params = deepmerge({ ...getSearchParams(this.urlManager.state) }, this.config.globals || {});
254
257
  // redirect setting
255
258
  if (!this.config.settings?.redirects?.merchandising || this.store.loaded) {
256
259
  params.search = params.search || {};
@@ -1,7 +1,7 @@
1
1
  import type { AbstractController } from './Abstract/AbstractController';
2
2
  import type { EventManager, Middleware, Next } from '@searchspring/snap-event-manager';
3
3
  import type { Client } from '@searchspring/snap-client';
4
- import type { AbstractStore, StoreConfig, SearchStoreConfig, FinderStoreConfig, AutocompleteStoreConfig, RecommendationStoreConfig } from '@searchspring/snap-store-mobx';
4
+ import type { SearchStore, AutocompleteStore, FinderStore, RecommendationStore, StoreConfig, SearchStoreConfig, FinderStoreConfig, AutocompleteStoreConfig, RecommendationStoreConfig } from '@searchspring/snap-store-mobx';
5
5
  import type { Tracker, ProductViewEvent } from '@searchspring/snap-tracker';
6
6
  import type { Profiler } from '@searchspring/snap-profiler';
7
7
  import type { UrlManager } from '@searchspring/snap-url-manager';
@@ -12,7 +12,7 @@ declare global {
12
12
  }
13
13
  }
14
14
  export declare type NextEvent = Next;
15
- export declare type PluginFunction = (cntrlr: AbstractController, ...args: any[]) => Promise<void>;
15
+ export declare type PluginFunction = (cntrlr: AbstractController, ...args: any) => Promise<void>;
16
16
  export declare type PluginGrouping = [func: PluginFunction, ...args: unknown[]];
17
17
  export declare type BeforeSearchObj = {
18
18
  controller: AbstractController;
@@ -35,7 +35,7 @@ export declare enum ControllerTypes {
35
35
  }
36
36
  export declare type ControllerServices = {
37
37
  client: Client;
38
- store: AbstractStore;
38
+ store: SearchStore | AutocompleteStore | FinderStore | RecommendationStore;
39
39
  urlManager: UrlManager;
40
40
  eventManager: EventManager;
41
41
  profiler: Profiler;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- export declare function getSearchParams(state: any): Record<string, any>;
1
+ import type { ImmutableUrlState } from '@searchspring/snap-url-manager';
2
+ export declare function getSearchParams(state: ImmutableUrlState): Record<string, any>;
2
3
  //# sourceMappingURL=getParams.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getParams.d.ts","sourceRoot":"","sources":["../../../src/utils/getParams.ts"],"names":[],"mappings":"AAkCA,wBAAgB,eAAe,CAAC,KAAK,KAAA,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAgF1D"}
1
+ {"version":3,"file":"getParams.d.ts","sourceRoot":"","sources":["../../../src/utils/getParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAqCxE,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAgF7E"}
@@ -1,4 +1,3 @@
1
- // translate state to snAPI params
2
1
  export function getSearchParams(state) {
3
2
  const params = {};
4
3
  if (state.tag) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@searchspring/snap-controller",
3
- "version": "0.27.5",
3
+ "version": "0.27.8",
4
4
  "description": "Snap Controllers",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -20,21 +20,21 @@
20
20
  "test:watch": "jest --watch"
21
21
  },
22
22
  "dependencies": {
23
- "@searchspring/snap-toolbox": "^0.27.5",
24
- "deepmerge": "^4.2.2"
23
+ "@searchspring/snap-toolbox": "^0.27.8",
24
+ "deepmerge": "4.2.2"
25
25
  },
26
26
  "devDependencies": {
27
- "@searchspring/snap-client": "^0.27.5",
28
- "@searchspring/snap-event-manager": "^0.27.5",
29
- "@searchspring/snap-logger": "^0.27.5",
30
- "@searchspring/snap-profiler": "^0.27.5",
31
- "@searchspring/snap-store-mobx": "^0.27.5",
32
- "@searchspring/snap-tracker": "^0.27.5",
33
- "@searchspring/snap-url-manager": "^0.27.5"
27
+ "@searchspring/snap-client": "^0.27.8",
28
+ "@searchspring/snap-event-manager": "^0.27.8",
29
+ "@searchspring/snap-logger": "^0.27.8",
30
+ "@searchspring/snap-profiler": "^0.27.8",
31
+ "@searchspring/snap-store-mobx": "^0.27.8",
32
+ "@searchspring/snap-tracker": "^0.27.8",
33
+ "@searchspring/snap-url-manager": "^0.27.8"
34
34
  },
35
35
  "sideEffects": false,
36
36
  "files": [
37
37
  "dist/**/*"
38
38
  ],
39
- "gitHead": "1b6ea66f4b93f511d9836a02fceb6ce89e00892f"
39
+ "gitHead": "cfbe6d18899fb4944ec397e2419d8409d4ab0065"
40
40
  }