Fixed fetch errors
All checks were successful
Build / Build NPM Project (push) Successful in 1m27s
Build / Tag Version (push) Successful in 18s
Build / Publish (push) Successful in 26s

This commit is contained in:
Zakary Timson 2024-05-31 10:04:51 -04:00
parent 9350c837e5
commit 3ca956e531
3 changed files with 20 additions and 13 deletions

View File

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

View File

@ -1,15 +1,3 @@
import {XHR} from './xhr';
XHR.addInterceptor((resp: Response, next: () => void) => {
if(resp.status == 200) return next();
if(resp.status == 400) throw new BadRequestError(resp.statusText);
if(resp.status == 401) throw new UnauthorizedError(resp.statusText);
if(resp.status == 403) throw new ForbiddenError(resp.statusText);
if(resp.status == 404) throw new NotFoundError(resp.statusText);
if(resp.status == 500) throw new InternalServerError(resp.statusText);
throw new CustomError(resp.statusText, resp.status);
});
export class CustomError extends Error {
static code = 500;

View File

@ -1,3 +1,11 @@
import {
BadRequestError,
CustomError,
ForbiddenError,
InternalServerError,
NotFoundError,
UnauthorizedError
} from './errors.ts';
import {clean} from './objects';
export type Interceptor = (request: Response, next: () => void) => void;
@ -74,3 +82,14 @@ export class XHR {
});
}
}
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);
});