@searchspring/snap-client 0.20.4 → 0.20.5

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 (38) hide show
  1. package/README.md +91 -17
  2. package/dist/cjs/Client/Client.d.ts.map +1 -1
  3. package/dist/cjs/Client/Client.js +5 -5
  4. package/dist/cjs/Client/NetworkCache/NetworkCache.d.ts.map +1 -1
  5. package/dist/cjs/Client/NetworkCache/NetworkCache.js +6 -0
  6. package/dist/cjs/Client/apis/Abstract.d.ts +2 -2
  7. package/dist/cjs/Client/apis/Abstract.d.ts.map +1 -1
  8. package/dist/cjs/Client/apis/Abstract.js +3 -3
  9. package/dist/cjs/Client/apis/Hybrid.js +2 -2
  10. package/dist/cjs/Client/apis/Recommend.d.ts +1 -0
  11. package/dist/cjs/Client/apis/Recommend.d.ts.map +1 -1
  12. package/dist/cjs/Client/apis/Recommend.js +6 -5
  13. package/dist/cjs/Client/utils/hashParams.d.ts +1 -1
  14. package/dist/cjs/Client/utils/hashParams.d.ts.map +1 -1
  15. package/dist/cjs/types.d.ts +3 -1
  16. package/dist/cjs/types.d.ts.map +1 -1
  17. package/dist/esm/Client/Client.d.ts.map +1 -1
  18. package/dist/esm/Client/Client.js +5 -6
  19. package/dist/esm/Client/NetworkCache/NetworkCache.d.ts.map +1 -1
  20. package/dist/esm/Client/NetworkCache/NetworkCache.js +5 -0
  21. package/dist/esm/Client/apis/Abstract.d.ts +2 -2
  22. package/dist/esm/Client/apis/Abstract.d.ts.map +1 -1
  23. package/dist/esm/Client/apis/Abstract.js +3 -3
  24. package/dist/esm/Client/apis/Hybrid.js +2 -2
  25. package/dist/esm/Client/apis/Recommend.d.ts +1 -0
  26. package/dist/esm/Client/apis/Recommend.d.ts.map +1 -1
  27. package/dist/esm/Client/apis/Recommend.js +4 -3
  28. package/dist/esm/Client/utils/hashParams.d.ts +1 -1
  29. package/dist/esm/Client/utils/hashParams.d.ts.map +1 -1
  30. package/dist/esm/types.d.ts +3 -1
  31. package/dist/esm/types.d.ts.map +1 -1
  32. package/package.json +6 -2
  33. package/dist/cjs/Client/utils/charsParams.d.ts +0 -3
  34. package/dist/cjs/Client/utils/charsParams.d.ts.map +0 -1
  35. package/dist/cjs/Client/utils/charsParams.js +0 -23
  36. package/dist/esm/Client/utils/charsParams.d.ts +0 -3
  37. package/dist/esm/Client/utils/charsParams.d.ts.map +0 -1
  38. package/dist/esm/Client/utils/charsParams.js +0 -19
