UNPKG

@vectara/vectara-ui

Version:

Vectara's design system, codified as a React and Sass component library

20 lines (19 loc) 862 B
export const applyCitationOrder = (searchResults, unorderedSummary) => { const orderedSearchResults = []; const citations = unorderedSummary.match(/\[\d+\]/g) || []; const addedCitations = new Set(); for (let i = 0; i < citations.length; i++) { const citation = citations[i]; // Ignore citations that have already been added. if (addedCitations.has(citation)) continue; // Extract index from [INDEX] format. const citationIndex = Number(citation.slice(1, citation.length - 1)) - 1; // Ignore citations that are out of range of the search results. if (citationIndex < 0 || citationIndex >= searchResults.length) continue; orderedSearchResults.push(searchResults[citationIndex]); addedCitations.add(citation); } return orderedSearchResults; };