@datastax/astra-db-ts
Version:
Data API TypeScript client
49 lines (48 loc) • 1.66 kB
JavaScript
// Copyright Datastax, Inc
// SPDX-License-Identifier: Apache-2.0
import { buildAstraEndpoint } from '../lib/utils.js';
export 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}'`);
}
};
export const buildAstraDatabaseAdminInfo = (raw, environment) => {
const regions = raw.info.datacenters.map((dc) => ({
name: dc.region,
apiEndpoint: 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,
};
};
export const idFromDbLike = (db) => {
return (typeof db === 'string') ? db : db.id;
};
export const buildAstraPCUTypeDescriptor = (raw) => ({
...raw,
cloudProvider: raw.provider,
details: raw.details ? buildAstraPCUTypeDetailsDescriptor(raw.details) : undefined,
});
const buildAstraPCUTypeDetailsDescriptor = (raw) => ({
...raw,
diskCache: raw.disk_cache,
});