in packages/search-ui-site-search-connector/src/requestAdapters.ts [46:96]
export function adaptFilterConfig(filters: Filter[]) {
if (!filters || Object.keys(filters).length === 0) return;
return filters.reduce((acc, filter) => {
const fieldName = filter.field;
const fieldValue = filter.values;
if (acc[fieldName]) {
console.warn(
"search-ui-site-search-connector: More than one filter found for a single field"
);
return acc;
}
if (filter.type && filter.type !== "all" && filter.type !== "any") {
console.warn(
`search-ui-site-search-connector: Unsupported filter type "${filter.type}" found, only "all" and "any" are currently supported`
);
return acc;
}
if (fieldValue.find((v) => typeof v === "object") !== undefined) {
if (fieldValue.length > 1) {
console.warn(
"search-ui-site-search-connector: Cannot apply more than 1 none-value filters to a single field"
);
return acc;
}
const firstValue = fieldValue[0];
if (helpers.isFilterValueRange(firstValue)) {
// eslint-disable-next-line
const { name, ...rest } = firstValue;
acc[fieldName] = {
type: "range",
...rest
};
return acc;
} else {
return acc;
}
}
acc[fieldName] = {
...adaptFilterType(filter.type),
values: fieldValue
};
return acc;
}, {});
}