Spaces:
Running
Running
import { addLogEntry } from "./logEntries"; | |
import { getQuerySuggestions, updateQuerySuggestions } from "./pubSub"; | |
export async function getRandomQuerySuggestion() { | |
if (getQuerySuggestions().length === 0) await refillQuerySuggestions(25); | |
const querySuggestions = getQuerySuggestions(); | |
const randomQuerySuggestion = querySuggestions.pop() as string; | |
updateQuerySuggestions(querySuggestions); | |
return randomQuerySuggestion; | |
} | |
async function refillQuerySuggestions(limit?: number) { | |
const querySuggestionsFileUrl = new URL( | |
"/query-suggestions.json", | |
self.location.origin, | |
); | |
const fetchResponse = await fetch(querySuggestionsFileUrl.toString()); | |
const querySuggestionsList: string[] = await fetchResponse.json(); | |
updateQuerySuggestions( | |
querySuggestionsList.sort(() => Math.random() - 0.5).slice(0, limit), | |
); | |
addLogEntry(`Query suggestions refilled with ${limit} suggestions`); | |
} | |