@searchspring/snap-client 0.27.8 → 0.30.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.
- package/dist/cjs/Client/Client.d.ts +1 -0
- package/dist/cjs/Client/Client.d.ts.map +1 -1
- package/dist/cjs/Client/Client.js +12 -0
- package/dist/cjs/Client/NetworkCache/NetworkCache.d.ts +3 -3
- package/dist/cjs/Client/NetworkCache/NetworkCache.d.ts.map +1 -1
- package/dist/cjs/Client/NetworkCache/NetworkCache.js +23 -22
- package/dist/cjs/Client/apis/Abstract.d.ts +6 -2
- package/dist/cjs/Client/apis/Abstract.d.ts.map +1 -1
- package/dist/cjs/Client/apis/Abstract.js +49 -16
- package/dist/cjs/Client/apis/Hybrid.d.ts.map +1 -1
- package/dist/cjs/Client/apis/Hybrid.js +9 -2
- package/dist/cjs/Client/apis/Recommend.d.ts.map +1 -1
- package/dist/cjs/Client/apis/Recommend.js +22 -20
- package/dist/cjs/Client/transforms/searchRequest.d.ts +19 -19
- package/dist/cjs/Client/transforms/searchResponse.d.ts +8 -8
- package/dist/cjs/Client/transforms/searchResponse.js +2 -0
- package/dist/cjs/Client/transforms/suggestResponse.d.ts +2 -2
- package/dist/cjs/types.d.ts +2 -0
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/esm/Client/Client.d.ts +1 -0
- package/dist/esm/Client/Client.d.ts.map +1 -1
- package/dist/esm/Client/Client.js +12 -0
- package/dist/esm/Client/NetworkCache/NetworkCache.d.ts +3 -3
- package/dist/esm/Client/NetworkCache/NetworkCache.d.ts.map +1 -1
- package/dist/esm/Client/NetworkCache/NetworkCache.js +25 -24
- package/dist/esm/Client/apis/Abstract.d.ts +6 -2
- package/dist/esm/Client/apis/Abstract.d.ts.map +1 -1
- package/dist/esm/Client/apis/Abstract.js +21 -9
- package/dist/esm/Client/apis/Hybrid.d.ts.map +1 -1
- package/dist/esm/Client/apis/Hybrid.js +9 -2
- package/dist/esm/Client/apis/Recommend.d.ts.map +1 -1
- package/dist/esm/Client/apis/Recommend.js +20 -18
- package/dist/esm/Client/transforms/searchResponse.js +2 -0
- package/dist/esm/types.d.ts +2 -0
- package/dist/esm/types.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ClientGlobals, ClientConfig, TrendingRequestModel, TrendingResponseModel, RecommendCombinedRequestModel, RecommendCombinedResponseModel } from '../types';
|
|
2
2
|
import type { MetaRequestModel, MetaResponseModel, SearchRequestModel, SearchResponseModel, AutocompleteRequestModel, AutocompleteResponseModel } from '@searchspring/snapi-types';
|
|
3
3
|
export declare class Client {
|
|
4
|
+
private mode;
|
|
4
5
|
private globals;
|
|
5
6
|
private config;
|
|
6
7
|
private requesters;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/Client/Client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/Client/Client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACX,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EAGrB,6BAA6B,EAC7B,8BAA8B,EAC9B,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EACX,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,MAAM,2BAA2B,CAAC;AAsCnC,qBAAa,MAAM;IAClB,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAOhB;gBAEU,OAAO,EAAE,aAAa,EAAE,MAAM,GAAE,YAAiB;IA0DvD,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,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"}
|
|
@@ -62,9 +62,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
62
62
|
};
|
|
63
63
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
64
64
|
exports.Client = void 0;
|
|
65
|
+
var snap_toolbox_1 = require("@searchspring/snap-toolbox");
|
|
65
66
|
var apis_1 = require("./apis");
|
|
66
67
|
var deepmerge_1 = __importDefault(require("deepmerge"));
|
|
67
68
|
var defaultConfig = {
|
|
69
|
+
mode: snap_toolbox_1.AppMode.production,
|
|
68
70
|
meta: {
|
|
69
71
|
cache: {
|
|
70
72
|
purgeable: false,
|
|
@@ -100,33 +102,43 @@ var Client = /** @class */ (function () {
|
|
|
100
102
|
function Client(globals, config) {
|
|
101
103
|
if (config === void 0) { config = {}; }
|
|
102
104
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
105
|
+
this.mode = snap_toolbox_1.AppMode.production;
|
|
103
106
|
if (!(globals === null || globals === void 0 ? void 0 : globals.siteId)) {
|
|
104
107
|
throw 'no siteId specified!';
|
|
105
108
|
}
|
|
106
109
|
this.globals = globals;
|
|
107
110
|
this.config = (0, deepmerge_1.default)(defaultConfig, config);
|
|
111
|
+
if (Object.values(snap_toolbox_1.AppMode).includes(this.config.mode)) {
|
|
112
|
+
this.mode = this.config.mode;
|
|
113
|
+
}
|
|
108
114
|
this.requesters = {
|
|
109
115
|
autocomplete: new apis_1.HybridAPI(new apis_1.ApiConfiguration({
|
|
116
|
+
mode: this.mode,
|
|
110
117
|
origin: (_b = (_a = this.config.autocomplete) === null || _a === void 0 ? void 0 : _a.api) === null || _b === void 0 ? void 0 : _b.origin,
|
|
111
118
|
cache: (_c = this.config.autocomplete) === null || _c === void 0 ? void 0 : _c.cache,
|
|
112
119
|
})),
|
|
113
120
|
meta: new apis_1.HybridAPI(new apis_1.ApiConfiguration({
|
|
121
|
+
mode: this.mode,
|
|
114
122
|
origin: (_e = (_d = this.config.meta) === null || _d === void 0 ? void 0 : _d.api) === null || _e === void 0 ? void 0 : _e.origin,
|
|
115
123
|
cache: (_f = this.config.meta) === null || _f === void 0 ? void 0 : _f.cache,
|
|
116
124
|
})),
|
|
117
125
|
recommend: new apis_1.RecommendAPI(new apis_1.ApiConfiguration({
|
|
126
|
+
mode: this.mode,
|
|
118
127
|
origin: (_h = (_g = this.config.recommend) === null || _g === void 0 ? void 0 : _g.api) === null || _h === void 0 ? void 0 : _h.origin,
|
|
119
128
|
cache: (_j = this.config.recommend) === null || _j === void 0 ? void 0 : _j.cache,
|
|
120
129
|
})),
|
|
121
130
|
search: new apis_1.HybridAPI(new apis_1.ApiConfiguration({
|
|
131
|
+
mode: this.mode,
|
|
122
132
|
origin: (_l = (_k = this.config.search) === null || _k === void 0 ? void 0 : _k.api) === null || _l === void 0 ? void 0 : _l.origin,
|
|
123
133
|
cache: (_m = this.config.search) === null || _m === void 0 ? void 0 : _m.cache,
|
|
124
134
|
})),
|
|
125
135
|
finder: new apis_1.HybridAPI(new apis_1.ApiConfiguration({
|
|
136
|
+
mode: this.mode,
|
|
126
137
|
origin: (_p = (_o = this.config.finder) === null || _o === void 0 ? void 0 : _o.api) === null || _p === void 0 ? void 0 : _p.origin,
|
|
127
138
|
cache: (_q = this.config.finder) === null || _q === void 0 ? void 0 : _q.cache,
|
|
128
139
|
})),
|
|
129
140
|
suggest: new apis_1.SuggestAPI(new apis_1.ApiConfiguration({
|
|
141
|
+
mode: this.mode,
|
|
130
142
|
origin: (_s = (_r = this.config.suggest) === null || _r === void 0 ? void 0 : _r.api) === null || _s === void 0 ? void 0 : _s.origin,
|
|
131
143
|
cache: (_t = this.config.suggest) === null || _t === void 0 ? void 0 : _t.cache,
|
|
132
144
|
})),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { CacheConfig, DefaultCacheConfig } from '../../types';
|
|
1
|
+
import { CacheConfig, Cache, DefaultCacheConfig } from '../../types';
|
|
2
2
|
export declare class NetworkCache {
|
|
3
|
-
|
|
4
|
-
config: DefaultCacheConfig;
|
|
3
|
+
protected memoryCache: Cache;
|
|
4
|
+
protected config: DefaultCacheConfig;
|
|
5
5
|
constructor(config?: CacheConfig);
|
|
6
6
|
get(key: string): Response | void;
|
|
7
7
|
set(key: string, value: Response): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkCache.d.ts","sourceRoot":"","sources":["../../../../src/Client/NetworkCache/NetworkCache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"NetworkCache.d.ts","sourceRoot":"","sources":["../../../../src/Client/NetworkCache/NetworkCache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAWrE,qBAAa,YAAY;IACxB,SAAS,CAAC,WAAW,EAAE,KAAK,CAAM;IAClC,SAAS,CAAC,MAAM,EAAE,kBAAkB,CAAC;gBAEzB,MAAM,CAAC,EAAE,WAAW;IAWzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAgCjC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI;IAyCvC,KAAK;CAQZ"}
|
|
@@ -37,31 +37,32 @@ var NetworkCache = /** @class */ (function () {
|
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
39
|
NetworkCache.prototype.get = function (key) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
if (
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
var stored = sessionStorage.getItem(CACHE_STORAGE_KEY);
|
|
47
|
-
var localData = stored && JSON.parse(stored);
|
|
48
|
-
if (localData && key && localData[key]) {
|
|
49
|
-
// compare the expiry time of the item with the current time
|
|
50
|
-
if (Date.now() > localData[key].expires) {
|
|
51
|
-
// remove item
|
|
52
|
-
var newStored = __assign({}, localData);
|
|
53
|
-
delete newStored[key];
|
|
54
|
-
//update storage
|
|
55
|
-
sessionStorage.setItem(CACHE_STORAGE_KEY, JSON.stringify(newStored));
|
|
56
|
-
return undefined;
|
|
40
|
+
if (this.config.enabled) {
|
|
41
|
+
try {
|
|
42
|
+
if (this.memoryCache[key]) {
|
|
43
|
+
if (Date.now() < this.memoryCache[key].expires) {
|
|
44
|
+
return this.memoryCache[key].value;
|
|
45
|
+
}
|
|
57
46
|
}
|
|
58
|
-
|
|
59
|
-
|
|
47
|
+
var stored = sessionStorage.getItem(CACHE_STORAGE_KEY);
|
|
48
|
+
var localData = stored && JSON.parse(stored);
|
|
49
|
+
if (localData && key && localData[key]) {
|
|
50
|
+
// compare the expiry time of the item with the current time
|
|
51
|
+
if (Date.now() >= localData[key].expires) {
|
|
52
|
+
// remove item
|
|
53
|
+
var newStored = __assign({}, localData);
|
|
54
|
+
delete newStored[key];
|
|
55
|
+
// update storage
|
|
56
|
+
sessionStorage.setItem(CACHE_STORAGE_KEY, JSON.stringify(newStored));
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
return localData[key].value;
|
|
60
|
+
}
|
|
60
61
|
}
|
|
61
62
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
catch (err) {
|
|
64
|
+
console.warn('something went wrong, browser might not have cookies enabled');
|
|
65
|
+
}
|
|
65
66
|
}
|
|
66
67
|
};
|
|
67
68
|
NetworkCache.prototype.set = function (key, value) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AppMode } from '@searchspring/snap-toolbox';
|
|
1
2
|
import { NetworkCache } from '../NetworkCache/NetworkCache';
|
|
2
3
|
import { CacheConfig } from '../../types';
|
|
3
4
|
export declare type Json = any;
|
|
@@ -22,12 +23,14 @@ export declare class API {
|
|
|
22
23
|
private retryCount;
|
|
23
24
|
cache: NetworkCache;
|
|
24
25
|
constructor(configuration: ApiConfiguration);
|
|
26
|
+
protected get mode(): AppMode;
|
|
25
27
|
protected request(context: RequestOpts, cacheKey?: any): Promise<Response>;
|
|
26
28
|
private createFetchParams;
|
|
27
29
|
private fetchApi;
|
|
28
30
|
}
|
|
29
31
|
export declare type FetchAPI = WindowOrWorkerGlobalScope['fetch'];
|
|
30
32
|
export interface ApiConfigurationParameters {
|
|
33
|
+
mode?: keyof typeof AppMode | AppMode;
|
|
31
34
|
origin?: string;
|
|
32
35
|
fetchApi?: FetchAPI;
|
|
33
36
|
queryParamsStringify?: (params: HTTPQuery) => string;
|
|
@@ -37,13 +40,14 @@ export interface ApiConfigurationParameters {
|
|
|
37
40
|
}
|
|
38
41
|
export declare class ApiConfiguration {
|
|
39
42
|
private configuration;
|
|
40
|
-
constructor(configuration
|
|
43
|
+
constructor(configuration?: ApiConfigurationParameters);
|
|
41
44
|
get cache(): CacheConfig;
|
|
42
45
|
get maxRetry(): number;
|
|
43
46
|
get origin(): string;
|
|
44
47
|
get fetchApi(): FetchAPI;
|
|
45
48
|
get queryParamsStringify(): (params: HTTPQuery) => string;
|
|
46
|
-
get headers(): HTTPHeaders
|
|
49
|
+
get headers(): HTTPHeaders;
|
|
50
|
+
get mode(): AppMode;
|
|
47
51
|
}
|
|
48
52
|
export declare function querystring(params: HTTPQuery, prefix?: string): string;
|
|
49
53
|
//# sourceMappingURL=Abstract.d.ts.map
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"Abstract.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Abstract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGrD,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;IAIrD,SAAS,KAAK,IAAI,IAAI,OAAO,CAE5B;cAEe,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAmChF,OAAO,CAAC,iBAAiB;YAiCX,QAAQ;CAKtB;AAED,oBAAY,QAAQ,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;AAE1D,MAAM,WAAW,0BAA0B;IAC1C,IAAI,CAAC,EAAE,MAAM,OAAO,OAAO,GAAG,OAAO,CAAC;IACtC,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,GAAE,0BAA+B;IAalE,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,CAEzB;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;CACD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,SAAK,GAAG,MAAM,CAmBlE"}
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
2
13
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
14
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
15
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -37,28 +48,24 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
37
48
|
};
|
|
38
49
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
50
|
exports.querystring = exports.ApiConfiguration = exports.API = void 0;
|
|
51
|
+
var snap_toolbox_1 = require("@searchspring/snap-toolbox");
|
|
40
52
|
var fibonacci_1 = require("../utils/fibonacci");
|
|
41
53
|
var NetworkCache_1 = require("../NetworkCache/NetworkCache");
|
|
42
54
|
var isBlob = function (value) { return typeof Blob !== 'undefined' && value instanceof Blob; };
|
|
43
55
|
var API = /** @class */ (function () {
|
|
44
56
|
function API(configuration) {
|
|
45
|
-
var _this = this;
|
|
46
57
|
this.configuration = configuration;
|
|
47
58
|
this.retryDelay = 1000;
|
|
48
59
|
this.retryCount = 0;
|
|
49
|
-
this.
|
|
50
|
-
var response;
|
|
51
|
-
return __generator(this, function (_a) {
|
|
52
|
-
switch (_a.label) {
|
|
53
|
-
case 0: return [4 /*yield*/, this.configuration.fetchApi(url, init)];
|
|
54
|
-
case 1:
|
|
55
|
-
response = _a.sent();
|
|
56
|
-
return [2 /*return*/, response];
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
}); };
|
|
60
|
-
this.cache = new NetworkCache_1.NetworkCache(configuration.cache);
|
|
60
|
+
this.cache = new NetworkCache_1.NetworkCache(this.configuration.cache);
|
|
61
61
|
}
|
|
62
|
+
Object.defineProperty(API.prototype, "mode", {
|
|
63
|
+
get: function () {
|
|
64
|
+
return this.configuration.mode;
|
|
65
|
+
},
|
|
66
|
+
enumerable: false,
|
|
67
|
+
configurable: true
|
|
68
|
+
});
|
|
62
69
|
API.prototype.request = function (context, cacheKey) {
|
|
63
70
|
return __awaiter(this, void 0, void 0, function () {
|
|
64
71
|
var _a, url, init, cachedResponse, response, responseJSON;
|
|
@@ -78,7 +85,7 @@ var API = /** @class */ (function () {
|
|
|
78
85
|
return [4 /*yield*/, this.fetchApi(url, init)];
|
|
79
86
|
case 1:
|
|
80
87
|
response = _b.sent();
|
|
81
|
-
return [4 /*yield*/, response.json()];
|
|
88
|
+
return [4 /*yield*/, (response === null || response === void 0 ? void 0 : response.json())];
|
|
82
89
|
case 2:
|
|
83
90
|
responseJSON = _b.sent();
|
|
84
91
|
if (!(response.status >= 200 && response.status < 300)) return [3 /*break*/, 3];
|
|
@@ -122,7 +129,7 @@ var API = /** @class */ (function () {
|
|
|
122
129
|
var body = (typeof FormData !== 'undefined' && context.body instanceof FormData) || context.body instanceof URLSearchParams || isBlob(context.body)
|
|
123
130
|
? context.body
|
|
124
131
|
: JSON.stringify(context.body);
|
|
125
|
-
var headers =
|
|
132
|
+
var headers = __assign(__assign({}, this.configuration.headers), context.headers);
|
|
126
133
|
var init = {
|
|
127
134
|
method: context.method,
|
|
128
135
|
headers: headers,
|
|
@@ -130,15 +137,34 @@ var API = /** @class */ (function () {
|
|
|
130
137
|
};
|
|
131
138
|
return { url: url, init: init };
|
|
132
139
|
};
|
|
140
|
+
API.prototype.fetchApi = function (url, init) {
|
|
141
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
142
|
+
var response;
|
|
143
|
+
return __generator(this, function (_a) {
|
|
144
|
+
switch (_a.label) {
|
|
145
|
+
case 0: return [4 /*yield*/, this.configuration.fetchApi(url, init)];
|
|
146
|
+
case 1:
|
|
147
|
+
response = _a.sent();
|
|
148
|
+
return [2 /*return*/, response];
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
};
|
|
133
153
|
return API;
|
|
134
154
|
}());
|
|
135
155
|
exports.API = API;
|
|
136
156
|
var ApiConfiguration = /** @class */ (function () {
|
|
137
157
|
function ApiConfiguration(configuration) {
|
|
158
|
+
if (configuration === void 0) { configuration = {}; }
|
|
138
159
|
this.configuration = configuration;
|
|
139
160
|
if (!configuration.maxRetry) {
|
|
140
161
|
this.configuration.maxRetry = 8;
|
|
141
162
|
}
|
|
163
|
+
this.configuration.cache = this.configuration.cache || {};
|
|
164
|
+
this.configuration.mode = this.configuration.mode || snap_toolbox_1.AppMode.production;
|
|
165
|
+
if (this.configuration.mode == snap_toolbox_1.AppMode.development) {
|
|
166
|
+
this.configuration.cache.enabled = false;
|
|
167
|
+
}
|
|
142
168
|
}
|
|
143
169
|
Object.defineProperty(ApiConfiguration.prototype, "cache", {
|
|
144
170
|
get: function () {
|
|
@@ -178,7 +204,14 @@ var ApiConfiguration = /** @class */ (function () {
|
|
|
178
204
|
});
|
|
179
205
|
Object.defineProperty(ApiConfiguration.prototype, "headers", {
|
|
180
206
|
get: function () {
|
|
181
|
-
return this.configuration.headers;
|
|
207
|
+
return this.configuration.headers || {};
|
|
208
|
+
},
|
|
209
|
+
enumerable: false,
|
|
210
|
+
configurable: true
|
|
211
|
+
});
|
|
212
|
+
Object.defineProperty(ApiConfiguration.prototype, "mode", {
|
|
213
|
+
get: function () {
|
|
214
|
+
return this.configuration.mode;
|
|
182
215
|
},
|
|
183
216
|
enumerable: false,
|
|
184
217
|
configurable: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hybrid.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Hybrid.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Hybrid.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Hybrid.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,wBAAwB,EACxB,yBAAyB,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,GAAG,EAAqD,gBAAgB,EAAE,MAAM,GAAG,CAAC;AAI7F,qBAAa,SAAU,SAAQ,GAAG;IACjC,OAAO,CAAC,UAAU,CAGhB;gBAEU,aAAa,EAAE,gBAAgB;IAiBrC,OAAO,CAAC,iBAAiB,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAKxE,SAAS,CAAC,iBAAiB,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAQ9E,SAAS,CAAC,iBAAiB,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAQ9E,eAAe,CAAC,iBAAiB,EAAE,wBAAwB,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAoCtG"}
|
|
@@ -63,15 +63,22 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
63
63
|
};
|
|
64
64
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
65
65
|
exports.HybridAPI = void 0;
|
|
66
|
+
var snap_toolbox_1 = require("@searchspring/snap-toolbox");
|
|
66
67
|
var _1 = require(".");
|
|
67
68
|
var transforms_1 = require("../transforms");
|
|
68
69
|
var HybridAPI = /** @class */ (function (_super) {
|
|
69
70
|
__extends(HybridAPI, _super);
|
|
70
71
|
function HybridAPI(configuration) {
|
|
71
72
|
var _this = _super.call(this, configuration) || this;
|
|
73
|
+
var legacyConfig = { mode: configuration.mode, origin: configuration.origin, cache: _this.configuration.cache };
|
|
74
|
+
if (configuration.mode == snap_toolbox_1.AppMode.development) {
|
|
75
|
+
legacyConfig.headers = { 'searchspring-no-beacon': '' };
|
|
76
|
+
}
|
|
77
|
+
var legacyConfiguration = new _1.ApiConfiguration(legacyConfig);
|
|
78
|
+
var suggestConfiguration = new _1.ApiConfiguration({ mode: configuration.mode, origin: configuration.origin, cache: _this.configuration.cache });
|
|
72
79
|
_this.requesters = {
|
|
73
|
-
legacy: new _1.LegacyAPI(
|
|
74
|
-
suggest: new _1.SuggestAPI(
|
|
80
|
+
legacy: new _1.LegacyAPI(legacyConfiguration),
|
|
81
|
+
suggest: new _1.SuggestAPI(suggestConfiguration),
|
|
75
82
|
};
|
|
76
83
|
return _this;
|
|
77
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Recommend.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Recommend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAe,MAAM,YAAY,CAAC;AAIhE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"Recommend.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Recommend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAe,MAAM,YAAY,CAAC;AAIhE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAqBvH,qBAAa,YAAa,SAAQ,GAAG;IACpC,OAAO,CAAC,OAAO,CAMb;gBAEU,MAAM,EAAE,gBAAgB;IAK9B,UAAU,CAAC,eAAe,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAgB/E,oBAAoB,CAAC,UAAU,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAmFxF,kBAAkB,CAAC,eAAe,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAmB3F,mBAAmB,CAAC,iBAAiB,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAmBpG"}
|
|
@@ -116,11 +116,10 @@ var RecommendAPI = /** @class */ (function (_super) {
|
|
|
116
116
|
});
|
|
117
117
|
};
|
|
118
118
|
RecommendAPI.prototype.batchRecommendations = function (parameters) {
|
|
119
|
-
var _a;
|
|
120
119
|
return __awaiter(this, void 0, void 0, function () {
|
|
121
120
|
var tags, limits, categories, otherParams, getKey, key, batch, deferred;
|
|
122
121
|
var _this = this;
|
|
123
|
-
return __generator(this, function (
|
|
122
|
+
return __generator(this, function (_a) {
|
|
124
123
|
tags = parameters.tags, limits = parameters.limits, categories = parameters.categories, otherParams = __rest(parameters, ["tags", "limits", "categories"]);
|
|
125
124
|
getKey = function (parameters) {
|
|
126
125
|
var key = (0, hashParams_1.hashParams)(parameters);
|
|
@@ -132,26 +131,26 @@ var RecommendAPI = /** @class */ (function (_super) {
|
|
|
132
131
|
return key;
|
|
133
132
|
};
|
|
134
133
|
key = getKey(otherParams);
|
|
135
|
-
batch = (this.batches[key] = this.batches[key] || { timeout: null, request: { tags: [], limits: [] },
|
|
134
|
+
batch = (this.batches[key] = this.batches[key] || { timeout: null, request: { tags: [], limits: [] }, entries: [] });
|
|
136
135
|
deferred = new Deferred();
|
|
137
136
|
// add each request to the list
|
|
138
|
-
batch.
|
|
139
|
-
(_a = batch.deferreds) === null || _a === void 0 ? void 0 : _a.push(deferred);
|
|
137
|
+
batch.entries.push({ request: parameters, deferred: deferred });
|
|
140
138
|
// wait for all of the requests to come in
|
|
141
139
|
window.clearTimeout(batch.timeout);
|
|
142
140
|
batch.timeout = window.setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
143
|
-
var
|
|
141
|
+
var response_1, err_1;
|
|
144
142
|
var _a, _b;
|
|
145
143
|
return __generator(this, function (_c) {
|
|
146
144
|
switch (_c.label) {
|
|
147
145
|
case 0:
|
|
148
146
|
// delete the batch so a new one can take its place
|
|
149
147
|
delete this.batches[key];
|
|
150
|
-
|
|
148
|
+
// reorder the requests by order value in context.
|
|
149
|
+
batch.entries.sort(sortBatchEntries);
|
|
151
150
|
// now that the requests are in proper order, map through them
|
|
152
151
|
// and build out the batches
|
|
153
|
-
|
|
154
|
-
var tags =
|
|
152
|
+
batch.entries.map(function (entry) {
|
|
153
|
+
var _a = entry.request, tags = _a.tags, limits = _a.limits, categories = _a.categories, otherParams = __rest(_a, ["tags", "limits", "categories"]);
|
|
155
154
|
if (!limits)
|
|
156
155
|
limits = 20;
|
|
157
156
|
var tag = (tags || [])[0];
|
|
@@ -160,7 +159,7 @@ var RecommendAPI = /** @class */ (function (_super) {
|
|
|
160
159
|
batch.request.tags.push(tag);
|
|
161
160
|
if (categories) {
|
|
162
161
|
if (!batch.request.categories) {
|
|
163
|
-
batch.request.categories = categories;
|
|
162
|
+
batch.request.categories = Array.isArray(categories) ? categories : [categories];
|
|
164
163
|
}
|
|
165
164
|
else {
|
|
166
165
|
batch.request.categories = batch.request.categories.concat(categories);
|
|
@@ -172,6 +171,9 @@ var RecommendAPI = /** @class */ (function (_super) {
|
|
|
172
171
|
_c.label = 1;
|
|
173
172
|
case 1:
|
|
174
173
|
_c.trys.push([1, 6, , 7]);
|
|
174
|
+
if (this.configuration.mode == snap_toolbox_1.AppMode.development) {
|
|
175
|
+
batch.request.test = true;
|
|
176
|
+
}
|
|
175
177
|
if (!((0, snap_toolbox_1.charsParams)(batch.request) > 1024)) return [3 /*break*/, 3];
|
|
176
178
|
if (batch.request['product']) {
|
|
177
179
|
batch.request['product'] = batch.request['product'].toString();
|
|
@@ -185,14 +187,14 @@ var RecommendAPI = /** @class */ (function (_super) {
|
|
|
185
187
|
response_1 = _c.sent();
|
|
186
188
|
_c.label = 5;
|
|
187
189
|
case 5:
|
|
188
|
-
(_a = batch.
|
|
189
|
-
|
|
190
|
+
(_a = batch.entries) === null || _a === void 0 ? void 0 : _a.forEach(function (entry, index) {
|
|
191
|
+
entry.deferred.resolve([response_1[index]]);
|
|
190
192
|
});
|
|
191
193
|
return [3 /*break*/, 7];
|
|
192
194
|
case 6:
|
|
193
195
|
err_1 = _c.sent();
|
|
194
|
-
(_b = batch.
|
|
195
|
-
|
|
196
|
+
(_b = batch.entries) === null || _b === void 0 ? void 0 : _b.forEach(function (entry) {
|
|
197
|
+
entry.deferred.reject(err_1);
|
|
196
198
|
});
|
|
197
199
|
return [3 /*break*/, 7];
|
|
198
200
|
case 7: return [2 /*return*/];
|
|
@@ -251,21 +253,21 @@ var RecommendAPI = /** @class */ (function (_super) {
|
|
|
251
253
|
return RecommendAPI;
|
|
252
254
|
}(Abstract_1.API));
|
|
253
255
|
exports.RecommendAPI = RecommendAPI;
|
|
254
|
-
function
|
|
256
|
+
function sortBatchEntries(a, b) {
|
|
255
257
|
// undefined order goes last
|
|
256
|
-
if (a.order == undefined && b.order == undefined) {
|
|
258
|
+
if (a.request.order == undefined && b.request.order == undefined) {
|
|
257
259
|
return 0;
|
|
258
260
|
}
|
|
259
|
-
if (a.order == undefined && b.order != undefined) {
|
|
261
|
+
if (a.request.order == undefined && b.request.order != undefined) {
|
|
260
262
|
return 1;
|
|
261
263
|
}
|
|
262
|
-
if (b.order == undefined && a.order != undefined) {
|
|
264
|
+
if (b.request.order == undefined && a.request.order != undefined) {
|
|
263
265
|
return -1;
|
|
264
266
|
}
|
|
265
|
-
if (a.order < b.order) {
|
|
267
|
+
if (a.request.order < b.request.order) {
|
|
266
268
|
return -1;
|
|
267
269
|
}
|
|
268
|
-
if (a.order > b.order) {
|
|
270
|
+
if (a.request.order > b.request.order) {
|
|
269
271
|
return 1;
|
|
270
272
|
}
|
|
271
273
|
return 0;
|
|
@@ -3,20 +3,20 @@ export declare function transformSearchRequest(request: SearchRequestModel): any
|
|
|
3
3
|
export declare namespace transformSearchRequest {
|
|
4
4
|
var sorts: (request?: SearchRequestModel) => Record<string, SearchRequestModelSortsDirectionEnum[]>;
|
|
5
5
|
var search: (request?: SearchRequestModel) => {
|
|
6
|
-
q?: string;
|
|
7
|
-
rq?: string;
|
|
8
|
-
originalQuery?: string;
|
|
9
|
-
redirectResponse?: string;
|
|
6
|
+
q?: string | undefined;
|
|
7
|
+
rq?: string | undefined;
|
|
8
|
+
originalQuery?: string | undefined;
|
|
9
|
+
redirectResponse?: string | undefined;
|
|
10
10
|
};
|
|
11
|
-
var filters: (request?: SearchRequestModel) => Record<string, (string | number | SearchRequestModelFilterRangeAllOfValue)[]>;
|
|
11
|
+
var filters: (request?: SearchRequestModel) => Record<string, (string | number | SearchRequestModelFilterRangeAllOfValue | undefined)[]>;
|
|
12
12
|
var merchandising: (request?: SearchRequestModel) => {
|
|
13
|
-
disableMerchandising?: boolean;
|
|
14
|
-
tag?: string[];
|
|
15
|
-
'landing-page'?: string;
|
|
13
|
+
disableMerchandising?: boolean | undefined;
|
|
14
|
+
tag?: string[] | undefined;
|
|
15
|
+
'landing-page'?: string | undefined;
|
|
16
16
|
};
|
|
17
17
|
var pagination: (request?: SearchRequestModel) => {
|
|
18
|
-
page?: number;
|
|
19
|
-
resultsPerPage?: number;
|
|
18
|
+
page?: number | undefined;
|
|
19
|
+
resultsPerPage?: number | undefined;
|
|
20
20
|
};
|
|
21
21
|
var siteId: (request?: SearchRequestModel) => {
|
|
22
22
|
siteId: string;
|
|
@@ -24,19 +24,19 @@ export declare namespace transformSearchRequest {
|
|
|
24
24
|
siteId?: undefined;
|
|
25
25
|
};
|
|
26
26
|
var facets: (request?: SearchRequestModel) => {
|
|
27
|
-
includedFacets?: string[];
|
|
28
|
-
excludedFacets?: string[];
|
|
29
|
-
disableFacetDrillDown?: boolean;
|
|
27
|
+
includedFacets?: string[] | undefined;
|
|
28
|
+
excludedFacets?: string[] | undefined;
|
|
29
|
+
disableFacetDrillDown?: boolean | undefined;
|
|
30
30
|
};
|
|
31
31
|
var tracking: (request?: SearchRequestModel) => {
|
|
32
|
-
userId?: string;
|
|
33
|
-
domain?: string;
|
|
32
|
+
userId?: string | undefined;
|
|
33
|
+
domain?: string | undefined;
|
|
34
34
|
};
|
|
35
35
|
var personalization: (request?: SearchRequestModel) => {
|
|
36
|
-
skipPersonalization?: boolean;
|
|
37
|
-
cart?: string;
|
|
38
|
-
shopper?: string;
|
|
39
|
-
lastViewed?: string;
|
|
36
|
+
skipPersonalization?: boolean | undefined;
|
|
37
|
+
cart?: string | undefined;
|
|
38
|
+
shopper?: string | undefined;
|
|
39
|
+
lastViewed?: string | undefined;
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
42
|
//# sourceMappingURL=searchRequest.d.ts.map
|
|
@@ -150,22 +150,22 @@ export declare namespace transformSearchResponse {
|
|
|
150
150
|
content: {};
|
|
151
151
|
facets: any[];
|
|
152
152
|
facetsHide: any[];
|
|
153
|
-
experiments?: [];
|
|
154
|
-
variants?: [];
|
|
155
|
-
personalized?: boolean;
|
|
153
|
+
experiments?: [] | undefined;
|
|
154
|
+
variants?: [] | undefined;
|
|
155
|
+
personalized?: boolean | undefined;
|
|
156
156
|
triggeredCampaigns?: {
|
|
157
157
|
id: string;
|
|
158
158
|
title: string;
|
|
159
159
|
type: string;
|
|
160
|
-
}[];
|
|
160
|
+
}[] | undefined;
|
|
161
161
|
};
|
|
162
162
|
};
|
|
163
163
|
var search: (response: searchResponseType, request: SearchRequestModel) => {
|
|
164
164
|
search: {
|
|
165
|
-
query: string;
|
|
166
|
-
didYouMean: string;
|
|
167
|
-
originalQuery: string;
|
|
168
|
-
matchType: SearchResponseModelSearchMatchTypeEnum;
|
|
165
|
+
query: string | undefined;
|
|
166
|
+
didYouMean: string | undefined;
|
|
167
|
+
originalQuery: string | undefined;
|
|
168
|
+
matchType: SearchResponseModelSearchMatchTypeEnum | undefined;
|
|
169
169
|
};
|
|
170
170
|
};
|
|
171
171
|
}
|
|
@@ -135,12 +135,14 @@ transformSearchResponse.facets = function (response, request) {
|
|
|
135
135
|
if (facet.step) {
|
|
136
136
|
if (facet.range) {
|
|
137
137
|
transformedFacet = __assign(__assign({}, transformedFacet), { type: 'range', step: facet.step, range: {
|
|
138
|
+
// TODO: change to null
|
|
138
139
|
low: facet.range[0] == '*' ? undefined : +facet.range[0],
|
|
139
140
|
high: facet.range[1] == '*' ? undefined : +facet.range[1],
|
|
140
141
|
} });
|
|
141
142
|
}
|
|
142
143
|
if (facet.active && typeof facet.active != 'boolean' && facet.active.length > 1) {
|
|
143
144
|
transformedFacet.active = {
|
|
145
|
+
// TODO: change to null
|
|
144
146
|
low: facet.active[0] == '*' ? undefined : +facet.active[0],
|
|
145
147
|
high: facet.active[1] == '*' ? undefined : +facet.active[1],
|
|
146
148
|
};
|
|
@@ -16,8 +16,8 @@ export declare namespace transformSuggestResponse {
|
|
|
16
16
|
} | {
|
|
17
17
|
suggested: {
|
|
18
18
|
text: string;
|
|
19
|
-
type: string;
|
|
20
|
-
source: string;
|
|
19
|
+
type: string | undefined;
|
|
20
|
+
source: string | undefined;
|
|
21
21
|
};
|
|
22
22
|
};
|
|
23
23
|
var alternatives: (response: SuggestResponseModel) => {
|
package/dist/cjs/types.d.ts
CHANGED
package/dist/cjs/types.d.ts.map
CHANGED
|
@@ -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,6 +1,7 @@
|
|
|
1
1
|
import type { ClientGlobals, ClientConfig, TrendingRequestModel, TrendingResponseModel, RecommendCombinedRequestModel, RecommendCombinedResponseModel } from '../types';
|
|
2
2
|
import type { MetaRequestModel, MetaResponseModel, SearchRequestModel, SearchResponseModel, AutocompleteRequestModel, AutocompleteResponseModel } from '@searchspring/snapi-types';
|
|
3
3
|
export declare class Client {
|
|
4
|
+
private mode;
|
|
4
5
|
private globals;
|
|
5
6
|
private config;
|
|
6
7
|
private requesters;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/Client/Client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/Client/Client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACX,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EAGrB,6BAA6B,EAC7B,8BAA8B,EAC9B,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EACX,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,MAAM,2BAA2B,CAAC;AAsCnC,qBAAa,MAAM;IAClB,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAOhB;gBAEU,OAAO,EAAE,aAAa,EAAE,MAAM,GAAE,YAAiB;IA0DvD,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,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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { AppMode } from '@searchspring/snap-toolbox';
|
|
1
2
|
import { HybridAPI, SuggestAPI, RecommendAPI, ApiConfiguration } from './apis';
|
|
2
3
|
import deepmerge from 'deepmerge';
|
|
3
4
|
const defaultConfig = {
|
|
5
|
+
mode: AppMode.production,
|
|
4
6
|
meta: {
|
|
5
7
|
cache: {
|
|
6
8
|
purgeable: false,
|
|
@@ -34,33 +36,43 @@ const defaultConfig = {
|
|
|
34
36
|
};
|
|
35
37
|
export class Client {
|
|
36
38
|
constructor(globals, config = {}) {
|
|
39
|
+
this.mode = AppMode.production;
|
|
37
40
|
if (!globals?.siteId) {
|
|
38
41
|
throw 'no siteId specified!';
|
|
39
42
|
}
|
|
40
43
|
this.globals = globals;
|
|
41
44
|
this.config = deepmerge(defaultConfig, config);
|
|
45
|
+
if (Object.values(AppMode).includes(this.config.mode)) {
|
|
46
|
+
this.mode = this.config.mode;
|
|
47
|
+
}
|
|
42
48
|
this.requesters = {
|
|
43
49
|
autocomplete: new HybridAPI(new ApiConfiguration({
|
|
50
|
+
mode: this.mode,
|
|
44
51
|
origin: this.config.autocomplete?.api?.origin,
|
|
45
52
|
cache: this.config.autocomplete?.cache,
|
|
46
53
|
})),
|
|
47
54
|
meta: new HybridAPI(new ApiConfiguration({
|
|
55
|
+
mode: this.mode,
|
|
48
56
|
origin: this.config.meta?.api?.origin,
|
|
49
57
|
cache: this.config.meta?.cache,
|
|
50
58
|
})),
|
|
51
59
|
recommend: new RecommendAPI(new ApiConfiguration({
|
|
60
|
+
mode: this.mode,
|
|
52
61
|
origin: this.config.recommend?.api?.origin,
|
|
53
62
|
cache: this.config.recommend?.cache,
|
|
54
63
|
})),
|
|
55
64
|
search: new HybridAPI(new ApiConfiguration({
|
|
65
|
+
mode: this.mode,
|
|
56
66
|
origin: this.config.search?.api?.origin,
|
|
57
67
|
cache: this.config.search?.cache,
|
|
58
68
|
})),
|
|
59
69
|
finder: new HybridAPI(new ApiConfiguration({
|
|
70
|
+
mode: this.mode,
|
|
60
71
|
origin: this.config.finder?.api?.origin,
|
|
61
72
|
cache: this.config.finder?.cache,
|
|
62
73
|
})),
|
|
63
74
|
suggest: new SuggestAPI(new ApiConfiguration({
|
|
75
|
+
mode: this.mode,
|
|
64
76
|
origin: this.config.suggest?.api?.origin,
|
|
65
77
|
cache: this.config.suggest?.cache,
|
|
66
78
|
})),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { CacheConfig, DefaultCacheConfig } from '../../types';
|
|
1
|
+
import { CacheConfig, Cache, DefaultCacheConfig } from '../../types';
|
|
2
2
|
export declare class NetworkCache {
|
|
3
|
-
|
|
4
|
-
config: DefaultCacheConfig;
|
|
3
|
+
protected memoryCache: Cache;
|
|
4
|
+
protected config: DefaultCacheConfig;
|
|
5
5
|
constructor(config?: CacheConfig);
|
|
6
6
|
get(key: string): Response | void;
|
|
7
7
|
set(key: string, value: Response): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkCache.d.ts","sourceRoot":"","sources":["../../../../src/Client/NetworkCache/NetworkCache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"NetworkCache.d.ts","sourceRoot":"","sources":["../../../../src/Client/NetworkCache/NetworkCache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAWrE,qBAAa,YAAY;IACxB,SAAS,CAAC,WAAW,EAAE,KAAK,CAAM;IAClC,SAAS,CAAC,MAAM,EAAE,kBAAkB,CAAC;gBAEzB,MAAM,CAAC,EAAE,WAAW;IAWzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAgCjC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI;IAyCvC,KAAK;CAQZ"}
|
|
@@ -18,33 +18,34 @@ export class NetworkCache {
|
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
20
|
get(key) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
if (
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const stored = sessionStorage.getItem(CACHE_STORAGE_KEY);
|
|
28
|
-
const localData = stored && JSON.parse(stored);
|
|
29
|
-
if (localData && key && localData[key]) {
|
|
30
|
-
// compare the expiry time of the item with the current time
|
|
31
|
-
if (Date.now() > localData[key].expires) {
|
|
32
|
-
// remove item
|
|
33
|
-
const newStored = {
|
|
34
|
-
...localData,
|
|
35
|
-
};
|
|
36
|
-
delete newStored[key];
|
|
37
|
-
//update storage
|
|
38
|
-
sessionStorage.setItem(CACHE_STORAGE_KEY, JSON.stringify(newStored));
|
|
39
|
-
return undefined;
|
|
21
|
+
if (this.config.enabled) {
|
|
22
|
+
try {
|
|
23
|
+
if (this.memoryCache[key]) {
|
|
24
|
+
if (Date.now() < this.memoryCache[key].expires) {
|
|
25
|
+
return this.memoryCache[key].value;
|
|
26
|
+
}
|
|
40
27
|
}
|
|
41
|
-
|
|
42
|
-
|
|
28
|
+
const stored = sessionStorage.getItem(CACHE_STORAGE_KEY);
|
|
29
|
+
const localData = stored && JSON.parse(stored);
|
|
30
|
+
if (localData && key && localData[key]) {
|
|
31
|
+
// compare the expiry time of the item with the current time
|
|
32
|
+
if (Date.now() >= localData[key].expires) {
|
|
33
|
+
// remove item
|
|
34
|
+
const newStored = {
|
|
35
|
+
...localData,
|
|
36
|
+
};
|
|
37
|
+
delete newStored[key];
|
|
38
|
+
// update storage
|
|
39
|
+
sessionStorage.setItem(CACHE_STORAGE_KEY, JSON.stringify(newStored));
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
return localData[key].value;
|
|
43
|
+
}
|
|
43
44
|
}
|
|
44
45
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
catch (err) {
|
|
47
|
+
console.warn('something went wrong, browser might not have cookies enabled');
|
|
48
|
+
}
|
|
48
49
|
}
|
|
49
50
|
}
|
|
50
51
|
set(key, value) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AppMode } from '@searchspring/snap-toolbox';
|
|
1
2
|
import { NetworkCache } from '../NetworkCache/NetworkCache';
|
|
2
3
|
import { CacheConfig } from '../../types';
|
|
3
4
|
export declare type Json = any;
|
|
@@ -22,12 +23,14 @@ export declare class API {
|
|
|
22
23
|
private retryCount;
|
|
23
24
|
cache: NetworkCache;
|
|
24
25
|
constructor(configuration: ApiConfiguration);
|
|
26
|
+
protected get mode(): AppMode;
|
|
25
27
|
protected request(context: RequestOpts, cacheKey?: any): Promise<Response>;
|
|
26
28
|
private createFetchParams;
|
|
27
29
|
private fetchApi;
|
|
28
30
|
}
|
|
29
31
|
export declare type FetchAPI = WindowOrWorkerGlobalScope['fetch'];
|
|
30
32
|
export interface ApiConfigurationParameters {
|
|
33
|
+
mode?: keyof typeof AppMode | AppMode;
|
|
31
34
|
origin?: string;
|
|
32
35
|
fetchApi?: FetchAPI;
|
|
33
36
|
queryParamsStringify?: (params: HTTPQuery) => string;
|
|
@@ -37,13 +40,14 @@ export interface ApiConfigurationParameters {
|
|
|
37
40
|
}
|
|
38
41
|
export declare class ApiConfiguration {
|
|
39
42
|
private configuration;
|
|
40
|
-
constructor(configuration
|
|
43
|
+
constructor(configuration?: ApiConfigurationParameters);
|
|
41
44
|
get cache(): CacheConfig;
|
|
42
45
|
get maxRetry(): number;
|
|
43
46
|
get origin(): string;
|
|
44
47
|
get fetchApi(): FetchAPI;
|
|
45
48
|
get queryParamsStringify(): (params: HTTPQuery) => string;
|
|
46
|
-
get headers(): HTTPHeaders
|
|
49
|
+
get headers(): HTTPHeaders;
|
|
50
|
+
get mode(): AppMode;
|
|
47
51
|
}
|
|
48
52
|
export declare function querystring(params: HTTPQuery, prefix?: string): string;
|
|
49
53
|
//# sourceMappingURL=Abstract.d.ts.map
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"Abstract.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Abstract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGrD,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;IAIrD,SAAS,KAAK,IAAI,IAAI,OAAO,CAE5B;cAEe,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAmChF,OAAO,CAAC,iBAAiB;YAiCX,QAAQ;CAKtB;AAED,oBAAY,QAAQ,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;AAE1D,MAAM,WAAW,0BAA0B;IAC1C,IAAI,CAAC,EAAE,MAAM,OAAO,OAAO,GAAG,OAAO,CAAC;IACtC,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,GAAE,0BAA+B;IAalE,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,CAEzB;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;CACD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,SAAK,GAAG,MAAM,CAmBlE"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AppMode } from '@searchspring/snap-toolbox';
|
|
1
2
|
import { fibonacci } from '../utils/fibonacci';
|
|
2
3
|
import { NetworkCache } from '../NetworkCache/NetworkCache';
|
|
3
4
|
const isBlob = (value) => typeof Blob !== 'undefined' && value instanceof Blob;
|
|
@@ -6,11 +7,10 @@ export class API {
|
|
|
6
7
|
this.configuration = configuration;
|
|
7
8
|
this.retryDelay = 1000;
|
|
8
9
|
this.retryCount = 0;
|
|
9
|
-
this.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
this.cache = new NetworkCache(configuration.cache);
|
|
10
|
+
this.cache = new NetworkCache(this.configuration.cache);
|
|
11
|
+
}
|
|
12
|
+
get mode() {
|
|
13
|
+
return this.configuration.mode;
|
|
14
14
|
}
|
|
15
15
|
async request(context, cacheKey) {
|
|
16
16
|
const { url, init } = this.createFetchParams(context);
|
|
@@ -23,7 +23,7 @@ export class API {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
const response = await this.fetchApi(url, init);
|
|
26
|
-
const responseJSON = await response
|
|
26
|
+
const responseJSON = await response?.json();
|
|
27
27
|
if (response.status >= 200 && response.status < 300) {
|
|
28
28
|
this.retryCount = 0; // reset count and delay incase rate limit occurs again before a page refresh
|
|
29
29
|
this.retryDelay = 1000;
|
|
@@ -62,7 +62,7 @@ export class API {
|
|
|
62
62
|
const body = (typeof FormData !== 'undefined' && context.body instanceof FormData) || context.body instanceof URLSearchParams || isBlob(context.body)
|
|
63
63
|
? context.body
|
|
64
64
|
: JSON.stringify(context.body);
|
|
65
|
-
const headers =
|
|
65
|
+
const headers = { ...this.configuration.headers, ...context.headers };
|
|
66
66
|
const init = {
|
|
67
67
|
method: context.method,
|
|
68
68
|
headers: headers,
|
|
@@ -70,13 +70,22 @@ export class API {
|
|
|
70
70
|
};
|
|
71
71
|
return { url, init };
|
|
72
72
|
}
|
|
73
|
+
async fetchApi(url, init) {
|
|
74
|
+
const response = await this.configuration.fetchApi(url, init);
|
|
75
|
+
return response;
|
|
76
|
+
}
|
|
73
77
|
}
|
|
74
78
|
export class ApiConfiguration {
|
|
75
|
-
constructor(configuration) {
|
|
79
|
+
constructor(configuration = {}) {
|
|
76
80
|
this.configuration = configuration;
|
|
77
81
|
if (!configuration.maxRetry) {
|
|
78
82
|
this.configuration.maxRetry = 8;
|
|
79
83
|
}
|
|
84
|
+
this.configuration.cache = this.configuration.cache || {};
|
|
85
|
+
this.configuration.mode = this.configuration.mode || AppMode.production;
|
|
86
|
+
if (this.configuration.mode == AppMode.development) {
|
|
87
|
+
this.configuration.cache.enabled = false;
|
|
88
|
+
}
|
|
80
89
|
}
|
|
81
90
|
get cache() {
|
|
82
91
|
return this.configuration?.cache || {};
|
|
@@ -94,7 +103,10 @@ export class ApiConfiguration {
|
|
|
94
103
|
return this.configuration.queryParamsStringify || querystring;
|
|
95
104
|
}
|
|
96
105
|
get headers() {
|
|
97
|
-
return this.configuration.headers;
|
|
106
|
+
return this.configuration.headers || {};
|
|
107
|
+
}
|
|
108
|
+
get mode() {
|
|
109
|
+
return this.configuration.mode;
|
|
98
110
|
}
|
|
99
111
|
}
|
|
100
112
|
export function querystring(params, prefix = '') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hybrid.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Hybrid.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Hybrid.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Hybrid.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,wBAAwB,EACxB,yBAAyB,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,GAAG,EAAqD,gBAAgB,EAAE,MAAM,GAAG,CAAC;AAI7F,qBAAa,SAAU,SAAQ,GAAG;IACjC,OAAO,CAAC,UAAU,CAGhB;gBAEU,aAAa,EAAE,gBAAgB;IAiBrC,OAAO,CAAC,iBAAiB,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAKxE,SAAS,CAAC,iBAAiB,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAQ9E,SAAS,CAAC,iBAAiB,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAQ9E,eAAe,CAAC,iBAAiB,EAAE,wBAAwB,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAoCtG"}
|
|
@@ -1,11 +1,18 @@
|
|
|
1
|
+
import { AppMode } from '@searchspring/snap-toolbox';
|
|
1
2
|
import { API, LegacyAPI, SuggestAPI, ApiConfiguration } from '.';
|
|
2
3
|
import { transformSearchRequest, transformSearchResponse, transformSuggestResponse } from '../transforms';
|
|
3
4
|
export class HybridAPI extends API {
|
|
4
5
|
constructor(configuration) {
|
|
5
6
|
super(configuration);
|
|
7
|
+
const legacyConfig = { mode: configuration.mode, origin: configuration.origin, cache: this.configuration.cache };
|
|
8
|
+
if (configuration.mode == AppMode.development) {
|
|
9
|
+
legacyConfig.headers = { 'searchspring-no-beacon': '' };
|
|
10
|
+
}
|
|
11
|
+
const legacyConfiguration = new ApiConfiguration(legacyConfig);
|
|
12
|
+
const suggestConfiguration = new ApiConfiguration({ mode: configuration.mode, origin: configuration.origin, cache: this.configuration.cache });
|
|
6
13
|
this.requesters = {
|
|
7
|
-
legacy: new LegacyAPI(
|
|
8
|
-
suggest: new SuggestAPI(
|
|
14
|
+
legacy: new LegacyAPI(legacyConfiguration),
|
|
15
|
+
suggest: new SuggestAPI(suggestConfiguration),
|
|
9
16
|
};
|
|
10
17
|
}
|
|
11
18
|
async getMeta(requestParameters) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Recommend.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Recommend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAe,MAAM,YAAY,CAAC;AAIhE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"Recommend.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Recommend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAe,MAAM,YAAY,CAAC;AAIhE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAqBvH,qBAAa,YAAa,SAAQ,GAAG;IACpC,OAAO,CAAC,OAAO,CAMb;gBAEU,MAAM,EAAE,gBAAgB;IAK9B,UAAU,CAAC,eAAe,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAgB/E,oBAAoB,CAAC,UAAU,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAmFxF,kBAAkB,CAAC,eAAe,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAmB3F,mBAAmB,CAAC,iBAAiB,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAmBpG"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { API } from './Abstract';
|
|
2
2
|
import { hashParams } from '../utils/hashParams';
|
|
3
|
-
import { charsParams } from '@searchspring/snap-toolbox';
|
|
3
|
+
import { AppMode, charsParams } from '@searchspring/snap-toolbox';
|
|
4
4
|
class Deferred {
|
|
5
5
|
constructor() {
|
|
6
6
|
this.promise = new Promise((resolve, reject) => {
|
|
@@ -38,22 +38,21 @@ export class RecommendAPI extends API {
|
|
|
38
38
|
};
|
|
39
39
|
// set up batch keys and deferred promises
|
|
40
40
|
const key = getKey(otherParams);
|
|
41
|
-
const batch = (this.batches[key] = this.batches[key] || { timeout: null, request: { tags: [], limits: [] },
|
|
41
|
+
const batch = (this.batches[key] = this.batches[key] || { timeout: null, request: { tags: [], limits: [] }, entries: [] });
|
|
42
42
|
const deferred = new Deferred();
|
|
43
43
|
// add each request to the list
|
|
44
|
-
batch.
|
|
45
|
-
batch.deferreds?.push(deferred);
|
|
44
|
+
batch.entries.push({ request: parameters, deferred: deferred });
|
|
46
45
|
// wait for all of the requests to come in
|
|
47
46
|
window.clearTimeout(batch.timeout);
|
|
48
47
|
batch.timeout = window.setTimeout(async () => {
|
|
49
48
|
// delete the batch so a new one can take its place
|
|
50
49
|
delete this.batches[key];
|
|
51
50
|
// reorder the requests by order value in context.
|
|
52
|
-
|
|
51
|
+
batch.entries.sort(sortBatchEntries);
|
|
53
52
|
// now that the requests are in proper order, map through them
|
|
54
53
|
// and build out the batches
|
|
55
|
-
|
|
56
|
-
let { tags, limits, categories, ...otherParams } = request;
|
|
54
|
+
batch.entries.map((entry) => {
|
|
55
|
+
let { tags, limits, categories, ...otherParams } = entry.request;
|
|
57
56
|
if (!limits)
|
|
58
57
|
limits = 20;
|
|
59
58
|
const [tag] = tags || [];
|
|
@@ -62,7 +61,7 @@ export class RecommendAPI extends API {
|
|
|
62
61
|
batch.request.tags.push(tag);
|
|
63
62
|
if (categories) {
|
|
64
63
|
if (!batch.request.categories) {
|
|
65
|
-
batch.request.categories = categories;
|
|
64
|
+
batch.request.categories = Array.isArray(categories) ? categories : [categories];
|
|
66
65
|
}
|
|
67
66
|
else {
|
|
68
67
|
batch.request.categories = batch.request.categories.concat(categories);
|
|
@@ -72,6 +71,9 @@ export class RecommendAPI extends API {
|
|
|
72
71
|
batch.request = { ...batch.request, ...otherParams };
|
|
73
72
|
});
|
|
74
73
|
try {
|
|
74
|
+
if (this.configuration.mode == AppMode.development) {
|
|
75
|
+
batch.request.test = true;
|
|
76
|
+
}
|
|
75
77
|
let response;
|
|
76
78
|
if (charsParams(batch.request) > 1024) {
|
|
77
79
|
if (batch.request['product']) {
|
|
@@ -82,13 +84,13 @@ export class RecommendAPI extends API {
|
|
|
82
84
|
else {
|
|
83
85
|
response = await this.getRecommendations(batch.request);
|
|
84
86
|
}
|
|
85
|
-
batch.
|
|
86
|
-
|
|
87
|
+
batch.entries?.forEach((entry, index) => {
|
|
88
|
+
entry.deferred.resolve([response[index]]);
|
|
87
89
|
});
|
|
88
90
|
}
|
|
89
91
|
catch (err) {
|
|
90
|
-
batch.
|
|
91
|
-
|
|
92
|
+
batch.entries?.forEach((entry) => {
|
|
93
|
+
entry.deferred.reject(err);
|
|
92
94
|
});
|
|
93
95
|
}
|
|
94
96
|
}, BATCH_TIMEOUT);
|
|
@@ -120,21 +122,21 @@ export class RecommendAPI extends API {
|
|
|
120
122
|
return response;
|
|
121
123
|
}
|
|
122
124
|
}
|
|
123
|
-
function
|
|
125
|
+
function sortBatchEntries(a, b) {
|
|
124
126
|
// undefined order goes last
|
|
125
|
-
if (a.order == undefined && b.order == undefined) {
|
|
127
|
+
if (a.request.order == undefined && b.request.order == undefined) {
|
|
126
128
|
return 0;
|
|
127
129
|
}
|
|
128
|
-
if (a.order == undefined && b.order != undefined) {
|
|
130
|
+
if (a.request.order == undefined && b.request.order != undefined) {
|
|
129
131
|
return 1;
|
|
130
132
|
}
|
|
131
|
-
if (b.order == undefined && a.order != undefined) {
|
|
133
|
+
if (b.request.order == undefined && a.request.order != undefined) {
|
|
132
134
|
return -1;
|
|
133
135
|
}
|
|
134
|
-
if (a.order < b.order) {
|
|
136
|
+
if (a.request.order < b.request.order) {
|
|
135
137
|
return -1;
|
|
136
138
|
}
|
|
137
|
-
if (a.order > b.order) {
|
|
139
|
+
if (a.request.order > b.request.order) {
|
|
138
140
|
return 1;
|
|
139
141
|
}
|
|
140
142
|
return 0;
|
|
@@ -136,6 +136,7 @@ transformSearchResponse.facets = (response, request = {}) => {
|
|
|
136
136
|
type: 'range',
|
|
137
137
|
step: facet.step,
|
|
138
138
|
range: {
|
|
139
|
+
// TODO: change to null
|
|
139
140
|
low: facet.range[0] == '*' ? undefined : +facet.range[0],
|
|
140
141
|
high: facet.range[1] == '*' ? undefined : +facet.range[1],
|
|
141
142
|
},
|
|
@@ -143,6 +144,7 @@ transformSearchResponse.facets = (response, request = {}) => {
|
|
|
143
144
|
}
|
|
144
145
|
if (facet.active && typeof facet.active != 'boolean' && facet.active.length > 1) {
|
|
145
146
|
transformedFacet.active = {
|
|
147
|
+
// TODO: change to null
|
|
146
148
|
low: facet.active[0] == '*' ? undefined : +facet.active[0],
|
|
147
149
|
high: facet.active[1] == '*' ? undefined : +facet.active[1],
|
|
148
150
|
};
|
package/dist/esm/types.d.ts
CHANGED
package/dist/esm/types.d.ts.map
CHANGED
|
@@ -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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@searchspring/snap-client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.30.0",
|
|
4
4
|
"description": "Snap Client",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -20,12 +20,12 @@
|
|
|
20
20
|
"test:watch": "jest --watch"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@searchspring/snap-toolbox": "^0.
|
|
23
|
+
"@searchspring/snap-toolbox": "^0.30.0",
|
|
24
24
|
"deepmerge": "4.2.2"
|
|
25
25
|
},
|
|
26
26
|
"sideEffects": false,
|
|
27
27
|
"files": [
|
|
28
28
|
"dist/**/*"
|
|
29
29
|
],
|
|
30
|
-
"gitHead": "
|
|
30
|
+
"gitHead": "48ab43e7ecb42f7b0e1da15b85fe02cc929918f6"
|
|
31
31
|
}
|