Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
adcd6eaf79 | |||
afb6ca0803 | |||
e699f8a634 | |||
c7dd91e9cd |
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "@ztimson/utils",
|
"name": "@ztimson/utils",
|
||||||
"version": "0.15.1",
|
"version": "0.15.3",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@ztimson/utils",
|
"name": "@ztimson/utils",
|
||||||
"version": "0.15.1",
|
"version": "0.15.3",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^29.5.12",
|
"@types/jest": "^29.5.12",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ztimson/utils",
|
"name": "@ztimson/utils",
|
||||||
"version": "0.15.2",
|
"version": "0.15.5",
|
||||||
"description": "Utility library",
|
"description": "Utility library",
|
||||||
"author": "Zak Timson",
|
"author": "Zak Timson",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
122
src/errors.ts
122
src/errors.ts
@ -53,6 +53,18 @@ export class UnauthorizedError extends CustomError {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class PaymentRequiredError extends CustomError {
|
||||||
|
static code = 402;
|
||||||
|
|
||||||
|
constructor(message: string = 'Payment Required') {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
static instanceof(err: Error) {
|
||||||
|
return (<any>err).constructor.code == this.code;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export class ForbiddenError extends CustomError {
|
export class ForbiddenError extends CustomError {
|
||||||
static code = 403;
|
static code = 403;
|
||||||
|
|
||||||
@ -77,6 +89,30 @@ export class NotFoundError extends CustomError {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class MethodNotAllowedError extends CustomError {
|
||||||
|
static code = 405;
|
||||||
|
|
||||||
|
constructor(message: string = 'Method Not Allowed') {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
static instanceof(err: Error) {
|
||||||
|
return (<any>err).constructor.code == this.code;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class NotAcceptableError extends CustomError {
|
||||||
|
static code = 406;
|
||||||
|
|
||||||
|
constructor(message: string = 'Not Acceptable') {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
static instanceof(err: Error) {
|
||||||
|
return (<any>err).constructor.code == this.code;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export class InternalServerError extends CustomError {
|
export class InternalServerError extends CustomError {
|
||||||
static code = 500;
|
static code = 500;
|
||||||
|
|
||||||
@ -88,3 +124,89 @@ export class InternalServerError extends CustomError {
|
|||||||
return (<any>err).constructor.code == this.code;
|
return (<any>err).constructor.code == this.code;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class NotImplementedError extends CustomError {
|
||||||
|
static code = 501;
|
||||||
|
|
||||||
|
constructor(message: string = 'Not Implemented') {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
static instanceof(err: Error) {
|
||||||
|
return (<any>err).constructor.code == this.code;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class BadGatewayError extends CustomError {
|
||||||
|
static code = 502;
|
||||||
|
|
||||||
|
constructor(message: string = 'Bad Gateway') {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
static instanceof(err: Error) {
|
||||||
|
return (<any>err).constructor.code == this.code;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class ServiceUnavailableError extends CustomError {
|
||||||
|
static code = 503;
|
||||||
|
|
||||||
|
constructor(message: string = 'Service Unavailable') {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
static instanceof(err: Error) {
|
||||||
|
return (<any>err).constructor.code == this.code;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class GatewayTimeoutError extends CustomError {
|
||||||
|
static code = 504;
|
||||||
|
|
||||||
|
constructor(message: string = 'Gateway Timeout') {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
static instanceof(err: Error) {
|
||||||
|
return (<any>err).constructor.code == this.code;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create the correct error object from a status code
|
||||||
|
* @param {number} code Will be converted to respective error (ex. 404 -> NotFoundError)
|
||||||
|
* @param {string} message Override default error message
|
||||||
|
* @return {CustomError} The proper error type
|
||||||
|
*/
|
||||||
|
export function errorFromCode(code: number, message?: string) {
|
||||||
|
if(code >= 200 && code < 300) return null;
|
||||||
|
switch(code) {
|
||||||
|
case 400:
|
||||||
|
return new BadRequestError(message);
|
||||||
|
case 401:
|
||||||
|
return new UnauthorizedError(message);
|
||||||
|
case 402:
|
||||||
|
return new PaymentRequiredError(message);
|
||||||
|
case 403:
|
||||||
|
return new ForbiddenError(message);
|
||||||
|
case 404:
|
||||||
|
return new NotFoundError(message);
|
||||||
|
case 405:
|
||||||
|
return new MethodNotAllowedError(message);
|
||||||
|
case 406:
|
||||||
|
return new NotAcceptableError(message);
|
||||||
|
case 500:
|
||||||
|
return new InternalServerError(message);
|
||||||
|
case 501:
|
||||||
|
return new NotImplementedError(message);
|
||||||
|
case 502:
|
||||||
|
return new BadGatewayError(message);
|
||||||
|
case 503:
|
||||||
|
return new ServiceUnavailableError(message);
|
||||||
|
case 504:
|
||||||
|
return new GatewayTimeoutError(message);
|
||||||
|
default:
|
||||||
|
return new CustomError(message, code);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -10,7 +10,7 @@ export type HttpRequestOptions = {
|
|||||||
decode?: boolean;
|
decode?: boolean;
|
||||||
fragment?: string;
|
fragment?: string;
|
||||||
headers?: {[key: string | symbol]: string | null | undefined};
|
headers?: {[key: string | symbol]: string | null | undefined};
|
||||||
method?: 'GET' | 'POST' | 'PATCH' | 'DELETE';
|
method?: 'GET' | 'POST' | 'PATCH' | 'PUT' | 'DELETE';
|
||||||
query?: {key: string, value: string}[] | {[key: string]: string};
|
query?: {key: string, value: string}[] | {[key: string]: string};
|
||||||
url?: string;
|
url?: string;
|
||||||
[key: string]: any;
|
[key: string]: any;
|
||||||
|
Reference in New Issue
Block a user