@searchspring/snap-preact 0.22.0 → 0.24.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/Snap.d.ts.map +1 -1
- package/dist/cjs/Snap.js +25 -5
- package/dist/cjs/create/createAutocompleteController.js +1 -1
- package/dist/cjs/create/createFinderController.js +1 -1
- package/dist/cjs/create/createRecommendationController.js +1 -1
- package/dist/esm/Snap.d.ts.map +1 -1
- package/dist/esm/Snap.js +23 -3
- package/dist/esm/create/createAutocompleteController.js +1 -1
- package/dist/esm/create/createFinderController.js +1 -1
- package/dist/esm/create/createRecommendationController.js +1 -1
- package/package.json +13 -12
package/dist/cjs/Snap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Snap.d.ts","sourceRoot":"","sources":["../../src/Snap.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Snap.d.ts","sourceRoot":"","sources":["../../src/Snap.tsx"],"names":[],"mappings":"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"}
|
package/dist/cjs/Snap.js
CHANGED
|
@@ -76,6 +76,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
76
76
|
exports.Snap = void 0;
|
|
77
77
|
var jsx_runtime_1 = require("preact/jsx-runtime");
|
|
78
78
|
var deepmerge_1 = __importDefault(require("deepmerge"));
|
|
79
|
+
var is_plain_object_1 = require("is-plain-object");
|
|
79
80
|
var preact_1 = require("preact");
|
|
80
81
|
var snap_client_1 = require("@searchspring/snap-client");
|
|
81
82
|
var snap_logger_1 = require("@searchspring/snap-logger");
|
|
@@ -133,7 +134,15 @@ var Snap = /** @class */ (function () {
|
|
|
133
134
|
url: (0, deepmerge_1.default)(_this.config.url || {}, urlConfig || {}),
|
|
134
135
|
controller: config,
|
|
135
136
|
context: (0, deepmerge_1.default)(_this.context || {}, context || {}),
|
|
136
|
-
}, {
|
|
137
|
+
}, {
|
|
138
|
+
client: (services === null || services === void 0 ? void 0 : services.client) || _this.client,
|
|
139
|
+
store: services === null || services === void 0 ? void 0 : services.store,
|
|
140
|
+
urlManager: services === null || services === void 0 ? void 0 : services.urlManager,
|
|
141
|
+
eventManager: services === null || services === void 0 ? void 0 : services.eventManager,
|
|
142
|
+
profiler: services === null || services === void 0 ? void 0 : services.profiler,
|
|
143
|
+
logger: services === null || services === void 0 ? void 0 : services.logger,
|
|
144
|
+
tracker: (services === null || services === void 0 ? void 0 : services.tracker) || _this.tracker,
|
|
145
|
+
});
|
|
137
146
|
resolve(_this.controllers[config.id]);
|
|
138
147
|
}
|
|
139
148
|
return _this.controllers[config.id];
|
|
@@ -149,7 +158,10 @@ var Snap = /** @class */ (function () {
|
|
|
149
158
|
catch (err) {
|
|
150
159
|
this.logger.error('failed to find global context');
|
|
151
160
|
}
|
|
152
|
-
|
|
161
|
+
// merge configs - but only merge plain objects
|
|
162
|
+
this.config = (0, deepmerge_1.default)(this.config || {}, globalContext.config || {}, {
|
|
163
|
+
isMergeableObject: is_plain_object_1.isPlainObject,
|
|
164
|
+
});
|
|
153
165
|
this.context = (0, deepmerge_1.default)(globalContext || {}, this.config.context || {});
|
|
154
166
|
if (!((_c = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.client) === null || _b === void 0 ? void 0 : _b.globals) === null || _c === void 0 ? void 0 : _c.siteId)) {
|
|
155
167
|
throw new Error("Snap: config provided must contain a valid config.client.globals.siteId value");
|
|
@@ -239,13 +251,21 @@ var Snap = /** @class */ (function () {
|
|
|
239
251
|
switch (type) {
|
|
240
252
|
case 'search': {
|
|
241
253
|
_this.config.controllers[type].forEach(function (controller, index) {
|
|
242
|
-
var _a, _b, _c;
|
|
254
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
243
255
|
try {
|
|
244
256
|
var cntrlr_1 = (0, createSearchController_1.default)({
|
|
245
257
|
url: (0, deepmerge_1.default)(_this.config.url || {}, controller.url || {}),
|
|
246
258
|
controller: controller.config,
|
|
247
259
|
context: (0, deepmerge_1.default)(_this.context || {}, controller.context || {}),
|
|
248
|
-
}, {
|
|
260
|
+
}, {
|
|
261
|
+
client: ((_a = controller.services) === null || _a === void 0 ? void 0 : _a.client) || _this.client,
|
|
262
|
+
store: (_b = controller.services) === null || _b === void 0 ? void 0 : _b.store,
|
|
263
|
+
urlManager: (_c = controller.services) === null || _c === void 0 ? void 0 : _c.urlManager,
|
|
264
|
+
eventManager: (_d = controller.services) === null || _d === void 0 ? void 0 : _d.eventManager,
|
|
265
|
+
profiler: (_e = controller.services) === null || _e === void 0 ? void 0 : _e.profiler,
|
|
266
|
+
logger: (_f = controller.services) === null || _f === void 0 ? void 0 : _f.logger,
|
|
267
|
+
tracker: ((_g = controller.services) === null || _g === void 0 ? void 0 : _g.tracker) || _this.tracker,
|
|
268
|
+
});
|
|
249
269
|
_this.controllers[cntrlr_1.config.id] = cntrlr_1;
|
|
250
270
|
_this._controllerPromises[cntrlr_1.config.id] = new Promise(function (resolve) { return resolve(cntrlr_1); });
|
|
251
271
|
var searched_1 = false;
|
|
@@ -282,7 +302,7 @@ var Snap = /** @class */ (function () {
|
|
|
282
302
|
}
|
|
283
303
|
});
|
|
284
304
|
}); };
|
|
285
|
-
(
|
|
305
|
+
(_h = controller === null || controller === void 0 ? void 0 : controller.targeters) === null || _h === void 0 ? void 0 : _h.forEach(function (target, target_index) { return __awaiter(_this, void 0, void 0, function () {
|
|
286
306
|
var _this = this;
|
|
287
307
|
return __generator(this, function (_a) {
|
|
288
308
|
if (!target.selector) {
|
|
@@ -11,7 +11,7 @@ var snap_logger_1 = require("@searchspring/snap-logger");
|
|
|
11
11
|
var snap_tracker_1 = require("@searchspring/snap-tracker");
|
|
12
12
|
(0, mobx_1.configure)({ useProxies: 'never' });
|
|
13
13
|
exports.default = (function (config, services) {
|
|
14
|
-
var urlManager = (services === null || services === void 0 ? void 0 : services.urlManager) || new snap_url_manager_1.UrlManager(new snap_url_manager_1.UrlTranslator(config.url), snap_url_manager_1.reactLinker).detach();
|
|
14
|
+
var urlManager = ((services === null || services === void 0 ? void 0 : services.urlManager) || new snap_url_manager_1.UrlManager(new snap_url_manager_1.UrlTranslator(config.url), snap_url_manager_1.reactLinker)).detach();
|
|
15
15
|
var cntrlr = new snap_controller_1.AutocompleteController(config.controller, {
|
|
16
16
|
client: (services === null || services === void 0 ? void 0 : services.client) || new snap_client_1.Client(config.client.globals, config.client.config),
|
|
17
17
|
store: (services === null || services === void 0 ? void 0 : services.store) || new snap_store_mobx_1.AutocompleteStore(config.controller, { urlManager: urlManager }),
|
|
@@ -11,7 +11,7 @@ var snap_logger_1 = require("@searchspring/snap-logger");
|
|
|
11
11
|
var snap_tracker_1 = require("@searchspring/snap-tracker");
|
|
12
12
|
(0, mobx_1.configure)({ useProxies: 'never' });
|
|
13
13
|
exports.default = (function (config, services) {
|
|
14
|
-
var urlManager = (services === null || services === void 0 ? void 0 : services.urlManager) || new snap_url_manager_1.UrlManager(new snap_url_manager_1.UrlTranslator(config.url), snap_url_manager_1.reactLinker).detach(true);
|
|
14
|
+
var urlManager = ((services === null || services === void 0 ? void 0 : services.urlManager) || new snap_url_manager_1.UrlManager(new snap_url_manager_1.UrlTranslator(config.url), snap_url_manager_1.reactLinker)).detach(true);
|
|
15
15
|
var cntrlr = new snap_controller_1.FinderController(config.controller, {
|
|
16
16
|
client: (services === null || services === void 0 ? void 0 : services.client) || new snap_client_1.Client(config.client.globals, config.client.config),
|
|
17
17
|
store: (services === null || services === void 0 ? void 0 : services.store) || new snap_store_mobx_1.FinderStore(config.controller, { urlManager: urlManager }),
|
|
@@ -11,7 +11,7 @@ var snap_logger_1 = require("@searchspring/snap-logger");
|
|
|
11
11
|
var snap_tracker_1 = require("@searchspring/snap-tracker");
|
|
12
12
|
(0, mobx_1.configure)({ useProxies: 'never' });
|
|
13
13
|
exports.default = (function (config, services) {
|
|
14
|
-
var urlManager = (services === null || services === void 0 ? void 0 : services.urlManager) || new snap_url_manager_1.UrlManager(new snap_url_manager_1.UrlTranslator(config.url), snap_url_manager_1.reactLinker).detach(true);
|
|
14
|
+
var urlManager = ((services === null || services === void 0 ? void 0 : services.urlManager) || new snap_url_manager_1.UrlManager(new snap_url_manager_1.UrlTranslator(config.url), snap_url_manager_1.reactLinker)).detach(true);
|
|
15
15
|
var cntrlr = new snap_controller_1.RecommendationController(config.controller, {
|
|
16
16
|
client: (services === null || services === void 0 ? void 0 : services.client) || new snap_client_1.Client(config.client.globals, config.client.config),
|
|
17
17
|
store: (services === null || services === void 0 ? void 0 : services.store) || new snap_store_mobx_1.RecommendationStore(config.controller, { urlManager: urlManager }),
|
package/dist/esm/Snap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Snap.d.ts","sourceRoot":"","sources":["../../src/Snap.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Snap.d.ts","sourceRoot":"","sources":["../../src/Snap.tsx"],"names":[],"mappings":"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"}
|
package/dist/esm/Snap.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "preact/jsx-runtime";
|
|
2
2
|
import deepmerge from 'deepmerge';
|
|
3
|
+
import { isPlainObject } from 'is-plain-object';
|
|
3
4
|
import { render } from 'preact';
|
|
4
5
|
import { Client } from '@searchspring/snap-client';
|
|
5
6
|
import { Logger, LogMode } from '@searchspring/snap-logger';
|
|
@@ -51,7 +52,15 @@ export class Snap {
|
|
|
51
52
|
url: deepmerge(this.config.url || {}, urlConfig || {}),
|
|
52
53
|
controller: config,
|
|
53
54
|
context: deepmerge(this.context || {}, context || {}),
|
|
54
|
-
}, {
|
|
55
|
+
}, {
|
|
56
|
+
client: services?.client || this.client,
|
|
57
|
+
store: services?.store,
|
|
58
|
+
urlManager: services?.urlManager,
|
|
59
|
+
eventManager: services?.eventManager,
|
|
60
|
+
profiler: services?.profiler,
|
|
61
|
+
logger: services?.logger,
|
|
62
|
+
tracker: services?.tracker || this.tracker,
|
|
63
|
+
});
|
|
55
64
|
resolve(this.controllers[config.id]);
|
|
56
65
|
}
|
|
57
66
|
return this.controllers[config.id];
|
|
@@ -67,7 +76,10 @@ export class Snap {
|
|
|
67
76
|
catch (err) {
|
|
68
77
|
this.logger.error('failed to find global context');
|
|
69
78
|
}
|
|
70
|
-
|
|
79
|
+
// merge configs - but only merge plain objects
|
|
80
|
+
this.config = deepmerge(this.config || {}, globalContext.config || {}, {
|
|
81
|
+
isMergeableObject: isPlainObject,
|
|
82
|
+
});
|
|
71
83
|
this.context = deepmerge(globalContext || {}, this.config.context || {});
|
|
72
84
|
if (!this.config?.client?.globals?.siteId) {
|
|
73
85
|
throw new Error(`Snap: config provided must contain a valid config.client.globals.siteId value`);
|
|
@@ -154,7 +166,15 @@ export class Snap {
|
|
|
154
166
|
url: deepmerge(this.config.url || {}, controller.url || {}),
|
|
155
167
|
controller: controller.config,
|
|
156
168
|
context: deepmerge(this.context || {}, controller.context || {}),
|
|
157
|
-
}, {
|
|
169
|
+
}, {
|
|
170
|
+
client: controller.services?.client || this.client,
|
|
171
|
+
store: controller.services?.store,
|
|
172
|
+
urlManager: controller.services?.urlManager,
|
|
173
|
+
eventManager: controller.services?.eventManager,
|
|
174
|
+
profiler: controller.services?.profiler,
|
|
175
|
+
logger: controller.services?.logger,
|
|
176
|
+
tracker: controller.services?.tracker || this.tracker,
|
|
177
|
+
});
|
|
158
178
|
this.controllers[cntrlr.config.id] = cntrlr;
|
|
159
179
|
this._controllerPromises[cntrlr.config.id] = new Promise((resolve) => resolve(cntrlr));
|
|
160
180
|
let searched = false;
|
|
@@ -9,7 +9,7 @@ import { Logger } from '@searchspring/snap-logger';
|
|
|
9
9
|
import { Tracker } from '@searchspring/snap-tracker';
|
|
10
10
|
configureMobx({ useProxies: 'never' });
|
|
11
11
|
export default (config, services) => {
|
|
12
|
-
const urlManager = services?.urlManager || new UrlManager(new UrlTranslator(config.url), reactLinker).detach();
|
|
12
|
+
const urlManager = (services?.urlManager || new UrlManager(new UrlTranslator(config.url), reactLinker)).detach();
|
|
13
13
|
const cntrlr = new AutocompleteController(config.controller, {
|
|
14
14
|
client: services?.client || new Client(config.client.globals, config.client.config),
|
|
15
15
|
store: services?.store || new AutocompleteStore(config.controller, { urlManager }),
|
|
@@ -9,7 +9,7 @@ import { Logger } from '@searchspring/snap-logger';
|
|
|
9
9
|
import { Tracker } from '@searchspring/snap-tracker';
|
|
10
10
|
configureMobx({ useProxies: 'never' });
|
|
11
11
|
export default (config, services) => {
|
|
12
|
-
const urlManager = services?.urlManager || new UrlManager(new UrlTranslator(config.url), reactLinker).detach(true);
|
|
12
|
+
const urlManager = (services?.urlManager || new UrlManager(new UrlTranslator(config.url), reactLinker)).detach(true);
|
|
13
13
|
const cntrlr = new FinderController(config.controller, {
|
|
14
14
|
client: services?.client || new Client(config.client.globals, config.client.config),
|
|
15
15
|
store: services?.store || new FinderStore(config.controller, { urlManager }),
|
|
@@ -9,7 +9,7 @@ import { Logger } from '@searchspring/snap-logger';
|
|
|
9
9
|
import { Tracker } from '@searchspring/snap-tracker';
|
|
10
10
|
configureMobx({ useProxies: 'never' });
|
|
11
11
|
export default (config, services) => {
|
|
12
|
-
const urlManager = services?.urlManager || new UrlManager(new UrlTranslator(config.url), reactLinker).detach(true);
|
|
12
|
+
const urlManager = (services?.urlManager || new UrlManager(new UrlTranslator(config.url), reactLinker)).detach(true);
|
|
13
13
|
const cntrlr = new RecommendationController(config.controller, {
|
|
14
14
|
client: services?.client || new Client(config.client.globals, config.client.config),
|
|
15
15
|
store: services?.store || new RecommendationStore(config.controller, { urlManager }),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@searchspring/snap-preact",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.24.0",
|
|
4
4
|
"description": "Snap Preact",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -20,17 +20,18 @@
|
|
|
20
20
|
"test:watch": "jest --watch"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@searchspring/snap-client": "^0.
|
|
24
|
-
"@searchspring/snap-controller": "^0.
|
|
25
|
-
"@searchspring/snap-event-manager": "^0.
|
|
26
|
-
"@searchspring/snap-logger": "^0.
|
|
27
|
-
"@searchspring/snap-profiler": "^0.
|
|
28
|
-
"@searchspring/snap-store-mobx": "^0.
|
|
29
|
-
"@searchspring/snap-toolbox": "^0.
|
|
30
|
-
"@searchspring/snap-tracker": "^0.
|
|
31
|
-
"@searchspring/snap-url-manager": "^0.
|
|
23
|
+
"@searchspring/snap-client": "^0.24.0",
|
|
24
|
+
"@searchspring/snap-controller": "^0.24.0",
|
|
25
|
+
"@searchspring/snap-event-manager": "^0.24.0",
|
|
26
|
+
"@searchspring/snap-logger": "^0.24.0",
|
|
27
|
+
"@searchspring/snap-profiler": "^0.24.0",
|
|
28
|
+
"@searchspring/snap-store-mobx": "^0.24.0",
|
|
29
|
+
"@searchspring/snap-toolbox": "^0.24.0",
|
|
30
|
+
"@searchspring/snap-tracker": "^0.24.0",
|
|
31
|
+
"@searchspring/snap-url-manager": "^0.24.0",
|
|
32
32
|
"deepmerge": "^4.2.2",
|
|
33
|
-
"intersection-observer": "^0.12.0"
|
|
33
|
+
"intersection-observer": "^0.12.0",
|
|
34
|
+
"is-plain-object": "^5.0.0"
|
|
34
35
|
},
|
|
35
36
|
"devDependencies": {
|
|
36
37
|
"@types/react": "^17.0.20"
|
|
@@ -39,5 +40,5 @@
|
|
|
39
40
|
"files": [
|
|
40
41
|
"dist/**/*"
|
|
41
42
|
],
|
|
42
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "2aadf9555a7c409f6922a4ab72938d2ea0510faf"
|
|
43
44
|
}
|