@unchainedshop/core 4.3.2 → 4.3.4
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/lib/directors/FilterAdapter.d.ts +18 -22
- package/lib/directors/FilterAdapter.d.ts.map +1 -1
- package/lib/directors/FilterAdapter.js.map +1 -1
- package/lib/directors/FilterDirector.js +2 -2
- package/lib/directors/FilterDirector.js.map +1 -1
- package/lib/services/loadFilters.d.ts +4 -2
- package/lib/services/loadFilters.d.ts.map +1 -1
- package/lib/services/loadFilters.js +5 -5
- package/lib/services/loadFilters.js.map +1 -1
- package/lib/services/searchAssortments.d.ts +6 -9
- package/lib/services/searchAssortments.d.ts.map +1 -1
- package/lib/services/searchAssortments.js +5 -5
- package/lib/services/searchAssortments.js.map +1 -1
- package/lib/services/searchProducts.d.ts +5 -8
- package/lib/services/searchProducts.d.ts.map +1 -1
- package/lib/services/searchProducts.js +6 -6
- package/lib/services/searchProducts.js.map +1 -1
- package/package.json +1 -1
- package/src/directors/FilterAdapter.ts +21 -16
- package/src/directors/FilterDirector.ts +2 -2
- package/src/services/loadFilters.ts +13 -5
- package/src/services/searchAssortments.ts +10 -13
- package/src/services/searchProducts.ts +11 -14
|
@@ -2,7 +2,7 @@ import { Assortment } from '@unchainedshop/core-assortments';
|
|
|
2
2
|
import { mongodb } from '@unchainedshop/mongodb';
|
|
3
3
|
import { IBaseAdapter } from '@unchainedshop/utils';
|
|
4
4
|
import { Product } from '@unchainedshop/core-products';
|
|
5
|
-
import { Filter, SearchQuery } from '@unchainedshop/core-filters';
|
|
5
|
+
import { Filter, SearchConfiguration, SearchQuery } from '@unchainedshop/core-filters';
|
|
6
6
|
import { Modules } from '../modules.js';
|
|
7
7
|
export interface FilterInputText {
|
|
8
8
|
locale: string;
|
|
@@ -13,35 +13,31 @@ export interface FilterContext {
|
|
|
13
13
|
filter?: Filter;
|
|
14
14
|
searchQuery: SearchQuery;
|
|
15
15
|
}
|
|
16
|
+
export interface SearchAssortmentsOptions extends SearchConfiguration {
|
|
17
|
+
assortmentSelector: mongodb.Filter<Assortment>;
|
|
18
|
+
}
|
|
19
|
+
export interface SearchProductsOptions extends SearchConfiguration {
|
|
20
|
+
productSelector: mongodb.Filter<Product>;
|
|
21
|
+
}
|
|
22
|
+
export interface TransformOptions {
|
|
23
|
+
key?: string;
|
|
24
|
+
value?: any;
|
|
25
|
+
userId?: string;
|
|
26
|
+
locale?: Intl.Locale;
|
|
27
|
+
}
|
|
16
28
|
export interface FilterAdapterActions {
|
|
17
29
|
aggregateProductIds: (params: {
|
|
18
30
|
productIds: string[];
|
|
19
31
|
}) => string[];
|
|
20
32
|
searchAssortments: (params: {
|
|
21
33
|
assortmentIds?: string[];
|
|
22
|
-
}, options:
|
|
23
|
-
filterSelector: mongodb.Filter<Filter>;
|
|
24
|
-
assortmentSelector: mongodb.Filter<Assortment>;
|
|
25
|
-
sortStage: mongodb.FindOptions['sort'];
|
|
26
|
-
locale: Intl.Locale;
|
|
27
|
-
}) => Promise<string[] | undefined>;
|
|
34
|
+
}, options: SearchAssortmentsOptions) => Promise<string[] | undefined>;
|
|
28
35
|
searchProducts: (params: {
|
|
29
36
|
productIds?: string[];
|
|
30
|
-
}, options:
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
locale: Intl.Locale;
|
|
35
|
-
}) => Promise<string[] | undefined>;
|
|
36
|
-
transformFilterSelector: (query: mongodb.Filter<Filter>, options?: any) => Promise<mongodb.Filter<Filter>>;
|
|
37
|
-
transformProductSelector: (query: mongodb.Filter<Product>, options?: {
|
|
38
|
-
key?: string;
|
|
39
|
-
value?: any;
|
|
40
|
-
}) => Promise<mongodb.Filter<Product>>;
|
|
41
|
-
transformSortStage: (sort: mongodb.FindOptions['sort'], options?: {
|
|
42
|
-
key: string;
|
|
43
|
-
value?: any;
|
|
44
|
-
}) => Promise<mongodb.FindOptions['sort']>;
|
|
37
|
+
}, options: SearchProductsOptions) => Promise<string[] | undefined>;
|
|
38
|
+
transformFilterSelector: (query: mongodb.Filter<Filter>, options?: TransformOptions) => Promise<mongodb.Filter<Filter>>;
|
|
39
|
+
transformProductSelector: (query: mongodb.Filter<Product>, options?: TransformOptions) => Promise<mongodb.Filter<Product>>;
|
|
40
|
+
transformSortStage: (sort: mongodb.FindOptions['sort'], options?: TransformOptions) => Promise<mongodb.FindOptions['sort']>;
|
|
45
41
|
}
|
|
46
42
|
export type IFilterAdapter = IBaseAdapter & {
|
|
47
43
|
orderIndex: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterAdapter.d.ts","sourceRoot":"","sources":["../../src/directors/FilterAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAe,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"FilterAdapter.d.ts","sourceRoot":"","sources":["../../src/directors/FilterAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAe,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IACnE,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;IAChE,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,mBAAmB,EAAE,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,MAAM,EAAE,CAAC;IAEpE,iBAAiB,EAAE,CACjB,MAAM,EAAE;QACN,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;KAC1B,EACD,OAAO,EAAE,wBAAwB,KAC9B,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IAEnC,cAAc,EAAE,CACd,MAAM,EAAE;QACN,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB,EACD,OAAO,EAAE,qBAAqB,KAC3B,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IAEnC,uBAAuB,EAAE,CACvB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAC7B,OAAO,CAAC,EAAE,gBAAgB,KACvB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACrC,wBAAwB,EAAE,CACxB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,gBAAgB,KACvB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACtC,kBAAkB,EAAE,CAClB,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EACjC,OAAO,CAAC,EAAE,gBAAgB,KACvB,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;CAC3C;AAED,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG;IAC1C,UAAU,EAAE,MAAM,CAAC;IAEnB,OAAO,EAAE,CAAC,MAAM,EAAE,aAAa,GAAG;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAAK,oBAAoB,CAAC;CACjF,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,CAmC3E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterAdapter.js","sourceRoot":"","sources":["../../src/directors/FilterAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAgB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"FilterAdapter.js","sourceRoot":"","sources":["../../src/directors/FilterAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAgB,MAAM,sBAAsB,CAAC;AAoEjE,MAAM,CAAC,MAAM,aAAa,GAAsD;IAC9E,GAAG,WAAW;IACd,UAAU,EAAE,CAAC;IAEb,OAAO,EAAE,GAAG,EAAE;QACZ,OAAO;YACL,oFAAoF;YACpF,mBAAmB,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;gBACtC,OAAO,UAAU,CAAC;YACpB,CAAC;YAED,cAAc,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;gBACvC,OAAO,UAAU,CAAC;YACpB,CAAC;YAED,iBAAiB,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;gBAC7C,OAAO,aAAa,CAAC;YACvB,CAAC;YAED,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;gBACtC,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,+EAA+E;YAC/E,yGAAyG;YACzG,wBAAwB,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;gBAC/C,OAAO,YAAY,CAAC;YACtB,CAAC;YAED,6EAA6E;YAC7E,uBAAuB,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;gBAC9C,OAAO,YAAY,CAAC;YACtB,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -46,9 +46,9 @@ export const FilterDirector = {
|
|
|
46
46
|
return adapter.transformSortStage(await lastSortStage, options);
|
|
47
47
|
}, defaultStage);
|
|
48
48
|
},
|
|
49
|
-
transformFilterSelector: async (defaultSelector) => {
|
|
49
|
+
transformFilterSelector: async (defaultSelector, options) => {
|
|
50
50
|
return reduceAdapters(async (lastSelector, adapter) => {
|
|
51
|
-
return adapter.transformFilterSelector(await lastSelector);
|
|
51
|
+
return adapter.transformFilterSelector(await lastSelector, options);
|
|
52
52
|
}, defaultSelector);
|
|
53
53
|
},
|
|
54
54
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterDirector.js","sourceRoot":"","sources":["../../src/directors/FilterDirector.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"FilterDirector.js","sourceRoot":"","sources":["../../src/directors/FilterDirector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { SearchQuery } from '@unchainedshop/core-filters';
|
|
2
2
|
import { Modules } from '../modules.js';
|
|
3
|
-
export declare function loadFiltersService(this: Modules, searchQuery: SearchQuery,
|
|
3
|
+
export declare function loadFiltersService(this: Modules, searchQuery: SearchQuery, options: {
|
|
4
4
|
productIds: string[];
|
|
5
|
-
forceLiveCollection
|
|
5
|
+
forceLiveCollection?: boolean;
|
|
6
|
+
locale?: Intl.Locale;
|
|
7
|
+
userId?: string;
|
|
6
8
|
}): Promise<{
|
|
7
9
|
forceLiveCollection: boolean;
|
|
8
10
|
searchQuery: SearchQuery;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadFilters.d.ts","sourceRoot":"","sources":["../../src/services/loadFilters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAyB,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,WAAW,EACxB,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"loadFilters.d.ts","sourceRoot":"","sources":["../../src/services/loadFilters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAyB,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE;IACP,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;;;;;;;KA+CF"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { defaultFilterSelector } from '@unchainedshop/core-filters';
|
|
2
2
|
import { FilterDirector } from '../directors/FilterDirector.js';
|
|
3
|
-
export async function loadFiltersService(searchQuery,
|
|
3
|
+
export async function loadFiltersService(searchQuery, options) {
|
|
4
4
|
const filterActions = await FilterDirector.actions({ searchQuery }, { modules: this });
|
|
5
|
-
const filterSelector = await filterActions.transformFilterSelector(defaultFilterSelector(searchQuery));
|
|
5
|
+
const filterSelector = await filterActions.transformFilterSelector(defaultFilterSelector(searchQuery), options);
|
|
6
6
|
if (!filterSelector)
|
|
7
7
|
return [];
|
|
8
8
|
const otherFilters = await this.filters.findFilters({
|
|
@@ -19,12 +19,12 @@ export async function loadFiltersService(searchQuery, { productIds, forceLiveCol
|
|
|
19
19
|
return Promise.all(sortedFilters.map(async (filter) => {
|
|
20
20
|
const { examinedProductIdSet, filteredByOtherFiltersSet, filteredByThisFilterSet } = await FilterDirector.filterFacets(filter, {
|
|
21
21
|
searchQuery,
|
|
22
|
-
forceLiveCollection,
|
|
23
|
-
allProductIds: productIds,
|
|
22
|
+
forceLiveCollection: !!options.forceLiveCollection,
|
|
23
|
+
allProductIds: options.productIds,
|
|
24
24
|
otherFilters: sortedFilters,
|
|
25
25
|
}, { modules: this });
|
|
26
26
|
return {
|
|
27
|
-
forceLiveCollection,
|
|
27
|
+
forceLiveCollection: !!options.forceLiveCollection,
|
|
28
28
|
searchQuery,
|
|
29
29
|
filter,
|
|
30
30
|
examinedProductIdSet,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadFilters.js","sourceRoot":"","sources":["../../src/services/loadFilters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEjF,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAEtC,WAAwB,EACxB,
|
|
1
|
+
{"version":3,"file":"loadFilters.js","sourceRoot":"","sources":["../../src/services/loadFilters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEjF,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAEtC,WAAwB,EACxB,OAKC;IAED,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACvF,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,uBAAuB,CAChE,qBAAqB,CAAC,WAAW,CAAC,EAClC,OAAO,CACR,CAAC;IAEF,IAAI,CAAC,cAAc;QAAE,OAAO,EAAE,CAAC;IAE/B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAClD,GAAG,cAAc;QACjB,KAAK,EAAE,CAAC;QACR,eAAe,EAAE,IAAI;KACtB,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAI,cAAc,EAAE,GAAW,EAAE,GAAG,IAAI,EAAE,CAAC;IACnE,MAAM,aAAa,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC1D,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzD,OAAO,SAAS,GAAG,UAAU,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,GAAG,CAChB,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QACjC,MAAM,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,GAChF,MAAM,cAAc,CAAC,YAAY,CAC/B,MAAM,EACN;YACE,WAAW;YACX,mBAAmB,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB;YAClD,aAAa,EAAE,OAAO,CAAC,UAAU;YACjC,YAAY,EAAE,aAAa;SAC5B,EACD,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAC;QAEJ,OAAO;YACL,mBAAmB,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB;YAClD,WAAW;YACX,MAAM;YACN,oBAAoB;YACpB,yBAAyB;YACzB,uBAAuB;SACxB,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1,20 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { SearchConfiguration, SearchQuery } from '@unchainedshop/core-filters';
|
|
3
|
-
import { mongodb } from '@unchainedshop/mongodb';
|
|
1
|
+
import { SearchQuery } from '@unchainedshop/core-filters';
|
|
4
2
|
import { Modules } from '../modules.js';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
export declare function searchAssortmentsService(this: Modules, searchQuery: SearchQuery, { forceLiveCollection, locale }: {
|
|
3
|
+
import { SearchAssortmentsOptions } from '../directors/index.js';
|
|
4
|
+
export declare function searchAssortmentsService(this: Modules, searchQuery: SearchQuery, options: {
|
|
9
5
|
forceLiveCollection?: boolean;
|
|
10
6
|
locale: Intl.Locale;
|
|
7
|
+
userId?: string;
|
|
11
8
|
}): Promise<{
|
|
12
|
-
searchConfiguration:
|
|
9
|
+
searchConfiguration: SearchAssortmentsOptions;
|
|
13
10
|
totalAssortmentIds: string[];
|
|
14
11
|
assortmentsCount: () => Promise<number>;
|
|
15
12
|
assortments: ({ offset, limit }: {
|
|
16
13
|
offset: any;
|
|
17
14
|
limit: any;
|
|
18
|
-
}) => Promise<Assortment[]>;
|
|
15
|
+
}) => Promise<import("@unchainedshop/core-assortments").Assortment[]>;
|
|
19
16
|
}>;
|
|
20
17
|
//# sourceMappingURL=searchAssortments.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchAssortments.d.ts","sourceRoot":"","sources":["../../src/services/searchAssortments.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"searchAssortments.d.ts","sourceRoot":"","sources":["../../src/services/searchAssortments.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,WAAW,EACZ,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAkB,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjF,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE;IAAE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;GA4CjF"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { defaultAssortmentSelector, defaultFilterSelector, defaultSortStage, } from '@unchainedshop/core-filters';
|
|
2
2
|
import { FilterDirector } from '../directors/index.js';
|
|
3
|
-
export async function searchAssortmentsService(searchQuery,
|
|
3
|
+
export async function searchAssortmentsService(searchQuery, options) {
|
|
4
4
|
const filterActions = await FilterDirector.actions({ searchQuery }, { modules: this });
|
|
5
|
-
const filterSelector = await filterActions.transformFilterSelector(defaultFilterSelector(searchQuery));
|
|
5
|
+
const filterSelector = await filterActions.transformFilterSelector(defaultFilterSelector(searchQuery), options);
|
|
6
6
|
const assortmentSelector = defaultAssortmentSelector(searchQuery);
|
|
7
|
-
const sortStage = await filterActions.transformSortStage(defaultSortStage(searchQuery));
|
|
7
|
+
const sortStage = await filterActions.transformSortStage(defaultSortStage(searchQuery), options);
|
|
8
8
|
const searchConfiguration = {
|
|
9
9
|
searchQuery,
|
|
10
10
|
filterSelector,
|
|
11
11
|
assortmentSelector,
|
|
12
12
|
sortStage,
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
...options,
|
|
14
|
+
forceLiveCollection: !!options.forceLiveCollection,
|
|
15
15
|
};
|
|
16
16
|
const assortmentIds = await searchQuery.assortmentIds;
|
|
17
17
|
const totalAssortmentIds = (await filterActions.searchAssortments({ assortmentIds }, searchConfiguration)) ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchAssortments.js","sourceRoot":"","sources":["../../src/services/searchAssortments.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"searchAssortments.js","sourceRoot":"","sources":["../../src/services/searchAssortments.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,gBAAgB,GAEjB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,cAAc,EAA4B,MAAM,uBAAuB,CAAC;AAEjF,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAE5C,WAAwB,EACxB,OAAgF;IAEhF,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvF,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,uBAAuB,CAChE,qBAAqB,CAAC,WAAW,CAAC,EAClC,OAAO,CACR,CAAC;IACF,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;IAEjG,MAAM,mBAAmB,GAA6B;QACpD,WAAW;QACX,cAAc;QACd,kBAAkB;QAClB,SAAS;QACT,GAAG,OAAO;QACV,mBAAmB,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB;KACnD,CAAC;IAEF,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC;IAEtD,MAAM,kBAAkB,GACtB,CAAC,MAAM,aAAa,CAAC,iBAAiB,CAAC,EAAE,aAAa,EAAE,EAAE,mBAAmB,CAAC,CAAC;QAC/E,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,eAAe,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IAE/F,OAAO;QACL,mBAAmB;QACnB,kBAAkB;QAElB,gBAAgB,EAAE,KAAK,IAAI,EAAE,CAC3B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACrB,kBAAkB;YAClB,aAAa,EAAE,kBAAkB;SAClC,CAAC;QACJ,WAAW,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CACvC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,uBAAuB,CAAC;YAC9C,KAAK;YACL,MAAM;YACN,aAAa,EAAE,kBAAkB;YACjC,kBAAkB;YAClB,IAAI,EAAE,SAAS;SAChB,CAAC;KACL,CAAC;AACJ,CAAC"}
|
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Product } from '@unchainedshop/core-products';
|
|
3
|
-
import { mongodb } from '@unchainedshop/mongodb';
|
|
1
|
+
import { SearchQuery } from '@unchainedshop/core-filters';
|
|
4
2
|
import { Modules } from '../modules.js';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
export declare function searchProductsService(this: Modules, searchQuery: SearchQuery, { forceLiveCollection, locale }: {
|
|
3
|
+
import { SearchProductsOptions } from '../directors/index.js';
|
|
4
|
+
export declare function searchProductsService(this: Modules, searchQuery: SearchQuery, options: {
|
|
9
5
|
forceLiveCollection?: boolean;
|
|
10
6
|
locale: Intl.Locale;
|
|
7
|
+
userId?: string;
|
|
11
8
|
}): Promise<{
|
|
12
|
-
searchConfiguration:
|
|
9
|
+
searchConfiguration: SearchProductsOptions;
|
|
13
10
|
totalProductIds: string[];
|
|
14
11
|
aggregatedTotalProductIds: string[];
|
|
15
12
|
aggregatedFilteredProductIds: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchProducts.d.ts","sourceRoot":"","sources":["../../src/services/searchProducts.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,
|
|
1
|
+
{"version":3,"file":"searchProducts.d.ts","sourceRoot":"","sources":["../../src/services/searchProducts.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,WAAW,EACZ,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAkB,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9E,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE;IAAE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GA0DjF"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { defaultFilterSelector, defaultProductSelector, defaultSortStage, } from '@unchainedshop/core-filters';
|
|
2
2
|
import { FilterDirector } from '../directors/index.js';
|
|
3
|
-
export async function searchProductsService(searchQuery,
|
|
3
|
+
export async function searchProductsService(searchQuery, options) {
|
|
4
4
|
const filterActions = await FilterDirector.actions({ searchQuery }, { modules: this });
|
|
5
|
-
const filterSelector = await filterActions.transformFilterSelector(defaultFilterSelector(searchQuery));
|
|
6
|
-
const productSelector = await filterActions.transformProductSelector(defaultProductSelector(searchQuery, { modules: this }),
|
|
7
|
-
const sortStage = await filterActions.transformSortStage(defaultSortStage(searchQuery));
|
|
5
|
+
const filterSelector = await filterActions.transformFilterSelector(defaultFilterSelector(searchQuery), options);
|
|
6
|
+
const productSelector = await filterActions.transformProductSelector(defaultProductSelector(searchQuery, { modules: this }), options);
|
|
7
|
+
const sortStage = await filterActions.transformSortStage(defaultSortStage(searchQuery), options);
|
|
8
8
|
const searchConfiguration = {
|
|
9
9
|
searchQuery,
|
|
10
10
|
filterSelector,
|
|
11
11
|
productSelector,
|
|
12
12
|
sortStage,
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
...options,
|
|
14
|
+
forceLiveCollection: !!options.forceLiveCollection,
|
|
15
15
|
};
|
|
16
16
|
if (searchQuery.productIds?.length === 0) {
|
|
17
17
|
// Restricted to an empty array of products
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchProducts.js","sourceRoot":"","sources":["../../src/services/searchProducts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"searchProducts.js","sourceRoot":"","sources":["../../src/services/searchProducts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,GAEjB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,cAAc,EAAyB,MAAM,uBAAuB,CAAC;AAE9E,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAEzC,WAAwB,EACxB,OAAgF;IAEhF,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvF,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,uBAAuB,CAChE,qBAAqB,CAAC,WAAW,CAAC,EAClC,OAAO,CACR,CAAC;IACF,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,wBAAwB,CAClE,sBAAsB,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EACtD,OAAO,CACR,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;IAEjG,MAAM,mBAAmB,GAA0B;QACjD,WAAW;QACX,cAAc;QACd,eAAe;QACf,SAAS;QACT,GAAG,OAAO;QACV,mBAAmB,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB;KACnD,CAAC;IAEF,IAAI,WAAW,CAAC,UAAU,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,2CAA2C;QAC3C,sCAAsC;QACtC,OAAO;YACL,mBAAmB;YACnB,yBAAyB,EAAE,EAAE;YAC7B,4BAA4B,EAAE,EAAE;YAChC,eAAe,EAAE,EAAE;SACpB,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GACnB,CAAC,MAAM,aAAa,CAAC,cAAc,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;QACtE,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IAEvF,MAAM,kBAAkB,GAAG,MAAM,cAAc,CAAC,oBAAoB,CAClE,eAAe,EACf,mBAAmB,EACnB,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAC;IAEF,MAAM,yBAAyB,GAAG,aAAa,CAAC,mBAAmB,CAAC;QAClE,UAAU,EAAE,eAAe;KAC5B,CAAC,CAAC;IAEH,MAAM,4BAA4B,GAAG,aAAa,CAAC,mBAAmB,CAAC;QACrE,UAAU,EAAE,kBAAkB;KAC/B,CAAC,CAAC;IAEH,OAAO;QACL,mBAAmB;QACnB,eAAe;QACf,yBAAyB;QACzB,4BAA4B;KAC7B,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@ import { Assortment } from '@unchainedshop/core-assortments';
|
|
|
2
2
|
import { mongodb } from '@unchainedshop/mongodb';
|
|
3
3
|
import { BaseAdapter, IBaseAdapter } from '@unchainedshop/utils';
|
|
4
4
|
import { Product } from '@unchainedshop/core-products';
|
|
5
|
-
import { Filter, SearchQuery } from '@unchainedshop/core-filters';
|
|
5
|
+
import { Filter, SearchConfiguration, SearchQuery } from '@unchainedshop/core-filters';
|
|
6
6
|
import { Modules } from '../modules.js';
|
|
7
7
|
|
|
8
8
|
export interface FilterInputText {
|
|
@@ -16,6 +16,21 @@ export interface FilterContext {
|
|
|
16
16
|
searchQuery: SearchQuery;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
export interface SearchAssortmentsOptions extends SearchConfiguration {
|
|
20
|
+
assortmentSelector: mongodb.Filter<Assortment>;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface SearchProductsOptions extends SearchConfiguration {
|
|
24
|
+
productSelector: mongodb.Filter<Product>;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export interface TransformOptions {
|
|
28
|
+
key?: string;
|
|
29
|
+
value?: any;
|
|
30
|
+
userId?: string;
|
|
31
|
+
locale?: Intl.Locale;
|
|
32
|
+
}
|
|
33
|
+
|
|
19
34
|
export interface FilterAdapterActions {
|
|
20
35
|
aggregateProductIds: (params: { productIds: string[] }) => string[];
|
|
21
36
|
|
|
@@ -23,37 +38,27 @@ export interface FilterAdapterActions {
|
|
|
23
38
|
params: {
|
|
24
39
|
assortmentIds?: string[];
|
|
25
40
|
},
|
|
26
|
-
options:
|
|
27
|
-
filterSelector: mongodb.Filter<Filter>;
|
|
28
|
-
assortmentSelector: mongodb.Filter<Assortment>;
|
|
29
|
-
sortStage: mongodb.FindOptions['sort'];
|
|
30
|
-
locale: Intl.Locale;
|
|
31
|
-
},
|
|
41
|
+
options: SearchAssortmentsOptions,
|
|
32
42
|
) => Promise<string[] | undefined>;
|
|
33
43
|
|
|
34
44
|
searchProducts: (
|
|
35
45
|
params: {
|
|
36
46
|
productIds?: string[];
|
|
37
47
|
},
|
|
38
|
-
options:
|
|
39
|
-
filterSelector: mongodb.Filter<Filter>;
|
|
40
|
-
productSelector: mongodb.Filter<Product>;
|
|
41
|
-
sortStage: mongodb.FindOptions['sort'];
|
|
42
|
-
locale: Intl.Locale;
|
|
43
|
-
},
|
|
48
|
+
options: SearchProductsOptions,
|
|
44
49
|
) => Promise<string[] | undefined>;
|
|
45
50
|
|
|
46
51
|
transformFilterSelector: (
|
|
47
52
|
query: mongodb.Filter<Filter>,
|
|
48
|
-
options?:
|
|
53
|
+
options?: TransformOptions,
|
|
49
54
|
) => Promise<mongodb.Filter<Filter>>;
|
|
50
55
|
transformProductSelector: (
|
|
51
56
|
query: mongodb.Filter<Product>,
|
|
52
|
-
options?:
|
|
57
|
+
options?: TransformOptions,
|
|
53
58
|
) => Promise<mongodb.Filter<Product>>;
|
|
54
59
|
transformSortStage: (
|
|
55
60
|
sort: mongodb.FindOptions['sort'],
|
|
56
|
-
options?:
|
|
61
|
+
options?: TransformOptions,
|
|
57
62
|
) => Promise<mongodb.FindOptions['sort']>;
|
|
58
63
|
}
|
|
59
64
|
|
|
@@ -121,9 +121,9 @@ export const FilterDirector: IFilterDirector = {
|
|
|
121
121
|
}, defaultStage);
|
|
122
122
|
},
|
|
123
123
|
|
|
124
|
-
transformFilterSelector: async (defaultSelector) => {
|
|
124
|
+
transformFilterSelector: async (defaultSelector, options) => {
|
|
125
125
|
return reduceAdapters<mongodb.Filter<Filter>>(async (lastSelector, adapter) => {
|
|
126
|
-
return adapter.transformFilterSelector(await lastSelector);
|
|
126
|
+
return adapter.transformFilterSelector(await lastSelector, options);
|
|
127
127
|
}, defaultSelector);
|
|
128
128
|
},
|
|
129
129
|
};
|
|
@@ -5,10 +5,18 @@ import { FilterDirector } from '../directors/FilterDirector.js';
|
|
|
5
5
|
export async function loadFiltersService(
|
|
6
6
|
this: Modules,
|
|
7
7
|
searchQuery: SearchQuery,
|
|
8
|
-
|
|
8
|
+
options: {
|
|
9
|
+
productIds: string[];
|
|
10
|
+
forceLiveCollection?: boolean;
|
|
11
|
+
locale?: Intl.Locale;
|
|
12
|
+
userId?: string;
|
|
13
|
+
},
|
|
9
14
|
) {
|
|
10
15
|
const filterActions = await FilterDirector.actions({ searchQuery }, { modules: this });
|
|
11
|
-
const filterSelector = await filterActions.transformFilterSelector(
|
|
16
|
+
const filterSelector = await filterActions.transformFilterSelector(
|
|
17
|
+
defaultFilterSelector(searchQuery),
|
|
18
|
+
options,
|
|
19
|
+
);
|
|
12
20
|
|
|
13
21
|
if (!filterSelector) return [];
|
|
14
22
|
|
|
@@ -32,15 +40,15 @@ export async function loadFiltersService(
|
|
|
32
40
|
filter,
|
|
33
41
|
{
|
|
34
42
|
searchQuery,
|
|
35
|
-
forceLiveCollection,
|
|
36
|
-
allProductIds: productIds,
|
|
43
|
+
forceLiveCollection: !!options.forceLiveCollection,
|
|
44
|
+
allProductIds: options.productIds,
|
|
37
45
|
otherFilters: sortedFilters,
|
|
38
46
|
},
|
|
39
47
|
{ modules: this },
|
|
40
48
|
);
|
|
41
49
|
|
|
42
50
|
return {
|
|
43
|
-
forceLiveCollection,
|
|
51
|
+
forceLiveCollection: !!options.forceLiveCollection,
|
|
44
52
|
searchQuery,
|
|
45
53
|
filter,
|
|
46
54
|
examinedProductIdSet,
|
|
@@ -1,36 +1,33 @@
|
|
|
1
|
-
import { Assortment } from '@unchainedshop/core-assortments';
|
|
2
1
|
import {
|
|
3
2
|
defaultAssortmentSelector,
|
|
4
3
|
defaultFilterSelector,
|
|
5
4
|
defaultSortStage,
|
|
6
|
-
SearchConfiguration,
|
|
7
5
|
SearchQuery,
|
|
8
6
|
} from '@unchainedshop/core-filters';
|
|
9
|
-
import { mongodb } from '@unchainedshop/mongodb';
|
|
10
7
|
import { Modules } from '../modules.js';
|
|
11
|
-
import { FilterDirector } from '../directors/index.js';
|
|
12
|
-
export interface SearchAssortmentConfiguration extends SearchConfiguration {
|
|
13
|
-
assortmentSelector: mongodb.Filter<Assortment>;
|
|
14
|
-
}
|
|
8
|
+
import { FilterDirector, SearchAssortmentsOptions } from '../directors/index.js';
|
|
15
9
|
|
|
16
10
|
export async function searchAssortmentsService(
|
|
17
11
|
this: Modules,
|
|
18
12
|
searchQuery: SearchQuery,
|
|
19
|
-
|
|
13
|
+
options: { forceLiveCollection?: boolean; locale: Intl.Locale; userId?: string },
|
|
20
14
|
) {
|
|
21
15
|
const filterActions = await FilterDirector.actions({ searchQuery }, { modules: this });
|
|
22
16
|
|
|
23
|
-
const filterSelector = await filterActions.transformFilterSelector(
|
|
17
|
+
const filterSelector = await filterActions.transformFilterSelector(
|
|
18
|
+
defaultFilterSelector(searchQuery),
|
|
19
|
+
options,
|
|
20
|
+
);
|
|
24
21
|
const assortmentSelector = defaultAssortmentSelector(searchQuery);
|
|
25
|
-
const sortStage = await filterActions.transformSortStage(defaultSortStage(searchQuery));
|
|
22
|
+
const sortStage = await filterActions.transformSortStage(defaultSortStage(searchQuery), options);
|
|
26
23
|
|
|
27
|
-
const searchConfiguration:
|
|
24
|
+
const searchConfiguration: SearchAssortmentsOptions = {
|
|
28
25
|
searchQuery,
|
|
29
26
|
filterSelector,
|
|
30
27
|
assortmentSelector,
|
|
31
28
|
sortStage,
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
...options,
|
|
30
|
+
forceLiveCollection: !!options.forceLiveCollection,
|
|
34
31
|
};
|
|
35
32
|
|
|
36
33
|
const assortmentIds = await searchQuery.assortmentIds;
|
|
@@ -2,38 +2,35 @@ import {
|
|
|
2
2
|
defaultFilterSelector,
|
|
3
3
|
defaultProductSelector,
|
|
4
4
|
defaultSortStage,
|
|
5
|
-
SearchConfiguration,
|
|
6
5
|
SearchQuery,
|
|
7
6
|
} from '@unchainedshop/core-filters';
|
|
8
|
-
import { Product } from '@unchainedshop/core-products';
|
|
9
|
-
import { mongodb } from '@unchainedshop/mongodb';
|
|
10
7
|
import { Modules } from '../modules.js';
|
|
11
|
-
import { FilterDirector } from '../directors/index.js';
|
|
12
|
-
export interface SearchProductConfiguration extends SearchConfiguration {
|
|
13
|
-
productSelector: mongodb.Filter<Product>;
|
|
14
|
-
}
|
|
8
|
+
import { FilterDirector, SearchProductsOptions } from '../directors/index.js';
|
|
15
9
|
|
|
16
10
|
export async function searchProductsService(
|
|
17
11
|
this: Modules,
|
|
18
12
|
searchQuery: SearchQuery,
|
|
19
|
-
|
|
13
|
+
options: { forceLiveCollection?: boolean; locale: Intl.Locale; userId?: string },
|
|
20
14
|
) {
|
|
21
15
|
const filterActions = await FilterDirector.actions({ searchQuery }, { modules: this });
|
|
22
16
|
|
|
23
|
-
const filterSelector = await filterActions.transformFilterSelector(
|
|
17
|
+
const filterSelector = await filterActions.transformFilterSelector(
|
|
18
|
+
defaultFilterSelector(searchQuery),
|
|
19
|
+
options,
|
|
20
|
+
);
|
|
24
21
|
const productSelector = await filterActions.transformProductSelector(
|
|
25
22
|
defaultProductSelector(searchQuery, { modules: this }),
|
|
26
|
-
|
|
23
|
+
options,
|
|
27
24
|
);
|
|
28
|
-
const sortStage = await filterActions.transformSortStage(defaultSortStage(searchQuery));
|
|
25
|
+
const sortStage = await filterActions.transformSortStage(defaultSortStage(searchQuery), options);
|
|
29
26
|
|
|
30
|
-
const searchConfiguration:
|
|
27
|
+
const searchConfiguration: SearchProductsOptions = {
|
|
31
28
|
searchQuery,
|
|
32
29
|
filterSelector,
|
|
33
30
|
productSelector,
|
|
34
31
|
sortStage,
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
...options,
|
|
33
|
+
forceLiveCollection: !!options.forceLiveCollection,
|
|
37
34
|
};
|
|
38
35
|
|
|
39
36
|
if (searchQuery.productIds?.length === 0) {
|