kobp
Version:
Koa Boilerplate with MikroORM
46 lines • 1.43 kB
JavaScript
import { ServerErrorCode } from './response';
export class KobpError extends Error {
constructor(statusCode, message, data) {
super(message);
this.statusCode = statusCode;
this.data = data;
}
/**
* Error due to Client side input
*
* @param code
* @param message
* @param data
*/
static fromUserInput(code, message, data) {
return new KobpError(code, message, data);
}
/**
* Error due to Service side logic
*
* @param code
* @param message
* @param data
*/
static fromServer(code, message, data) {
return new KobpError(code, message, data);
}
/**
* This axiosError can detect if an Axios Error emitted from `withJson`.
* @param anyError
* @returns
*/
static from(anyError) {
if (anyError instanceof KobpError) {
return anyError;
}
if (anyError.response) {
const errorStatus = anyError.response?.status;
const errorResponseData = anyError.response?.data;
const errorResponseMessage = anyError.response?.data?.message || anyError.message;
return new KobpError(errorStatus, errorResponseMessage, errorResponseData || {});
}
return KobpError.fromServer(ServerErrorCode.internalServerError, anyError && anyError.message, {});
}
}
//# sourceMappingURL=error.http.js.map