@unchainedshop/core 4.3.5 → 4.3.6
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/bulk-importer/handlers/product/upsertMedia.js +1 -1
- package/lib/bulk-importer/handlers/product/upsertMedia.js.map +1 -1
- package/lib/bulk-importer/upsertAsset.d.ts +1 -1
- package/lib/bulk-importer/upsertAsset.d.ts.map +1 -1
- package/lib/bulk-importer/upsertAsset.js +5 -3
- package/lib/bulk-importer/upsertAsset.js.map +1 -1
- package/lib/directors/FilterDirector.d.ts +2 -2
- package/lib/directors/FilterDirector.d.ts.map +1 -1
- package/lib/directors/FilterDirector.js +14 -11
- package/lib/directors/FilterDirector.js.map +1 -1
- package/lib/services/loadFilterOptions.js +1 -1
- package/lib/services/loadFilterOptions.js.map +1 -1
- package/lib/services/loadFilters.d.ts.map +1 -1
- package/lib/services/loadFilters.js +2 -1
- package/lib/services/loadFilters.js.map +1 -1
- package/package.json +1 -1
- package/src/bulk-importer/handlers/product/upsertMedia.ts +1 -1
- package/src/bulk-importer/upsertAsset.ts +6 -3
- package/src/directors/FilterDirector.ts +31 -32
- package/src/services/loadFilterOptions.ts +1 -1
- package/src/services/loadFilters.ts +3 -1
|
@@ -28,11 +28,11 @@ const upsertProductMedia = async (productMedia, { modules }) => {
|
|
|
28
28
|
export default async function upsertMedia({ media, productId }, unchainedAPI) {
|
|
29
29
|
const { modules } = unchainedAPI;
|
|
30
30
|
const productMediaObjects = await Promise.all(media.map(async ({ asset, content, ...mediaData }) => {
|
|
31
|
-
const tags = mediaData?.tags ? convertTagsToLowerCase(mediaData?.tags) : [];
|
|
32
31
|
const file = await upsertAsset('product-media', { meta: { ...(asset.meta || {}), productId }, ...asset }, unchainedAPI);
|
|
33
32
|
if (!file)
|
|
34
33
|
throw new Error(`Unable to create binary ${asset._id}`);
|
|
35
34
|
const fileId = file._id;
|
|
35
|
+
const tags = mediaData?.tags ? convertTagsToLowerCase(mediaData?.tags) : [];
|
|
36
36
|
const productMedia = await upsertProductMedia({
|
|
37
37
|
...mediaData,
|
|
38
38
|
tags,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upsertMedia.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/product/upsertMedia.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,sBAAsB,MAAM,oCAAoC,CAAC;AACxE,OAAO,WAAW,EAAE,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,KAAK,EAAE,WAAW;IAClB,OAAO,EAAE,CAAC;SACP,MAAM,CACL,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS;IACrB,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAChC,CAAC,CACH;SACA,QAAQ,EAAE;IACb,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,KAAK,EAAE,YAA0B,EAAE,EAAE,OAAO,EAAwB,EAAE,EAAE;IACjG,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1E,OAAO,eAAe,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,EAAE,GAAG,EAAE,GAAG,gBAAgB,EAAE,GAAG,YAAY,CAAC;QAClD,MAAM,cAAc,GAAG,GAAG,CAAC;QAC3B,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IACzE,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,WAAW,CACvC,EAAE,KAAK,EAAE,SAAS,EAA+D,EACjF,YAAsD;IAEtD,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;IAEjC,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC3C,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"upsertMedia.js","sourceRoot":"","sources":["../../../../src/bulk-importer/handlers/product/upsertMedia.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,6 @@ export declare const AssetSchema: z.ZodObject<{
|
|
|
11
11
|
declare const upsertAsset: (directoryName: string, asset: z.infer<typeof AssetSchema>, unchainedAPI: {
|
|
12
12
|
modules: Modules;
|
|
13
13
|
services: Services;
|
|
14
|
-
}) => Promise<import("@unchainedshop/core-files").File | null>;
|
|
14
|
+
}) => Promise<import("@unchainedshop/core-files").File | null | undefined>;
|
|
15
15
|
export default upsertAsset;
|
|
16
16
|
//# sourceMappingURL=upsertAsset.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upsertAsset.d.ts","sourceRoot":"","sources":["../../src/bulk-importer/upsertAsset.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"upsertAsset.d.ts","sourceRoot":"","sources":["../../src/bulk-importer/upsertAsset.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,WAAW;;;;;;iBAMtB,CAAC;AAEH,QAAA,MAAM,WAAW,GACf,eAAe,MAAM,EACrB,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAClC,cAAc;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,yEAgCvD,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { createLogger } from '@unchainedshop/logger';
|
|
1
2
|
import { z } from 'zod';
|
|
3
|
+
const logger = createLogger('unchained:bulk-import');
|
|
2
4
|
export const AssetSchema = z.object({
|
|
3
5
|
_id: z.string().optional(),
|
|
4
6
|
url: z.string(),
|
|
@@ -30,10 +32,10 @@ const upsertAsset = async (directoryName, asset, unchainedAPI) => {
|
|
|
30
32
|
meta,
|
|
31
33
|
});
|
|
32
34
|
if (!assetObject)
|
|
33
|
-
|
|
34
|
-
return assetObject;
|
|
35
|
+
return null;
|
|
35
36
|
}
|
|
36
|
-
catch {
|
|
37
|
+
catch (e) {
|
|
38
|
+
logger.warn(`Unable to upsert asset ${fileId || fileName}: ${e.message}`);
|
|
37
39
|
return null;
|
|
38
40
|
}
|
|
39
41
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upsertAsset.js","sourceRoot":"","sources":["../../src/bulk-importer/upsertAsset.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"upsertAsset.js","sourceRoot":"","sources":["../../src/bulk-importer/upsertAsset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAC;AAErD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;CAClD,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,KAAK,EACvB,aAAqB,EACrB,KAAkC,EAClC,YAAsD,EACtD,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC;IAC3C,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAE1E,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1E,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/D,OAAO,YAAY,CAAC;YACtB,CAAC;YACD,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;YAC3D,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7D,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC;YACzD,aAAa;YACb,SAAS,EAAE;gBACT,QAAQ,EAAE,GAAG;gBACb,QAAQ;gBACR,MAAM;gBACN,OAAO;aACR;YACD,IAAI;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;IAChC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC,0BAA0B,MAAM,IAAI,QAAQ,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -23,11 +23,11 @@ export type IFilterDirector = IBaseDirector<IFilterAdapter> & {
|
|
|
23
23
|
forceLiveCollection?: boolean;
|
|
24
24
|
}, unchainedAPI: {
|
|
25
25
|
modules: Modules;
|
|
26
|
-
}) => Promise<string
|
|
26
|
+
}) => Promise<Set<string>>;
|
|
27
27
|
filterFacets: (filter: Filter, params: {
|
|
28
28
|
searchQuery: SearchQuery;
|
|
29
29
|
forceLiveCollection?: boolean;
|
|
30
|
-
|
|
30
|
+
allProductIdSet: Set<string>;
|
|
31
31
|
otherFilters: Filter[];
|
|
32
32
|
}, unchainedAPI: {
|
|
33
33
|
modules: Modules;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterDirector.d.ts","sourceRoot":"","sources":["../../src/directors/FilterDirector.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,EACL,MAAM,EAGN,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACZ,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,eAAO,MAAM,eAAe,GAAI,QAAQ,iBAAiB,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAOhF,CAAC;AAEJ,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC,cAAc,CAAC,GAAG;IAC5D,OAAO,EAAE,CACP,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAC/B,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnC,wBAAwB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChG,cAAc,EAAE,CACd,MAAM,EAAE,MAAM,EACd,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;KAAE,EACvC,YAAY,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAC/B,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACvB,iBAAiB,EAAE,CACjB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAC/B,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACnD,gBAAgB,EAAE,CAChB,MAAM,EAAE,MAAM,EACd,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAE,EACpF,YAAY,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAC/B,OAAO,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"FilterDirector.d.ts","sourceRoot":"","sources":["../../src/directors/FilterDirector.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,EACL,MAAM,EAGN,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACZ,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,eAAO,MAAM,eAAe,GAAI,QAAQ,iBAAiB,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAOhF,CAAC;AAEJ,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC,cAAc,CAAC,GAAG;IAC5D,OAAO,EAAE,CACP,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAC/B,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnC,wBAAwB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChG,cAAc,EAAE,CACd,MAAM,EAAE,MAAM,EACd,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;KAAE,EACvC,YAAY,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAC/B,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACvB,iBAAiB,EAAE,CACjB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAC/B,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACnD,gBAAgB,EAAE,CAChB,MAAM,EAAE,MAAM,EACd,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAE,EACpF,YAAY,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAC/B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAE1B,YAAY,EAAE,CACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE;QACN,WAAW,EAAE,WAAW,CAAC;QACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7B,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,EACD,YAAY,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAC/B,OAAO,CAAC;QACX,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,yBAAyB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;KACtC,CAAC,CAAC;IAEH,oBAAoB,EAAE,CACpB,UAAU,EAAE,MAAM,EAAE,EACpB,mBAAmB,EAAE,mBAAmB,EACxC,YAAY,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAC/B,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACxB,CAAC;AAMF,eAAO,MAAM,cAAc,EAAE,eAmP5B,CAAC"}
|
|
@@ -87,11 +87,14 @@ export const FilterDirector = {
|
|
|
87
87
|
const [allProductIds, keyToProductIdMap] = (!forceLiveCollection && (await filtersSettings.getCachedProductIds(filter._id))) ||
|
|
88
88
|
(await this.buildProductIdMap(filter, unchainedAPI));
|
|
89
89
|
const filteredKeys = unchainedAPI.modules.filters.parse(filter, values, Object.keys(keyToProductIdMap));
|
|
90
|
-
|
|
90
|
+
if (filteredKeys.includes(undefined))
|
|
91
|
+
return new Set(allProductIds);
|
|
92
|
+
const result = new Set();
|
|
91
93
|
for (const key of filteredKeys) {
|
|
92
|
-
const additionalValues =
|
|
94
|
+
const additionalValues = keyToProductIdMap[key];
|
|
93
95
|
if (additionalValues) {
|
|
94
|
-
|
|
96
|
+
for (const val of additionalValues)
|
|
97
|
+
result.add(val);
|
|
95
98
|
}
|
|
96
99
|
}
|
|
97
100
|
return result;
|
|
@@ -118,12 +121,12 @@ export const FilterDirector = {
|
|
|
118
121
|
values,
|
|
119
122
|
forceLiveCollection,
|
|
120
123
|
}, unchainedAPI);
|
|
121
|
-
return productIdSet.intersection(
|
|
124
|
+
return productIdSet.intersection(filterOptionProductIds);
|
|
122
125
|
}, Promise.resolve(new Set(productIds)));
|
|
123
126
|
return [...intersectedProductIds];
|
|
124
127
|
},
|
|
125
128
|
async filterFacets(filter, params, unchainedAPI) {
|
|
126
|
-
const {
|
|
129
|
+
const { allProductIdSet, searchQuery, forceLiveCollection, otherFilters } = params;
|
|
127
130
|
const filterQueryParsed = parseQueryArray(searchQuery.filterQuery);
|
|
128
131
|
// The examinedProductIdSet is a set of product id's that:
|
|
129
132
|
// - Fit this filter generally
|
|
@@ -132,9 +135,10 @@ export const FilterDirector = {
|
|
|
132
135
|
values: [undefined],
|
|
133
136
|
forceLiveCollection,
|
|
134
137
|
}, unchainedAPI);
|
|
135
|
-
|
|
138
|
+
// Optimize: Create Set from allProductIds, iterate through smaller filteredProductIds
|
|
139
|
+
const examinedProductIdSet = allProductIdSet.intersection(filteredProductIds);
|
|
136
140
|
const values = filterQueryParsed[filter.key];
|
|
137
|
-
// The
|
|
141
|
+
// The filteredProductIds is a set of product id's that:
|
|
138
142
|
// - Are filtered by all other filters
|
|
139
143
|
// - Are filtered by the currently selected value of this filter
|
|
140
144
|
// or if there is no currently selected value:
|
|
@@ -151,15 +155,14 @@ export const FilterDirector = {
|
|
|
151
155
|
values: filterQueryParsed[otherFilter.key],
|
|
152
156
|
forceLiveCollection,
|
|
153
157
|
}, unchainedAPI);
|
|
154
|
-
return productIdSet.intersection(
|
|
155
|
-
}, Promise.resolve(
|
|
156
|
-
const
|
|
158
|
+
return productIdSet.intersection(otherFilterProductIds);
|
|
159
|
+
}, Promise.resolve(examinedProductIdSet));
|
|
160
|
+
const filteredByThisFilterSet = values
|
|
157
161
|
? await this.filterProductIds(filter, {
|
|
158
162
|
values,
|
|
159
163
|
forceLiveCollection,
|
|
160
164
|
}, unchainedAPI)
|
|
161
165
|
: filteredProductIds;
|
|
162
|
-
const filteredByThisFilterSet = new Set(filterProductIdsForValues);
|
|
163
166
|
return {
|
|
164
167
|
examinedProductIdSet,
|
|
165
168
|
filteredByOtherFiltersSet,
|
|
@@ -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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"}
|
|
@@ -10,7 +10,7 @@ export async function loadFilterOptionsService(filter, params) {
|
|
|
10
10
|
values: [value],
|
|
11
11
|
forceLiveCollection,
|
|
12
12
|
}, { modules: this });
|
|
13
|
-
const filteredProductIdSet = productIdSet.intersection(
|
|
13
|
+
const filteredProductIdSet = productIdSet.intersection(filterOptionProductIds);
|
|
14
14
|
const normalizedValues = values && this.filters.parse(filter, values, [value]);
|
|
15
15
|
const isSelected = normalizedValues && normalizedValues.indexOf(value) !== -1;
|
|
16
16
|
if (!filteredProductIdSet.size && !isSelected) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadFilterOptions.js","sourceRoot":"","sources":["../../src/services/loadFilterOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAuB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjF,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAE5C,MAAc,EACd,MAIC;IAED,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAElE,MAAM,iBAAiB,GAAG,eAAe,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAE7C,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACpG,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC7B,MAAM,sBAAsB,GAAG,MAAM,cAAc,CAAC,gBAAgB,CAClE,MAAM,EACN;YACE,MAAM,EAAE,CAAC,KAAK,CAAC;YACf,mBAAmB;SACpB,EACD,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAC;QACF,MAAM,oBAAoB,GAAG,YAAY,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"loadFilterOptions.js","sourceRoot":"","sources":["../../src/services/loadFilterOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAuB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjF,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAE5C,MAAc,EACd,MAIC;IAED,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAElE,MAAM,iBAAiB,GAAG,eAAe,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAE7C,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACpG,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC7B,MAAM,sBAAsB,GAAG,MAAM,cAAc,CAAC,gBAAgB,CAClE,MAAM,EACN;YACE,MAAM,EAAE,CAAC,KAAK,CAAC;YACf,mBAAmB;SACpB,EACD,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAC;QACF,MAAM,oBAAoB,GAAG,YAAY,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;QAE/E,MAAM,gBAAgB,GAAG,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/E,MAAM,UAAU,GAAG,gBAAgB,IAAI,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAE9E,IAAI,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,oBAAoB;YACpB,WAAW;YACX,KAAK;YACL,MAAM;YACN,UAAU;SACX,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IACF,OAAO,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -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,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;;;;;;;
|
|
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;;;;;;;KAiDF"}
|
|
@@ -16,11 +16,12 @@ export async function loadFiltersService(searchQuery, options) {
|
|
|
16
16
|
const rightIndex = extractedFilterIds.indexOf(right._id);
|
|
17
17
|
return leftIndex - rightIndex;
|
|
18
18
|
});
|
|
19
|
+
const allProductIdSet = new Set(options.productIds || []);
|
|
19
20
|
return Promise.all(sortedFilters.map(async (filter) => {
|
|
20
21
|
const { examinedProductIdSet, filteredByOtherFiltersSet, filteredByThisFilterSet } = await FilterDirector.filterFacets(filter, {
|
|
21
22
|
searchQuery,
|
|
22
23
|
forceLiveCollection: !!options.forceLiveCollection,
|
|
23
|
-
|
|
24
|
+
allProductIdSet,
|
|
24
25
|
otherFilters: sortedFilters,
|
|
25
26
|
}, { modules: this });
|
|
26
27
|
return {
|
|
@@ -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,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,
|
|
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,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAE1D,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,eAAe;YACf,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"}
|
package/package.json
CHANGED
|
@@ -40,7 +40,6 @@ export default async function upsertMedia(
|
|
|
40
40
|
|
|
41
41
|
const productMediaObjects = await Promise.all(
|
|
42
42
|
media.map(async ({ asset, content, ...mediaData }) => {
|
|
43
|
-
const tags = mediaData?.tags ? convertTagsToLowerCase(mediaData?.tags)! : [];
|
|
44
43
|
const file = await upsertAsset(
|
|
45
44
|
'product-media',
|
|
46
45
|
{ meta: { ...(asset.meta || {}), productId }, ...asset },
|
|
@@ -48,6 +47,7 @@ export default async function upsertMedia(
|
|
|
48
47
|
);
|
|
49
48
|
if (!file) throw new Error(`Unable to create binary ${asset._id}`);
|
|
50
49
|
const fileId = file._id;
|
|
50
|
+
const tags = mediaData?.tags ? convertTagsToLowerCase(mediaData?.tags)! : [];
|
|
51
51
|
const productMedia = await upsertProductMedia(
|
|
52
52
|
{
|
|
53
53
|
...mediaData,
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import { createLogger } from '@unchainedshop/logger';
|
|
1
2
|
import { Modules } from '../modules.js';
|
|
2
3
|
import { Services } from '../services/index.js';
|
|
3
4
|
import { z } from 'zod';
|
|
4
5
|
|
|
6
|
+
const logger = createLogger('unchained:bulk-import');
|
|
7
|
+
|
|
5
8
|
export const AssetSchema = z.object({
|
|
6
9
|
_id: z.string().optional(),
|
|
7
10
|
url: z.string(),
|
|
@@ -40,9 +43,9 @@ const upsertAsset = async (
|
|
|
40
43
|
meta,
|
|
41
44
|
});
|
|
42
45
|
|
|
43
|
-
if (!assetObject)
|
|
44
|
-
|
|
45
|
-
|
|
46
|
+
if (!assetObject) return null;
|
|
47
|
+
} catch (e) {
|
|
48
|
+
logger.warn(`Unable to upsert asset ${fileId || fileName}: ${e.message}`);
|
|
46
49
|
return null;
|
|
47
50
|
}
|
|
48
51
|
};
|
|
@@ -40,14 +40,14 @@ export type IFilterDirector = IBaseDirector<IFilterAdapter> & {
|
|
|
40
40
|
filter: Filter,
|
|
41
41
|
{ values, forceLiveCollection }: { values: string[]; forceLiveCollection?: boolean },
|
|
42
42
|
unchainedAPI: { modules: Modules },
|
|
43
|
-
) => Promise<string
|
|
43
|
+
) => Promise<Set<string>>;
|
|
44
44
|
|
|
45
45
|
filterFacets: (
|
|
46
46
|
filter: Filter,
|
|
47
47
|
params: {
|
|
48
48
|
searchQuery: SearchQuery;
|
|
49
49
|
forceLiveCollection?: boolean;
|
|
50
|
-
|
|
50
|
+
allProductIdSet: Set<string>;
|
|
51
51
|
otherFilters: Filter[];
|
|
52
52
|
},
|
|
53
53
|
unchainedAPI: { modules: Modules },
|
|
@@ -177,7 +177,7 @@ export const FilterDirector: IFilterDirector = {
|
|
|
177
177
|
filter: Filter,
|
|
178
178
|
{ values, forceLiveCollection }: { values: string[]; forceLiveCollection?: boolean },
|
|
179
179
|
unchainedAPI: { modules: Modules },
|
|
180
|
-
) {
|
|
180
|
+
): Promise<Set<string>> {
|
|
181
181
|
const [allProductIds, keyToProductIdMap]: [string[], Record<string, string[]>] =
|
|
182
182
|
(!forceLiveCollection && (await filtersSettings.getCachedProductIds(filter._id))) ||
|
|
183
183
|
(await this.buildProductIdMap(filter, unchainedAPI));
|
|
@@ -187,11 +187,14 @@ export const FilterDirector: IFilterDirector = {
|
|
|
187
187
|
values,
|
|
188
188
|
Object.keys(keyToProductIdMap),
|
|
189
189
|
);
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
190
|
+
|
|
191
|
+
if (filteredKeys.includes(undefined)) return new Set(allProductIds);
|
|
192
|
+
|
|
193
|
+
const result = new Set<string>();
|
|
194
|
+
for (const key of filteredKeys as string[]) {
|
|
195
|
+
const additionalValues = keyToProductIdMap[key];
|
|
193
196
|
if (additionalValues) {
|
|
194
|
-
result.
|
|
197
|
+
for (const val of additionalValues) result.add(val);
|
|
195
198
|
}
|
|
196
199
|
}
|
|
197
200
|
return result;
|
|
@@ -233,7 +236,7 @@ export const FilterDirector: IFilterDirector = {
|
|
|
233
236
|
unchainedAPI,
|
|
234
237
|
);
|
|
235
238
|
|
|
236
|
-
return productIdSet.intersection(
|
|
239
|
+
return productIdSet.intersection(filterOptionProductIds);
|
|
237
240
|
},
|
|
238
241
|
Promise.resolve(new Set(productIds)),
|
|
239
242
|
);
|
|
@@ -242,7 +245,7 @@ export const FilterDirector: IFilterDirector = {
|
|
|
242
245
|
},
|
|
243
246
|
|
|
244
247
|
async filterFacets(filter, params, unchainedAPI) {
|
|
245
|
-
const {
|
|
248
|
+
const { allProductIdSet, searchQuery, forceLiveCollection, otherFilters } = params;
|
|
246
249
|
|
|
247
250
|
const filterQueryParsed = parseQueryArray(searchQuery.filterQuery);
|
|
248
251
|
|
|
@@ -258,35 +261,33 @@ export const FilterDirector: IFilterDirector = {
|
|
|
258
261
|
unchainedAPI,
|
|
259
262
|
);
|
|
260
263
|
|
|
261
|
-
|
|
264
|
+
// Optimize: Create Set from allProductIds, iterate through smaller filteredProductIds
|
|
265
|
+
const examinedProductIdSet = allProductIdSet.intersection(filteredProductIds);
|
|
262
266
|
const values = filterQueryParsed[filter.key];
|
|
263
267
|
|
|
264
|
-
// The
|
|
268
|
+
// The filteredProductIds is a set of product id's that:
|
|
265
269
|
// - Are filtered by all other filters
|
|
266
270
|
// - Are filtered by the currently selected value of this filter
|
|
267
271
|
// or if there is no currently selected value:
|
|
268
272
|
// - Is the same like examinedProductIdSet
|
|
269
273
|
const filteredByOtherFiltersSet = await otherFilters
|
|
270
274
|
.filter((otherFilter) => otherFilter.key !== filter.key)
|
|
271
|
-
.reduce(
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
);
|
|
288
|
-
|
|
289
|
-
const filterProductIdsForValues = values
|
|
275
|
+
.reduce(async (productIdSetPromise, otherFilter) => {
|
|
276
|
+
if (otherFilter.key === filter.key) return productIdSetPromise;
|
|
277
|
+
if (!filterQueryParsed[otherFilter.key]) return productIdSetPromise;
|
|
278
|
+
const productIdSet = await productIdSetPromise;
|
|
279
|
+
const otherFilterProductIds = await this.filterProductIds(
|
|
280
|
+
otherFilter,
|
|
281
|
+
{
|
|
282
|
+
values: filterQueryParsed[otherFilter.key],
|
|
283
|
+
forceLiveCollection,
|
|
284
|
+
},
|
|
285
|
+
unchainedAPI,
|
|
286
|
+
);
|
|
287
|
+
return productIdSet.intersection(otherFilterProductIds);
|
|
288
|
+
}, Promise.resolve(examinedProductIdSet));
|
|
289
|
+
|
|
290
|
+
const filteredByThisFilterSet = values
|
|
290
291
|
? await this.filterProductIds(
|
|
291
292
|
filter,
|
|
292
293
|
{
|
|
@@ -297,8 +298,6 @@ export const FilterDirector: IFilterDirector = {
|
|
|
297
298
|
)
|
|
298
299
|
: filteredProductIds;
|
|
299
300
|
|
|
300
|
-
const filteredByThisFilterSet = new Set<string>(filterProductIdsForValues);
|
|
301
|
-
|
|
302
301
|
return {
|
|
303
302
|
examinedProductIdSet,
|
|
304
303
|
filteredByOtherFiltersSet,
|
|
@@ -27,7 +27,7 @@ export async function loadFilterOptionsService(
|
|
|
27
27
|
},
|
|
28
28
|
{ modules: this },
|
|
29
29
|
);
|
|
30
|
-
const filteredProductIdSet = productIdSet.intersection(
|
|
30
|
+
const filteredProductIdSet = productIdSet.intersection(filterOptionProductIds);
|
|
31
31
|
|
|
32
32
|
const normalizedValues = values && this.filters.parse(filter, values, [value]);
|
|
33
33
|
const isSelected = normalizedValues && normalizedValues.indexOf(value) !== -1;
|
|
@@ -33,6 +33,8 @@ export async function loadFiltersService(
|
|
|
33
33
|
return leftIndex - rightIndex;
|
|
34
34
|
});
|
|
35
35
|
|
|
36
|
+
const allProductIdSet = new Set(options.productIds || []);
|
|
37
|
+
|
|
36
38
|
return Promise.all(
|
|
37
39
|
sortedFilters.map(async (filter) => {
|
|
38
40
|
const { examinedProductIdSet, filteredByOtherFiltersSet, filteredByThisFilterSet } =
|
|
@@ -41,7 +43,7 @@ export async function loadFiltersService(
|
|
|
41
43
|
{
|
|
42
44
|
searchQuery,
|
|
43
45
|
forceLiveCollection: !!options.forceLiveCollection,
|
|
44
|
-
|
|
46
|
+
allProductIdSet,
|
|
45
47
|
otherFilters: sortedFilters,
|
|
46
48
|
},
|
|
47
49
|
{ modules: this },
|