@datastax/astra-db-ts
Version:
Data API TypeScript client
56 lines (55 loc) • 2.09 kB
JavaScript
;
// Copyright Datastax, Inc
// SPDX-License-Identifier: Apache-2.0
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildAstraPCUTypeDescriptor = exports.idFromDbLike = exports.buildAstraDatabaseAdminInfo = exports.extractAstraEnvironment = void 0;
const utils_js_1 = require("../lib/utils.js");
const extractAstraEnvironment = (endpoint) => {
switch (true) {
case endpoint.includes('apps.astra-dev.datastax.com'):
return 'dev';
case endpoint.includes('apps.astra-test.datastax.com'):
return 'test';
case endpoint.includes('apps.astra.datastax.com'):
return 'prod';
default:
throw new Error(`Cannot extract astra environment for endpoint '${endpoint}'`);
}
};
exports.extractAstraEnvironment = extractAstraEnvironment;
const buildAstraDatabaseAdminInfo = (raw, environment) => {
const regions = raw.info.datacenters.map((dc) => ({
name: dc.region,
apiEndpoint: (0, utils_js_1.buildAstraEndpoint)(raw.id, dc.region, environment),
createdAt: new Date(dc.dateCreated),
}));
return {
id: raw.id,
name: raw.info.name,
orgId: raw.orgId,
ownerId: raw.ownerId,
keyspaces: raw.info.keyspaces ?? [],
environment: environment,
cloudProvider: raw.info.cloudProvider,
createdAt: new Date(raw.creationTime),
lastUsed: new Date(raw.lastUsageTime),
status: raw.status,
regions: regions,
raw: raw,
};
};
exports.buildAstraDatabaseAdminInfo = buildAstraDatabaseAdminInfo;
const idFromDbLike = (db) => {
return (typeof db === 'string') ? db : db.id;
};
exports.idFromDbLike = idFromDbLike;
const buildAstraPCUTypeDescriptor = (raw) => ({
...raw,
cloudProvider: raw.provider,
details: raw.details ? buildAstraPCUTypeDetailsDescriptor(raw.details) : undefined,
});
exports.buildAstraPCUTypeDescriptor = buildAstraPCUTypeDescriptor;
const buildAstraPCUTypeDetailsDescriptor = (raw) => ({
...raw,
diskCache: raw.disk_cache,
});