UNPKG

@redocly/portal-plugin-soap-api

Version:

SOAP API plugin for Redocly products

45 lines (35 loc) 1.23 kB
const SEARCH_GROUP_FIELD = 'redocly_category'; const SEARCH_GROUP_NAME_API = 'API Reference'; export function setDocumentSearchFacets( actions: any, documentSearchFacets: { [key: string]: string | Set<string> }, ) { const searchFacets = actions.getSearchFacets(); for (const [key, value] of Object.entries(documentSearchFacets)) { const facet = searchFacets.get(key); if (facet) { const facetValues = new Set((facet.values as string[]) ?? []); if (value instanceof Set) { [...value].forEach((v) => (facet.values = Array.from(facetValues.add(v)))); } else { facet.values = Array.from(facetValues.add(value)); } } } actions.setSearchFacets(searchFacets); } export function extractDocumentSearchFacets( actions: any, metadata?: Record<string, unknown>, ): { [key: string]: string } { const searchFacets: { [key: string]: string } = { [SEARCH_GROUP_FIELD]: SEARCH_GROUP_NAME_API, }; if (!metadata) return searchFacets; const targetSearchFacets = actions.getSearchFacets(); for (const [key, value] of Object.entries(metadata)) { if (!targetSearchFacets.has(key)) continue; searchFacets[key] = String(value); } return searchFacets; }