UNPKG

@datastax/astra-db-ts

Version:
75 lines (74 loc) 2.47 kB
// Copyright Datastax, Inc // SPDX-License-Identifier: Apache-2.0 import { Timeouts } from '../lib/api/timeouts/timeouts.js'; export class DevOpsAPIError extends Error { } export class DevOpsAPITimeoutError extends DevOpsAPIError { constructor(info, types) { super(Timeouts.fmtTimeoutMsg(info.timeoutManager, types)); Object.defineProperty(this, "url", { enumerable: true, configurable: true, writable: true, value: void 0 }); Object.defineProperty(this, "timeout", { enumerable: true, configurable: true, writable: true, value: void 0 }); Object.defineProperty(this, "timedOutCategories", { enumerable: true, configurable: true, writable: true, value: void 0 }); this.url = info.url; this.timeout = info.timeoutManager.initial(); this.timedOutCategories = types; this.name = 'DevOpsAPITimeoutError'; } static mk(info, types) { return new DevOpsAPITimeoutError(info, types); } } export class DevOpsAPIResponseError extends DevOpsAPIError { constructor(resp, data) { const errors = data?.errors ?? []; const maybeMsg = errors.find((e) => e.message)?.message; const message = (maybeMsg) ? `${maybeMsg}${errors.length > 1 ? ` (+ ${errors.length - 1} more errors)` : ''}` : `Something went wrong (${errors.length} errors)`; super(message); Object.defineProperty(this, "errors", { enumerable: true, configurable: true, writable: true, value: void 0 }); Object.defineProperty(this, "status", { enumerable: true, configurable: true, writable: true, value: void 0 }); Object.defineProperty(this, "raw", { enumerable: true, configurable: true, writable: true, value: void 0 }); this.errors = extractErrorDescriptors(data); this.status = resp.status; this.raw = resp; this.name = 'DevOpsAPIResponseError'; } } function extractErrorDescriptors(data) { const errors = data?.errors || []; return errors.map((e) => ({ id: e.ID, message: e.message, })); }