UNPKG

@thlmenezes/sdk-js

Version:

Devopness API JS/TS SDK - Painless essential DevOps to everyone

50 lines (49 loc) 1.92 kB
"use strict"; 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;