package/README.md CHANGED
@@ -51,7 +51,7 @@ const globals = {
51
51
  ```
52
52
 
53
53
  ## Client Config
54
- Object required for all controllers
54
+ Optional configuration for each requester. This can be used to specifiy a development origin URL or to configure cache settings per requester.
55
55
 
56
56
  ```typescript
57
57
  export type ClientConfig = {
@@ -82,6 +82,7 @@ export type CacheConfig = {
82
82
  ttl?: number;
83
83
  maxSize?: number;
84
84
  purgeable?: boolean;
85
+ entries?: { [key: string]: Response };
85
86
  };
86
87
 
87
88
  export type SnapApiConfig = {
@@ -93,8 +94,6 @@ export type SnapApiConfig = {
93
94
  ## Controller usage
94
95
  Snap Client is a dependency of Snap Controller and it is recommended to use the Controller's `search` method to perform a search.
95
96
 
96
-
97
-
98
97
  ## Cache usage
99
98
  Each requester in the Snap Client has its own cache settings, which can be configured via the `ClientConfig` under `cache`. Settings include:
100
99
 
@@ -106,9 +105,58 @@ Each requester in the Snap Client has its own cache settings, which can be confi
106
105
 
107
106
  `purgeable`: to allow auto purging of the requests from localstorage when maxSize is hit, based on time remaining to expiration. - Defaults to `true` with the exception of `meta`,
108
107
 
108
+ `entries`: to allow preload the cache. This is primarily used in Email Recommendations.
109
109
 
110
- ## Standalone usage
111
110
  ```typescript
111
+ const metaResponse = {
112
+ "facets": {
113
+ "brand": {
114
+ "display": "list",
115
+ "label": "Brand",
116
+ "collapsed": false,
117
+ "multiple": "or"
118
+ },
119
+ "collection": {
120
+ "display": "list",
121
+ "label": "Collection",
122
+ "collapsed": false,
123
+ "multiple": "or"
124
+ },
125
+ "color_family": {
126
+ "display": "palette",
127
+ "label": "Color",
128
+ "collapsed": false,
129
+ "multiple": "or"
130
+ }
131
+ },
132
+ "sortOptions": [
133
+ {
134
+ "type": "relevance",
135
+ "field": "relevance",
136
+ "direction": "desc",
137
+ "label": "Best Match"
138
+ },
139
+ {
140
+ "type": "field",
141
+ "field": "sales_rank",
142
+ "direction": "desc",
143
+ "label": "Most Popular"
144
+ }
145
+ ]
146
+ };
147
+
148
+ const metaKey = `/api/meta/meta.json{"siteId":"8uyt2m"}`;
149
+
150
+ const clientConfig = {
151
+ search: {
152
+ cache: {
153
+ entries: {
154
+ [metaKey]: metaResponse
155
+ }
156
+ }
157
+ }
158
+ }
159
+
112
160
  const client = new Client(globals, clientConfig);
113
161
 
114
162
  const results = await client.search({
@@ -120,13 +168,26 @@ const results = await client.search({
120
168
  });
121
169
  ```
122
170
 
171
+ ## Standalone usage
172
+ ```typescript
173
+ const client = new Client(globals, clientConfig);
174
+
175
+ const [meta, results] = await client.search({
176
+ search: {
177
+ query: {
178
+ string: 'dress'
179
+ }
180
+ }
181
+ });
182
+ ```
183
+
123
184
  ## `search` method
124
185
  Makes a request to the Searchspring Search API and returns a promise.
125
186
 
126
187
  ```typescript
127
188
  const client = new Client(globals, clientConfig);
128
189
 
129
- const results = await client.search({
190
+ const [meta, results] = await client.search({
130
191
  search: {
131
192
  query: {
132
193
  string: 'dress'
@@ -141,7 +202,7 @@ Makes a request to the Searchspring Autocomplete API and returns a promise.
141
202
  ```typescript
142
203
  const client = new Client(globals, clientConfig);
143
204
 
144
- const results = await client.autocomplete({
205
+ const [meta, results] = await client.autocomplete({
145
206
  suggestions: {
146
207
  count: 5
147
208
  },
@@ -154,21 +215,34 @@ const results = await client.autocomplete({
154
215
  });
155
216
  ```
156
217
 
157
- ## `meta` property
158
- The meta property contains the metadata related to the siteId that the client was instantiated with. This data is to be used together with search results. Metadata contains site configuration like facet and sorting information.
159
-
160
- Note that the `search` method sets the `meta` property, therefore it must be called before attempting to access the `meta` property.
218
+ ## `meta` method
219
+ Makes a request to the Searchspring Search API to fetch meta properties, it returns a promise. The `search` method utilizes this method.
161
220
 
162
221
  ```typescript
163
222
  const client = new Client(globals, clientConfig);
223
+ const meta = await client.meta();
224
+ ```
164
225
 
165
- const results = await client.search({
166
- search: {
167
- query: {
168
- string: 'dress'
169
- }
170
- }
226
+ ## `trending` method
227
+ Makes a request to the Searchspring Trending API and returns a promise.
228
+
229
+ ```typescript
230
+ const client = new Client(globals, clientConfig);
231
+ const results = await client.trending({
232
+ siteId: 'abc123',
233
+ limit: 5
171
234
  });
235
+ ```
172
236
 
173
- const meta = client.meta;
237
+ ## `recommend` method
238
+ Makes a request to the Searchspring Recommend API and returns a promise.
239
+
240
+ ```typescript
241
+ const client = new Client(globals, clientConfig);
242
+ const results = await client.recommend({
243
+ tag: 'similar',
244
+ siteId: 'abc123',
245
+ product: 'product123',
246
+ shopper: 'snapdev',
247
+ });
174
248
  ```
@@ -1 +1 @@
1
- {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/Client/Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAKN,oBAAoB,EACpB,qBAAqB,EAErB,6BAA6B,EAC7B,8BAA8B,EAG9B,MAAM,QAAQ,CAAC;AAEhB,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE5D,OAAO,KAAK,EACX,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,MAAM,2BAA2B,CAAC;AAgCnC,qBAAa,MAAM;IAClB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAMhB;gBAEU,OAAO,EAAE,aAAa,EAAE,MAAM,GAAE,YAAiB;IA0CvD,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAO3D,YAAY,CAAC,MAAM,GAAE,wBAA6B,GAAG,OAAO,CAAC,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,CAAC;IAU5G,MAAM,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IAM1F,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAM/E,SAAS,CAAC,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAAC,8BAA8B,CAAC;CAkC/F"}
1
+ {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/Client/Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAKN,oBAAoB,EACpB,qBAAqB,EAErB,6BAA6B,EAC7B,8BAA8B,EAG9B,MAAM,QAAQ,CAAC;AAEhB,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE5D,OAAO,KAAK,EACX,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,MAAM,2BAA2B,CAAC;AAgCnC,qBAAa,MAAM;IAClB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAMhB;gBAEU,OAAO,EAAE,aAAa,EAAE,MAAM,GAAE,YAAiB;IA0CvD,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAO3D,YAAY,CAAC,MAAM,GAAE,wBAA6B,GAAG,OAAO,CAAC,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,CAAC;IAU5G,MAAM,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IAM1F,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAM/E,SAAS,CAAC,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAAC,8BAA8B,CAAC;CAgC/F"}
@@ -103,23 +103,23 @@ var Client = /** @class */ (function () {
103
103
  this.requesters = {
104
104
  autocomplete: new apis_1.HybridAPI(new apis_1.ApiConfiguration({
105
105
  origin: (_b = (_a = this.config.autocomplete) === null || _a === void 0 ? void 0 : _a.api) === null || _b === void 0 ? void 0 : _b.origin,
106
- cacheSettings: this.config.autocomplete.cache,
106
+ cache: this.config.autocomplete.cache,
107
107
  })),
108
108
  meta: new apis_1.HybridAPI(new apis_1.ApiConfiguration({
109
109
  origin: (_d = (_c = this.config.meta) === null || _c === void 0 ? void 0 : _c.api) === null || _d === void 0 ? void 0 : _d.origin,
110
- cacheSettings: this.config.meta.cache,
110
+ cache: this.config.meta.cache,
111
111
  })),
112
112
  recommend: new apis_1.RecommendAPI(new apis_1.ApiConfiguration({
113
113
  origin: (_f = (_e = this.config.recommend) === null || _e === void 0 ? void 0 : _e.api) === null || _f === void 0 ? void 0 : _f.origin,
114
- cacheSettings: this.config.recommend.cache,
114
+ cache: this.config.recommend.cache,
115
115
  })),
116
116
  search: new apis_1.HybridAPI(new apis_1.ApiConfiguration({
117
117
  origin: (_h = (_g = this.config.search) === null || _g === void 0 ? void 0 : _g.api) === null || _h === void 0 ? void 0 : _h.origin,
118
- cacheSettings: this.config.search.cache,
118
+ cache: this.config.search.cache,
119
119
  })),
120
120
  suggest: new apis_1.SuggestAPI(new apis_1.ApiConfiguration({
121
121
  origin: (_k = (_j = this.config.suggest) === null || _j === void 0 ? void 0 : _j.api) === null || _k === void 0 ? void 0 : _k.origin,
122
- cacheSettings: this.config.suggest.cache,
122
+ cache: this.config.suggest.cache,
123
123
  })),
124
124
  };
125
125
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkCache.d.ts","sourceRoot":"","sources":["../../../../src/Client/NetworkCache/NetworkCache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAS,MAAM,aAAa,CAAC;AAWjD,qBAAa,YAAY;IACxB,OAAO,CAAC,WAAW,CAAa;IAChC,MAAM,EAAE,WAAW,CAAC;gBAER,MAAM,CAAC,EAAE,WAAW;IAIzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;IAgC1B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI;IAyCvC,KAAK;CAQZ"}
1
+ {"version":3,"file":"NetworkCache.d.ts","sourceRoot":"","sources":["../../../../src/Client/NetworkCache/NetworkCache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAS,MAAM,aAAa,CAAC;AAWjD,qBAAa,YAAY;IACxB,OAAO,CAAC,WAAW,CAAa;IAChC,MAAM,EAAE,WAAW,CAAC;gBAER,MAAM,CAAC,EAAE,WAAW;IASzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;IAgC1B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI;IAyCvC,KAAK;CAQZ"}
@@ -25,8 +25,14 @@ var defaultConfig = {
25
25
  };
26
26
  var NetworkCache = /** @class */ (function () {
27
27
  function NetworkCache(config) {
28
+ var _this = this;
28
29
  this.memoryCache = {};
29
30
  this.config = (0, deepmerge_1.default)(defaultConfig, config || {});
31
+ if (this.config.entries) {
32
+ Object.keys(this.config.entries).map(function (key) {
33
+ _this.set(key, _this.config.entries[key]);
34
+ });
35
+ }
30
36
  }
31
37
  NetworkCache.prototype.get = function (key) {
32
38
  try {
@@ -33,12 +33,12 @@ export interface ApiConfigurationParameters {
33
33
  queryParamsStringify?: (params: HTTPQuery) => string;
34
34
  headers?: HTTPHeaders;
35
35
  maxRetry?: number;
36
- cacheSettings?: CacheConfig;
36
+ cache?: CacheConfig;
37
37
  }
38
38
  export declare class ApiConfiguration {
39
39
  private configuration;
40
40
  constructor(configuration: ApiConfigurationParameters);
41
- get cacheSettings(): CacheConfig;
41
+ get cache(): CacheConfig;
42
42
  get maxRetry(): number;
43
43
  get origin(): string;
44
44
  get fetchApi(): FetchAPI;
@@ -1 +1 @@
1
- {"version":3,"file":"Abstract.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Abstract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI1C,oBAAY,IAAI,GAAG,GAAG,CAAC;AACvB,oBAAY,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAC1F,oBAAY,WAAW,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AACpD,oBAAY,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG,SAAS,CAAA;CAAE,CAAC;AAClI,oBAAY,QAAQ,GAAG,IAAI,GAAG,QAAQ,GAAG,eAAe,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;CAChB;AAED,qBAAa,GAAG;IAMH,SAAS,CAAC,aAAa,EAAE,gBAAgB;IALrD,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAK;IAEhB,KAAK,EAAE,YAAY,CAAC;gBAEL,aAAa,EAAE,gBAAgB;cAIrC,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAmChF,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,QAAQ,CAId;CACF;AAED,oBAAY,QAAQ,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;AAE1D,MAAM,WAAW,0BAA0B;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,CAAC;IACrD,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,WAAW,CAAC;CAC5B;AAED,qBAAa,gBAAgB;IAChB,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,0BAA0B;IAM7D,IAAI,aAAa,IAAI,WAAW,CAE/B;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,IAAI,oBAAoB,IAAI,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,CAExD;IAED,IAAI,OAAO,IAAI,WAAW,GAAG,SAAS,CAErC;CACD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,SAAK,GAAG,MAAM,CAmBlE"}
1
+ {"version":3,"file":"Abstract.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Abstract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI1C,oBAAY,IAAI,GAAG,GAAG,CAAC;AACvB,oBAAY,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAC1F,oBAAY,WAAW,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AACpD,oBAAY,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG,SAAS,CAAA;CAAE,CAAC;AAClI,oBAAY,QAAQ,GAAG,IAAI,GAAG,QAAQ,GAAG,eAAe,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;CAChB;AAED,qBAAa,GAAG;IAMH,SAAS,CAAC,aAAa,EAAE,gBAAgB;IALrD,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAK;IAEhB,KAAK,EAAE,YAAY,CAAC;gBAEL,aAAa,EAAE,gBAAgB;cAIrC,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAmChF,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,QAAQ,CAId;CACF;AAED,oBAAY,QAAQ,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;AAE1D,MAAM,WAAW,0BAA0B;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,CAAC;IACrD,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,WAAW,CAAC;CACpB;AAED,qBAAa,gBAAgB;IAChB,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,0BAA0B;IAM7D,IAAI,KAAK,IAAI,WAAW,CAEvB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,IAAI,oBAAoB,IAAI,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,CAExD;IAED,IAAI,OAAO,IAAI,WAAW,GAAG,SAAS,CAErC;CACD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,SAAK,GAAG,MAAM,CAmBlE"}
@@ -57,7 +57,7 @@ var API = /** @class */ (function () {
57
57
  }
58
58
  });
59
59
  }); };
60
- this.cache = new NetworkCache_1.NetworkCache(configuration.cacheSettings);
60
+ this.cache = new NetworkCache_1.NetworkCache(configuration.cache);
61
61
  }
62
62
  API.prototype.request = function (context, cacheKey) {
63
63
  return __awaiter(this, void 0, void 0, function () {
@@ -140,9 +140,9 @@ var ApiConfiguration = /** @class */ (function () {
140
140
  this.configuration.maxRetry = 8;
141
141
  }
142
142
  }
143
- Object.defineProperty(ApiConfiguration.prototype, "cacheSettings", {
143
+ Object.defineProperty(ApiConfiguration.prototype, "cache", {
144
144
  get: function () {
145
- return this.configuration.cacheSettings;
145
+ return this.configuration.cache;
146
146
  },
147
147
  enumerable: false,
148
148
  configurable: true
@@ -70,8 +70,8 @@ var HybridAPI = /** @class */ (function (_super) {
70
70
  function HybridAPI(configuration) {
71
71
  var _this = _super.call(this, configuration) || this;
72
72
  _this.requesters = {
73
- legacy: new _1.LegacyAPI(new _1.ApiConfiguration({ origin: configuration.origin, cacheSettings: _this.configuration.cacheSettings })),
74
- suggest: new _1.SuggestAPI(new _1.ApiConfiguration({ origin: configuration.origin, cacheSettings: _this.configuration.cacheSettings })),
73
+ legacy: new _1.LegacyAPI(new _1.ApiConfiguration({ origin: configuration.origin, cache: _this.configuration.cache })),
74
+ suggest: new _1.SuggestAPI(new _1.ApiConfiguration({ origin: configuration.origin, cache: _this.configuration.cache })),
75
75
  };
76
76
  return _this;
77
77
  }
@@ -10,6 +10,7 @@ export declare type RecommendRequestModel = {
10
10
  lastViewed?: string[];
11
11
  test?: boolean;
12
12
  batched?: boolean;
13
+ limits?: number | number[];
13
14
  };
14
15
  export declare type RecommendResponseModel = {
15
16
  profile: {
@@ -1 +1 @@
1
- {"version":3,"file":"Recommend.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Recommend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Recommend.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Recommend.ts"],"names":[],"mappings":"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"}
@@ -76,7 +76,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
76
76
  exports.RecommendAPI = void 0;
77
77
  var Abstract_1 = require("./Abstract");
78
78
  var hashParams_1 = require("../utils/hashParams");
79
- var charsParams_1 = require("../utils/charsParams");
79
+ var snap_toolbox_1 = require("@searchspring/snap-toolbox");
80
80
  var Deferred = /** @class */ (function () {
81
81
  function Deferred() {
82
82
  var _this = this;
@@ -117,10 +117,10 @@ var RecommendAPI = /** @class */ (function (_super) {
117
117
  };
118
118
  RecommendAPI.prototype.batchRecommendations = function (parameters) {
119
119
  return __awaiter(this, void 0, void 0, function () {
120
- var tags, otherParams, tag, key, paramBatch, deferred;
120
+ var tags, limits, otherParams, tag, key, paramBatch, deferred;
121
121
  var _this = this;
122
122
  return __generator(this, function (_a) {
123
- tags = parameters.tags, otherParams = __rest(parameters, ["tags"]);
123
+ tags = parameters.tags, limits = parameters.limits, otherParams = __rest(parameters, ["tags", "limits"]);
124
124
  tag = (tags || [])[0];
125
125
  if (!tag)
126
126
  return [2 /*return*/];
@@ -131,10 +131,11 @@ var RecommendAPI = /** @class */ (function (_super) {
131
131
  }
132
132
  delete otherParams.batched; // remove from request parameters
133
133
  }
134
- this.batches[key] = this.batches[key] || { timeout: null, request: __assign({ tags: [] }, otherParams), deferreds: [] };
134
+ this.batches[key] = this.batches[key] || { timeout: null, request: __assign({ tags: [], limits: [] }, otherParams), deferreds: [] };
135
135
  paramBatch = this.batches[key];
136
136
  deferred = new Deferred();
137
137
  paramBatch.request.tags.push(tag);
138
+ paramBatch.request.limits = paramBatch.request.limits.concat(limits);
138
139
  paramBatch.deferreds.push(deferred);
139
140
  window.clearTimeout(paramBatch.timeout);
140
141
  paramBatch.timeout = window.setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {
@@ -143,7 +144,7 @@ var RecommendAPI = /** @class */ (function (_super) {
143
144
  switch (_a.label) {
144
145
  case 0:
145
146
  requestMethod = 'getRecommendations';
146
- if ((0, charsParams_1.charsParams)(paramBatch.request) > 1024) {
147
+ if ((0, snap_toolbox_1.charsParams)(paramBatch.request) > 1024) {
147
148
  requestMethod = 'postRecommendations';
148
149
  }
149
150
  _a.label = 1;
@@ -1,3 +1,3 @@
1
- import { ParameterObject } from '../../types';
1
+ import { ParameterObject } from '@searchspring/snap-toolbox';
2
2
  export declare function hashParams(params: ParameterObject): string;
3
3
  //# sourceMappingURL=hashParams.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hashParams.d.ts","sourceRoot":"","sources":["../../../../src/Client/utils/hashParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,wBAAgB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAM1D"}
1
+ {"version":3,"file":"hashParams.d.ts","sourceRoot":"","sources":["../../../../src/Client/utils/hashParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,wBAAgB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAM1D"}
@@ -25,6 +25,9 @@ export declare type CacheConfig = {
25
25
  ttl?: number;
26
26
  maxSize?: number;
27
27
  purgeable?: boolean;
28
+ entries?: {
29
+ [key: string]: Response;
30
+ };
28
31
  };
29
32
  export declare type CacheEntry = {
30
33
  value: Response;
@@ -41,5 +44,4 @@ export declare type ClientGlobals = {
41
44
  siteId: string;
42
45
  [configurationPath: string]: any;
43
46
  };
44
- export declare type ParameterObject = Record<string, boolean | string | string[] | number | number[]>;
45
47
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY,GAAG;IAC1B,IAAI,CAAC,EAAE;QACN,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;IACF,MAAM,CAAC,EAAE;QACR,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;IACF,YAAY,CAAC,EAAE;QACd,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;IACF,SAAS,CAAC,EAAE;QACX,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;IACF,OAAO,CAAC,EAAE;QACT,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;CACF,CAAC;AAEF,oBAAY,WAAW,GAAG;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,oBAAY,UAAU,GAAG;IACxB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,oBAAY,KAAK,GAAG;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC;CAC1B,CAAC;AAEF,oBAAY,aAAa,GAAG;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,oBAAY,aAAa,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,iBAAiB,EAAE,MAAM,GAAG,GAAG,CAAC;CACjC,CAAC;AAEF,oBAAY,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY,GAAG;IAC1B,IAAI,CAAC,EAAE;QACN,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;IACF,MAAM,CAAC,EAAE;QACR,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;IACF,YAAY,CAAC,EAAE;QACd,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;IACF,SAAS,CAAC,EAAE;QACX,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;IACF,OAAO,CAAC,EAAE;QACT,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;CACF,CAAC;AAEF,oBAAY,WAAW,GAAG;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAA;KAAE,CAAC;CACtC,CAAC;AAEF,oBAAY,UAAU,GAAG;IACxB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,oBAAY,KAAK,GAAG;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC;CAC1B,CAAC;AAEF,oBAAY,aAAa,GAAG;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,oBAAY,aAAa,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,iBAAiB,EAAE,MAAM,GAAG,GAAG,CAAC;CACjC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/Client/Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAKN,oBAAoB,EACpB,qBAAqB,EAErB,6BAA6B,EAC7B,8BAA8B,EAG9B,MAAM,QAAQ,CAAC;AAEhB,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE5D,OAAO,KAAK,EACX,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,MAAM,2BAA2B,CAAC;AAgCnC,qBAAa,MAAM;IAClB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAMhB;gBAEU,OAAO,EAAE,aAAa,EAAE,MAAM,GAAE,YAAiB;IA0CvD,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAO3D,YAAY,CAAC,MAAM,GAAE,wBAA6B,GAAG,OAAO,CAAC,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,CAAC;IAU5G,MAAM,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IAM1F,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAM/E,SAAS,CAAC,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAAC,8BAA8B,CAAC;CAkC/F"}
1
+ {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/Client/Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAKN,oBAAoB,EACpB,qBAAqB,EAErB,6BAA6B,EAC7B,8BAA8B,EAG9B,MAAM,QAAQ,CAAC;AAEhB,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE5D,OAAO,KAAK,EACX,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,MAAM,2BAA2B,CAAC;AAgCnC,qBAAa,MAAM;IAClB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAMhB;gBAEU,OAAO,EAAE,aAAa,EAAE,MAAM,GAAE,YAAiB;IA0CvD,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAO3D,YAAY,CAAC,MAAM,GAAE,wBAA6B,GAAG,OAAO,CAAC,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,CAAC;IAU5G,MAAM,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IAM1F,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAM/E,SAAS,CAAC,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAAC,8BAA8B,CAAC;CAgC/F"}
@@ -37,23 +37,23 @@ export class Client {
37
37
  this.requesters = {
38
38
  autocomplete: new HybridAPI(new ApiConfiguration({
39
39
  origin: this.config.autocomplete?.api?.origin,
40
- cacheSettings: this.config.autocomplete.cache,
40
+ cache: this.config.autocomplete.cache,
41
41
  })),
42
42
  meta: new HybridAPI(new ApiConfiguration({
43
43
  origin: this.config.meta?.api?.origin,
44
- cacheSettings: this.config.meta.cache,
44
+ cache: this.config.meta.cache,
45
45
  })),
46
46
  recommend: new RecommendAPI(new ApiConfiguration({
47
47
  origin: this.config.recommend?.api?.origin,
48
- cacheSettings: this.config.recommend.cache,
48
+ cache: this.config.recommend.cache,
49
49
  })),
50
50
  search: new HybridAPI(new ApiConfiguration({
51
51
  origin: this.config.search?.api?.origin,
52
- cacheSettings: this.config.search.cache,
52
+ cache: this.config.search.cache,
53
53
  })),
54
54
  suggest: new SuggestAPI(new ApiConfiguration({
55
55
  origin: this.config.suggest?.api?.origin,
56
- cacheSettings: this.config.suggest.cache,
56
+ cache: this.config.suggest.cache,
57
57
  })),
58
58
  };
59
59
  }
@@ -78,7 +78,6 @@ export class Client {
78
78
  return this.requesters.suggest.getTrending(params);
79
79
  }
80
80
  async recommend(params) {
81
- // TODO - batching
82
81
  const { tag, ...otherParams } = params;
83
82
  if (!tag) {
84
83
  throw 'tag parameter is required';
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkCache.d.ts","sourceRoot":"","sources":["../../../../src/Client/NetworkCache/NetworkCache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAS,MAAM,aAAa,CAAC;AAWjD,qBAAa,YAAY;IACxB,OAAO,CAAC,WAAW,CAAa;IAChC,MAAM,EAAE,WAAW,CAAC;gBAER,MAAM,CAAC,EAAE,WAAW;IAIzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;IAgC1B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI;IAyCvC,KAAK;CAQZ"}
1
+ {"version":3,"file":"NetworkCache.d.ts","sourceRoot":"","sources":["../../../../src/Client/NetworkCache/NetworkCache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAS,MAAM,aAAa,CAAC;AAWjD,qBAAa,YAAY;IACxB,OAAO,CAAC,WAAW,CAAa;IAChC,MAAM,EAAE,WAAW,CAAC;gBAER,MAAM,CAAC,EAAE,WAAW;IASzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;IAgC1B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI;IAyCvC,KAAK;CAQZ"}
@@ -10,6 +10,11 @@ export class NetworkCache {
10
10
  constructor(config) {
11
11
  this.memoryCache = {};
12
12
  this.config = deepmerge(defaultConfig, config || {});
13
+ if (this.config.entries) {
14
+ Object.keys(this.config.entries).map((key) => {
15
+ this.set(key, this.config.entries[key]);
16
+ });
17
+ }
13
18
  }
14
19
  get(key) {
15
20
  try {
@@ -33,12 +33,12 @@ export interface ApiConfigurationParameters {
33
33
  queryParamsStringify?: (params: HTTPQuery) => string;
34
34
  headers?: HTTPHeaders;
35
35
  maxRetry?: number;
36
- cacheSettings?: CacheConfig;
36
+ cache?: CacheConfig;
37
37
  }
38
38
  export declare class ApiConfiguration {
39
39
  private configuration;
40
40
  constructor(configuration: ApiConfigurationParameters);
41
- get cacheSettings(): CacheConfig;
41
+ get cache(): CacheConfig;
42
42
  get maxRetry(): number;
43
43
  get origin(): string;
44
44
  get fetchApi(): FetchAPI;
@@ -1 +1 @@
1
- {"version":3,"file":"Abstract.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Abstract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI1C,oBAAY,IAAI,GAAG,GAAG,CAAC;AACvB,oBAAY,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAC1F,oBAAY,WAAW,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AACpD,oBAAY,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG,SAAS,CAAA;CAAE,CAAC;AAClI,oBAAY,QAAQ,GAAG,IAAI,GAAG,QAAQ,GAAG,eAAe,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;CAChB;AAED,qBAAa,GAAG;IAMH,SAAS,CAAC,aAAa,EAAE,gBAAgB;IALrD,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAK;IAEhB,KAAK,EAAE,YAAY,CAAC;gBAEL,aAAa,EAAE,gBAAgB;cAIrC,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAmChF,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,QAAQ,CAId;CACF;AAED,oBAAY,QAAQ,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;AAE1D,MAAM,WAAW,0BAA0B;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,CAAC;IACrD,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,WAAW,CAAC;CAC5B;AAED,qBAAa,gBAAgB;IAChB,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,0BAA0B;IAM7D,IAAI,aAAa,IAAI,WAAW,CAE/B;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,IAAI,oBAAoB,IAAI,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,CAExD;IAED,IAAI,OAAO,IAAI,WAAW,GAAG,SAAS,CAErC;CACD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,SAAK,GAAG,MAAM,CAmBlE"}
1
+ {"version":3,"file":"Abstract.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Abstract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI1C,oBAAY,IAAI,GAAG,GAAG,CAAC;AACvB,oBAAY,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAC1F,oBAAY,WAAW,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AACpD,oBAAY,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG,SAAS,CAAA;CAAE,CAAC;AAClI,oBAAY,QAAQ,GAAG,IAAI,GAAG,QAAQ,GAAG,eAAe,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;CAChB;AAED,qBAAa,GAAG;IAMH,SAAS,CAAC,aAAa,EAAE,gBAAgB;IALrD,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAK;IAEhB,KAAK,EAAE,YAAY,CAAC;gBAEL,aAAa,EAAE,gBAAgB;cAIrC,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAmChF,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,QAAQ,CAId;CACF;AAED,oBAAY,QAAQ,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;AAE1D,MAAM,WAAW,0BAA0B;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,CAAC;IACrD,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,WAAW,CAAC;CACpB;AAED,qBAAa,gBAAgB;IAChB,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,0BAA0B;IAM7D,IAAI,KAAK,IAAI,WAAW,CAEvB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,IAAI,oBAAoB,IAAI,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,CAExD;IAED,IAAI,OAAO,IAAI,WAAW,GAAG,SAAS,CAErC;CACD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,SAAK,GAAG,MAAM,CAmBlE"}
@@ -10,7 +10,7 @@ export class API {
10
10
  const response = await this.configuration.fetchApi(url, init);
11
11
  return response;
12
12
  };
13
- this.cache = new NetworkCache(configuration.cacheSettings);
13
+ this.cache = new NetworkCache(configuration.cache);
14
14
  }
15
15
  async request(context, cacheKey) {
16
16
  const { url, init } = this.createFetchParams(context);
@@ -78,8 +78,8 @@ export class ApiConfiguration {
78
78
  this.configuration.maxRetry = 8;
79
79
  }
80
80
  }
81
- get cacheSettings() {
82
- return this.configuration.cacheSettings;
81
+ get cache() {
82
+ return this.configuration.cache;
83
83
  }
84
84
  get maxRetry() {
85
85
  return this.configuration.maxRetry;
@@ -4,8 +4,8 @@ export class HybridAPI extends API {
4
4
  constructor(configuration) {
5
5
  super(configuration);
6
6
  this.requesters = {
7
- legacy: new LegacyAPI(new ApiConfiguration({ origin: configuration.origin, cacheSettings: this.configuration.cacheSettings })),
8
- suggest: new SuggestAPI(new ApiConfiguration({ origin: configuration.origin, cacheSettings: this.configuration.cacheSettings })),
7
+ legacy: new LegacyAPI(new ApiConfiguration({ origin: configuration.origin, cache: this.configuration.cache })),
8
+ suggest: new SuggestAPI(new ApiConfiguration({ origin: configuration.origin, cache: this.configuration.cache })),
9
9
  };
10
10
  }
11
11
  async getMeta(requestParameters) {
@@ -10,6 +10,7 @@ export declare type RecommendRequestModel = {
10
10
  lastViewed?: string[];
11
11
  test?: boolean;
12
12
  batched?: boolean;
13
+ limits?: number | number[];
13
14
  };
14
15
  export declare type RecommendResponseModel = {
15
16
  profile: {
@@ -1 +1 @@
1
- {"version":3,"file":"Recommend.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Recommend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Recommend.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Recommend.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { API } from './Abstract';
2
2
  import { hashParams } from '../utils/hashParams';
3
- import { charsParams } from '../utils/charsParams';
3
+ import { charsParams } from '@searchspring/snap-toolbox';
4
4
  class Deferred {
5
5
  constructor() {
6
6
  this.promise = new Promise((resolve, reject) => {
@@ -26,7 +26,7 @@ export class RecommendAPI extends API {
26
26
  return response;
27
27
  }
28
28
  async batchRecommendations(parameters) {
29
- const { tags, ...otherParams } = parameters;
29
+ const { tags, limits, ...otherParams } = parameters;
30
30
  const [tag] = tags || [];
31
31
  if (!tag)
32
32
  return;
@@ -37,10 +37,11 @@ export class RecommendAPI extends API {
37
37
  }
38
38
  delete otherParams.batched; // remove from request parameters
39
39
  }
40
- this.batches[key] = this.batches[key] || { timeout: null, request: { tags: [], ...otherParams }, deferreds: [] };
40
+ this.batches[key] = this.batches[key] || { timeout: null, request: { tags: [], limits: [], ...otherParams }, deferreds: [] };
41
41
  const paramBatch = this.batches[key];
42
42
  const deferred = new Deferred();
43
43
  paramBatch.request.tags.push(tag);
44
+ paramBatch.request.limits = paramBatch.request.limits.concat(limits);
44
45
  paramBatch.deferreds.push(deferred);
45
46
  window.clearTimeout(paramBatch.timeout);
46
47
  paramBatch.timeout = window.setTimeout(async () => {
@@ -1,3 +1,3 @@
1
- import { ParameterObject } from '../../types';
1
+ import { ParameterObject } from '@searchspring/snap-toolbox';
2
2
  export declare function hashParams(params: ParameterObject): string;
3
3
  //# sourceMappingURL=hashParams.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hashParams.d.ts","sourceRoot":"","sources":["../../../../src/Client/utils/hashParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,wBAAgB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAM1D"}
1
+ {"version":3,"file":"hashParams.d.ts","sourceRoot":"","sources":["../../../../src/Client/utils/hashParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,wBAAgB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAM1D"}
@@ -25,6 +25,9 @@ export declare type CacheConfig = {
25
25
  ttl?: number;
26
26
  maxSize?: number;
27
27
  purgeable?: boolean;
28
+ entries?: {
29
+ [key: string]: Response;
30
+ };
28
31
  };
29
32
  export declare type CacheEntry = {
30
33
  value: Response;
@@ -41,5 +44,4 @@ export declare type ClientGlobals = {
41
44
  siteId: string;
42
45
  [configurationPath: string]: any;
43
46
  };
44
- export declare type ParameterObject = Record<string, boolean | string | string[] | number | number[]>;
45
47
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY,GAAG;IAC1B,IAAI,CAAC,EAAE;QACN,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;IACF,MAAM,CAAC,EAAE;QACR,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;IACF,YAAY,CAAC,EAAE;QACd,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;IACF,SAAS,CAAC,EAAE;QACX,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;IACF,OAAO,CAAC,EAAE;QACT,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;CACF,CAAC;AAEF,oBAAY,WAAW,GAAG;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,oBAAY,UAAU,GAAG;IACxB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,oBAAY,KAAK,GAAG;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC;CAC1B,CAAC;AAEF,oBAAY,aAAa,GAAG;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,oBAAY,aAAa,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,iBAAiB,EAAE,MAAM,GAAG,GAAG,CAAC;CACjC,CAAC;AAEF,oBAAY,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY,GAAG;IAC1B,IAAI,CAAC,EAAE;QACN,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;IACF,MAAM,CAAC,EAAE;QACR,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;IACF,YAAY,CAAC,EAAE;QACd,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;IACF,SAAS,CAAC,EAAE;QACX,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;IACF,OAAO,CAAC,EAAE;QACT,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;CACF,CAAC;AAEF,oBAAY,WAAW,GAAG;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAA;KAAE,CAAC;CACtC,CAAC;AAEF,oBAAY,UAAU,GAAG;IACxB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,oBAAY,KAAK,GAAG;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC;CAC1B,CAAC;AAEF,oBAAY,aAAa,GAAG;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,oBAAY,aAAa,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,iBAAiB,EAAE,MAAM,GAAG,GAAG,CAAC;CACjC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@searchspring/snap-client",
3
- "version": "0.20.4",
3
+ "version": "0.20.5",
4
4
  "description": "Snap Client",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -19,9 +19,13 @@
19
19
  "test": "jest",
20
20
  "test:watch": "jest --watch"
21
21
  },
22
+ "dependencies": {
23
+ "@searchspring/snap-toolbox": "^0.20.5",
24
+ "deepmerge": "^4.2.2"
25
+ },
22
26
  "sideEffects": false,
23
27
  "files": [
24
28
  "dist/**/*"
25
29
  ],
26
- "gitHead": "73c9b3ca0f880cd31125921c7b7371825b7d6a0c"
30
+ "gitHead": "37807cdbe3906c03227d32023a119d0bf8892f84"
27
31
  }
@@ -1,3 +0,0 @@
1
- import { ParameterObject } from '../../types';
2
- export declare function charsParams(params: ParameterObject): number;
3
- //# sourceMappingURL=charsParams.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"charsParams.d.ts","sourceRoot":"","sources":["../../../../src/Client/utils/charsParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,wBAAgB,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAqB3D"}
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.charsParams = void 0;
4
- function charsParams(params) {
5
- if (typeof params != 'object') {
6
- throw new Error('function requires an object');
7
- }
8
- var count = Object.keys(params).reduce(function (count, key) {
9
- var keyLength = key.length;
10
- var value = params[key];
11
- if (Array.isArray(value)) {
12
- return (count +
13
- value.reduce(function (length, val) {
14
- return length + keyLength + 1 + ('' + val).length;
15
- }, 0));
16
- }
17
- else {
18
- return count + keyLength + 1 + ('' + value).length;
19
- }
20
- }, 1);
21
- return count;
22
- }
23
- exports.charsParams = charsParams;
@@ -1,3 +0,0 @@
1
- import { ParameterObject } from '../../types';
2
- export declare function charsParams(params: ParameterObject): number;
3
- //# sourceMappingURL=charsParams.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"charsParams.d.ts","sourceRoot":"","sources":["../../../../src/Client/utils/charsParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,wBAAgB,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAqB3D"}
@@ -1,19 +0,0 @@
1
- export function charsParams(params) {
2
- if (typeof params != 'object') {
3
- throw new Error('function requires an object');
4
- }
5
- const count = Object.keys(params).reduce((count, key) => {
6
- const keyLength = key.length;
7
- const value = params[key];
8
- if (Array.isArray(value)) {
9
- return (count +
10
- value.reduce((length, val) => {
11
- return length + keyLength + 1 + ('' + val).length;
12
- }, 0));
13
- }
14
- else {
15
- return count + keyLength + 1 + ('' + value).length;
16
- }
17
- }, 1);
18
- return count;
19
- }