UNPKG

@meilisearch/instant-meilisearch

Version:
42 lines 1.65 kB
function getFacetNames(facets) { if (!facets) return []; else if (typeof facets === 'string') return [facets]; return facets; } // Fills the missing facetValue in the current facet distribution if `keepZeroFacet` is true // using the initial facet distribution. Ex: // // Initial distribution: { genres: { horror: 10, comedy: 4 } } // Current distribution: { genres: { horror: 3 }} // Returned distribution: { genres: { horror: 3, comedy: 0 }} function fillMissingFacetValues(facets, initialFacetDistribution, facetDistribution) { const facetNames = getFacetNames(facets); const filledDistribution = {}; for (const facet of facetNames) { for (const facetValue in initialFacetDistribution[facet]) { if (!filledDistribution[facet]) { // initialize sub object filledDistribution[facet] = facetDistribution[facet] || {}; } if (!filledDistribution[facet][facetValue]) { filledDistribution[facet][facetValue] = 0; } else { filledDistribution[facet][facetValue] = facetDistribution[facet][facetValue]; } } } return filledDistribution; } function adaptFacetDistribution(keepZeroFacets, facets, initialFacetDistribution, facetDistribution) { if (keepZeroFacets) { facetDistribution = facetDistribution || {}; return fillMissingFacetValues(facets, initialFacetDistribution, facetDistribution); } return facetDistribution; } export { adaptFacetDistribution }; //# sourceMappingURL=facet-distribution-adapter.js.map