(feat/search): debounce and abort previous pending req

This commit is contained in:
ManishMadan2882
2024-11-19 04:25:54 +05:30
parent 8641a91182
commit 91239820e3
2 changed files with 61 additions and 43 deletions

View File

@@ -1,34 +1,37 @@
import { Result } from "@/types";
async function getSearchResults(question: string, apiKey:string, apiHost:string): Promise<Result[]> {
const payload = {
question,
api_key:apiKey
};
try {
const response = await fetch(`${apiHost}/api/search`, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(payload),
});
if (!response.ok) {
throw new Error(`Error: ${response.status}`);
}
const data: Result[] = await response.json();
return data;
} catch (error) {
console.error("Failed to fetch documents:", error);
throw error;
async function getSearchResults(question: string, apiKey: string, apiHost: string, signal: AbortSignal): Promise<Result[]> {
const payload = {
question,
api_key: apiKey
};
try {
const response = await fetch(`${apiHost}/api/search`, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(payload),
signal: signal
});
if (!response.ok) {
throw new Error(`Error: ${response.status}`);
}
const data: Result[] = await response.json();
return data;
} catch (error) {
if (!(error instanceof DOMException && error.name == "AbortError")) {
console.error("Failed to fetch documents:", error);
}
throw error;
}
export {
getSearchResults
}
}
export {
getSearchResults
}