Compare commits

..

2 Commits

Author SHA1 Message Date
6f60f8bd94 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
2024-05-31 13:42:28 -04:00
07606cd996 Removed custom errors from xhr helper
All checks were successful
Build / Build NPM Project (push) Successful in 1m14s
Build / Tag Version (push) Successful in 16s
Build / Publish (push) Successful in 23s
2024-05-31 12:37:01 -04:00
3 changed files with 13 additions and 18 deletions

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{ {
"name": "@ztimson/utils", "name": "@ztimson/utils",
"version": "0.4.0", "version": "0.10.4",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@ztimson/utils", "name": "@ztimson/utils",
"version": "0.4.0", "version": "0.10.4",
"license": "MIT", "license": "MIT",
"devDependencies": { "devDependencies": {
"@types/jest": "^29.5.12", "@types/jest": "^29.5.12",

View File

@ -1,6 +1,6 @@
{ {
"name": "@ztimson/utils", "name": "@ztimson/utils",
"version": "0.10.1", "version": "0.10.4",
"description": "Utility library", "description": "Utility library",
"author": "Zak Timson", "author": "Zak Timson",
"license": "MIT", "license": "MIT",

View File

@ -75,21 +75,16 @@ export class XHR {
await new Promise<void>(res => fn(resp, () => res())); await new Promise<void>(res => fn(resp, () => res()));
} }
if(!resp.ok) throw new Error(resp.statusText); 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('application/json')) return await resp.json();
if(!opts.skipConverting && resp.headers.get('Content-Type')?.startsWith('text/plain')) return await <any>resp.text(); if(!opts.skipConverting && resp.headers.get('Content-Type')?.startsWith('text/plain')) return await <any>resp.text();
return resp; 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);
}); });
} }
} }
XHR.addInterceptor((resp: Response, next: () => void) => {
const getErr = (e: any) => e.error?.message || e.reason?.message || e.message || e.statusText || e.toString();
if(resp.status == 200) return next();
if(resp.status == 400) throw new BadRequestError(getErr(resp));
if(resp.status == 401) throw new UnauthorizedError(getErr(resp));
if(resp.status == 403) throw new ForbiddenError(getErr(resp));
if(resp.status == 404) throw new NotFoundError(getErr(resp));
if(resp.status == 500) throw new InternalServerError(getErr(resp));
throw new CustomError(getErr(resp), resp.status);
});