@datastax/astra-db-ts
Version:
Data API TypeScript client
221 lines (220 loc) • 8.23 kB
JavaScript
// Copyright Datastax, Inc
// SPDX-License-Identifier: Apache-2.0
var _CollectionInsertManyError_partialResult, _CollectionInsertManyError_causes, _TableInsertManyError_partialResult, _TableInsertManyError_causes;
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
import { Timeouts } from '../lib/api/timeouts/timeouts.js';
import { NonErrorError } from '../lib/errors.js';
export class DataAPIError extends Error {
withTransientDupesForEvents() {
return this;
}
}
export class DataAPIHttpError extends DataAPIError {
constructor(resp) {
super(`HTTP error (${resp.status}): ${resp.body ? resp.body : resp.statusText}`);
Object.defineProperty(this, "status", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
Object.defineProperty(this, "body", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
Object.defineProperty(this, "raw", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
this.status = resp.status;
this.body = resp.body;
this.raw = resp;
this.name = 'DataAPIHttpError';
}
}
export class DataAPITimeoutError extends DataAPIError {
constructor(info, types) {
super(Timeouts.fmtTimeoutMsg(info.timeoutManager, types));
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.timeout = info.timeoutManager.initial();
this.timedOutCategories = types;
this.name = 'DataAPITimeoutError';
}
static mk(info, types) {
return new DataAPITimeoutError(info, types);
}
}
export class TooManyDocumentsToCountError extends DataAPIError {
constructor(limit, hitServerLimit) {
const message = (hitServerLimit)
? `Too many documents to count (server limit of ${limit} reached)`
: `Too many documents to count (provided limit is ${limit})`;
super(message);
Object.defineProperty(this, "limit", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
Object.defineProperty(this, "hitServerLimit", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
this.limit = limit;
this.hitServerLimit = hitServerLimit;
this.name = 'TooManyDocumentsToCountError';
}
}
export class DataAPIResponseError extends DataAPIError {
constructor(command, rawResponse) {
const errorDescriptors = rawResponse.errors;
const message = (errorDescriptors[0]?.message)
? `${errorDescriptors[0].message}${errorDescriptors.length > 1 ? ` (+ ${errorDescriptors.length - 1} more errors)` : ''}`
: `Something went wrong (${errorDescriptors.length} errors)`;
super(message);
Object.defineProperty(this, "command", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
Object.defineProperty(this, "rawResponse", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
this.name = 'DataAPIResponseError';
this.command = command;
this.rawResponse = rawResponse;
}
get errorDescriptors() {
return this.rawResponse.errors;
}
get warnings() {
return this.rawResponse.warnings ?? [];
}
withTransientDupesForEvents() {
return { name: this.name };
}
}
export class CollectionInsertManyError extends DataAPIError {
constructor(causes, partRes) {
super(mkInsertManyErrorMsg(causes));
Object.defineProperty(this, "name", {
enumerable: true,
configurable: true,
writable: true,
value: 'CollectionInsertManyError'
});
_CollectionInsertManyError_partialResult.set(this, void 0);
_CollectionInsertManyError_causes.set(this, void 0);
__classPrivateFieldSet(this, _CollectionInsertManyError_partialResult, partRes, "f");
__classPrivateFieldSet(this, _CollectionInsertManyError_causes, causes, "f");
}
insertedIds() {
return __classPrivateFieldGet(this, _CollectionInsertManyError_partialResult, "f").insertedIds;
}
errors() {
return __classPrivateFieldGet(this, _CollectionInsertManyError_causes, "f");
}
}
_CollectionInsertManyError_partialResult = new WeakMap(), _CollectionInsertManyError_causes = new WeakMap();
export class TableInsertManyError extends DataAPIError {
constructor(causes, partRes) {
super(mkInsertManyErrorMsg(causes));
Object.defineProperty(this, "name", {
enumerable: true,
configurable: true,
writable: true,
value: 'TableInsertManyError'
});
_TableInsertManyError_partialResult.set(this, void 0);
_TableInsertManyError_causes.set(this, void 0);
__classPrivateFieldSet(this, _TableInsertManyError_partialResult, partRes, "f");
__classPrivateFieldSet(this, _TableInsertManyError_causes, causes, "f");
}
insertedIds() {
return __classPrivateFieldGet(this, _TableInsertManyError_partialResult, "f").insertedIds;
}
errors() {
return __classPrivateFieldGet(this, _TableInsertManyError_causes, "f");
}
}
_TableInsertManyError_partialResult = new WeakMap(), _TableInsertManyError_causes = new WeakMap();
export class CollectionUpdateManyError extends DataAPIError {
constructor(cause, partialRes) {
const errorCause = NonErrorError.asError(cause);
super(errorCause.message);
Object.defineProperty(this, "name", {
enumerable: true,
configurable: true,
writable: true,
value: 'CollectionUpdateManyError'
});
Object.defineProperty(this, "partialResult", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
Object.defineProperty(this, "cause", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
this.partialResult = partialRes;
this.cause = errorCause;
}
}
export class CollectionDeleteManyError extends DataAPIError {
constructor(cause, partialRes) {
const errorCause = NonErrorError.asError(cause);
super(errorCause.message);
Object.defineProperty(this, "name", {
enumerable: true,
configurable: true,
writable: true,
value: 'CollectionDeleteManyError'
});
Object.defineProperty(this, "partialResult", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
Object.defineProperty(this, "cause", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
this.partialResult = partialRes;
this.cause = errorCause;
}
}
function mkInsertManyErrorMsg(causes) {
const errorDescriptor = causes[0].errorDescriptors[0];
const numErrors = causes.reduce((acc, e) => acc + e.errorDescriptors.length, 0);
return (errorDescriptor?.message)
? `${errorDescriptor.message}${numErrors > 1 ? ` (+ ${numErrors - 1} more errors)` : ''}`
: `Something went wrong (${numErrors} errors)`;
}