Expose partial item search failures and allow query-scoped retries
This commit is contained in:
+15
-5
@@ -26,11 +26,21 @@ export async function kalemleriGetir(ikn, {signal, timeoutMs = 30000} = {}) {
|
||||
}
|
||||
|
||||
/** Kalem metninde arama — eşleşen İKN'ler. */
|
||||
export async function kalemAra(q) {
|
||||
const r = await fetch(`/api/kalem/ara?q=${encodeURIComponent(q)}`);
|
||||
const d = await r.json().catch(() => ({}));
|
||||
if (!d.success) return [];
|
||||
return d.sonuclar || [];
|
||||
export async function kalemAra(q,{signal,timeoutMs=30000}={}) {
|
||||
const controller=new AbortController();
|
||||
const cancel=()=>controller.abort();
|
||||
if(signal?.aborted)cancel();else signal?.addEventListener('abort',cancel,{once:true});
|
||||
let timedOut=false;
|
||||
const timer=setTimeout(()=>{timedOut=true;controller.abort();},timeoutMs);
|
||||
try {
|
||||
const r=await fetch(`/api/kalem/ara?q=${encodeURIComponent(q)}`,{signal:controller.signal});
|
||||
const d=await r.json().catch(()=>null);
|
||||
if(!r.ok || d?.success!==true || !Array.isArray(d.sonuclar))throw new Error('Doküman kalemlerinde arama tamamlanamadı.');
|
||||
return d.sonuclar;
|
||||
} catch(error) {
|
||||
if(timedOut)throw new Error('Doküman kalemlerinde arama zaman aşımına uğradı.');
|
||||
throw error;
|
||||
} finally {clearTimeout(timer);signal?.removeEventListener('abort',cancel);}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user