/**
* Network error.
*
* @export
* @class
*/
export class NetworkError extends Error {
constructor (message, data) {
super(message)
this.data = data
}
};
/**
* Request timeout error.
*
* @export
* @class
*/
export class ClientTimeoutError extends Error {
constructor (message, data) {
super(message)
this.data = data
}
}
/**
* Base class for server errors.
*/
export class ServerErrorBase extends Error {
/**
* Wrap a raw axios error.
*
* @param {object} originalError Raw axios response.
* @param {axios} axios Axios instance used for request.
*/
constructor (originalError, axios) {
super(originalError.message)
this.originalError = originalError
this._axios = axios
}
/**
* Response HTTP status.
*/
get httpStatus () {
return this.originalError.response.status
}
/**
* Error meta.
*/
get meta () {
return this._meta
}
/**
* A short, human-readable summary of the problem.
*/
get title () {
return this._title
}
/**
* A human-readable explanation specific to this occurrence of the problem.
*/
get detail () {
return this._detail
}
/**
* Retry the failed request.
* Use it to retry requests after 2FA.
*/
retryRequest () {
let config = this.originalError.config
return this._axios(config)
}
}
/**
* Generic Not Found(404) error.
*/
export class NotFoundError extends ServerErrorBase {}
/**
* Generic Bad Gateway(502) error.
*/
export class BadGatewayError extends ServerErrorBase {}
/**
* Generic Service Unavailable(503) error.
*/
export class ServiceUnavailableError extends ServerErrorBase {}
/**
* Generic Gateway Timeout(504) error.
*/
export class GatewayTimeoutError extends ServerErrorBase {}