export function adaptFacetConfig()

in packages/search-ui-site-search-connector/src/requestAdapters.ts [11:44]


export function adaptFacetConfig(facets: Record<string, FacetConfiguration>) {
  if (!facets) return;

  const convertInvalidFacetsToUndefined = ([fieldName, config]: [
    string,
    FacetConfiguration
  ]): [string, FacetConfiguration] | undefined => {
    if (config.type != "value") {
      console.warn(
        `search-ui-site-search-connector: Dropping ${fieldName} facet, only value facets are supported in Site Search`
      );
      return undefined;
    }
    if ((config as any).sort) {
      console.warn(
        "search-ui-site-search-connector: Site Search does not support 'sort' on facets"
      );
    }
    if (config.size) {
      console.warn(
        "search-ui-site-search-connector: Site Search does not support 'size' on facets"
      );
    }
    return [fieldName, config];
  };

  const config = Object.entries(facets)
    .map(convertInvalidFacetsToUndefined)
    .filter((v) => v) // filter out undefined
    .map(([key]) => key); // get keys

  if (!config.length) return;
  return config;
}