export function getFilters()

in packages/search-ui-engines-connector/src/handlers/search/Request.ts [14:41]


export function getFilters(
  filters: Filter[] = [],
  baseFilters: Filter[] = []
): MixedFilter[] {
  return filters.reduce((acc, f) => {
    const isBaseFilter = baseFilters.includes(f);
    if (isBaseFilter) return acc;

    const subFilters = f.values.map((v) => {
      if (helpers.isFilterValueRange(v)) {
        return {
          identifier: f.field,
          ...(isValidDateString(v.from)
            ? { dateMin: v.from }
            : { min: v.from }),
          ...(isValidDateString(v.to) ? { dateMax: v.to } : { max: v.to })
        };
      }

      return {
        identifier: f.field,
        value: v
      };
    });

    return [...acc, ...subFilters];
  }, []);
}