@thlmenezes/sdk-js
Version:
Devopness API JS/TS SDK - Painless essential DevOps to everyone
50 lines (49 loc) • 1.92 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.ApiError = exports.NetworkError = exports.ArgumentNullException = exports.SdkError = void 0;
class SdkError extends Error {
}
exports.SdkError = SdkError;
class ArgumentNullException extends SdkError {
constructor(param, method, msg) {
super(msg || `Devopness SDK Error - Value cannot be null. Missing required parameter: "${param}" when calling "${method}"`);
this.param = param;
}
}
exports.ArgumentNullException = ArgumentNullException;
class NetworkError extends SdkError {
constructor(error) {
super(`Devopness SDK Network Error - ${error.message}`);
}
}
exports.NetworkError = NetworkError;
class ApiError extends SdkError {
constructor(error) {
var _a;
if (!error.response) {
throw error;
}
super('Devopness API response error');
this.setMessage(error.message);
this.status = error.response.status;
if (error.response.data) {
const data = error.response.data;
this.errors = data.errors;
if (data.message) {
// the `response.data` message might be more specific on helping diagnosing the
// error root cause, so we set it as this ApiError message, when present
this.setMessage(data.message);
}
}
if (!this.message) {
// if the message remains unset after checking for `error.message` and `error.response.data.message`
// we use the `statusText` that usually contains a short the description of the HTTP status code
// when an exception is an HTTP error
this.setMessage((_a = error.response) === null || _a === void 0 ? void 0 : _a.statusText);
}
}
setMessage(message) {
this.message = message;
}
}
exports.ApiError = ApiError;
;