Changed XHR error handling
All checks were successful
Build / Build NPM Project (push) Successful in 1m13s
Build / Tag Version (push) Successful in 16s
Build / Publish (push) Successful in 22s

This commit is contained in:
2024-05-31 13:42:28 -04:00
parent 07606cd996
commit 6f60f8bd94
3 changed files with 13 additions and 7 deletions

View File

@ -75,10 +75,16 @@ export class XHR {
await new Promise<void>(res => fn(resp, () => res()));
}
if(!resp.ok) throw new Error(resp.statusText);
if(!opts.skipConverting && resp.headers.get('Content-Type')?.startsWith('application/json')) return await resp.json();
if(!opts.skipConverting && resp.headers.get('Content-Type')?.startsWith('text/plain')) return await <any>resp.text();
return resp;
const decode = async () => {
if(!opts.skipConverting && resp.headers.get('Content-Type')?.startsWith('application/json')) return await resp.json();
if(!opts.skipConverting && resp.headers.get('Content-Type')?.startsWith('text/plain')) return await <any>resp.text();
return resp;
}
const payload = await decode();
if(resp.ok) return payload;
const text = resp.statusText || (typeof payload == 'string' ? payload : null);
throw (text ? new Error(text) : payload);
});
}
}