@datastax/astra-db-ts
Version:
Data API TypeScript client
61 lines (60 loc) • 3.02 kB
JavaScript
// Copyright Datastax, Inc
// SPDX-License-Identifier: Apache-2.0
// noinspection ExceptionCaughtLocallyJS
var _DataAPIDbAdmin_httpClient, _DataAPIDbAdmin_db;
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
import { DbAdmin } from '../administration/db-admin.js';
import { $CustomInspect } from '../lib/constants.js';
import { InternalLogger } from '../lib/logging/internal-logger.js';
export class DataAPIDbAdmin extends DbAdmin {
constructor(db, client, httpClient, rootOpts, adminOpts) {
const loggingConfig = InternalLogger.cfg.concat([rootOpts.dbOptions.logging, adminOpts.logging]);
super(client, loggingConfig);
_DataAPIDbAdmin_httpClient.set(this, void 0);
_DataAPIDbAdmin_db.set(this, void 0);
__classPrivateFieldSet(this, _DataAPIDbAdmin_httpClient, httpClient.forDbAdmin(this, adminOpts), "f");
__classPrivateFieldSet(this, _DataAPIDbAdmin_db, db, "f");
Object.defineProperty(this, $CustomInspect, {
value: () => `DataAPIDbAdmin()`,
});
}
db() {
return __classPrivateFieldGet(this, _DataAPIDbAdmin_db, "f");
}
async listKeyspaces(options) {
const resp = await __classPrivateFieldGet(this, _DataAPIDbAdmin_httpClient, "f").executeCommand({ findKeyspaces: {} }, {
timeoutManager: __classPrivateFieldGet(this, _DataAPIDbAdmin_httpClient, "f").tm.single('keyspaceAdminTimeoutMs', options),
methodName: 'dbAdmin.listKeyspaces',
keyspace: null,
});
return resp.status.keyspaces;
}
async createKeyspace(keyspace, options) {
if (options?.updateDbKeyspace) {
__classPrivateFieldGet(this, _DataAPIDbAdmin_db, "f").useKeyspace(keyspace);
}
const replication = options?.replication ?? {
class: 'SimpleStrategy',
replicationFactor: 1,
};
await __classPrivateFieldGet(this, _DataAPIDbAdmin_httpClient, "f").executeCommand({ createKeyspace: { name: keyspace, options: { replication } } }, {
timeoutManager: __classPrivateFieldGet(this, _DataAPIDbAdmin_httpClient, "f").tm.single('keyspaceAdminTimeoutMs', options),
methodName: 'dbAdmin.createKeyspace',
keyspace: null,
});
}
async dropKeyspace(keyspace, options) {
await __classPrivateFieldGet(this, _DataAPIDbAdmin_httpClient, "f").executeCommand({ dropKeyspace: { name: keyspace } }, {
timeoutManager: __classPrivateFieldGet(this, _DataAPIDbAdmin_httpClient, "f").tm.single('keyspaceAdminTimeoutMs', options),
methodName: 'dbAdmin.dropKeyspace',
keyspace: null,
});
}
get _httpClient() {
return __classPrivateFieldGet(this, _DataAPIDbAdmin_httpClient, "f");
}
_getDataAPIHttpClient() {
return __classPrivateFieldGet(this, _DataAPIDbAdmin_httpClient, "f");
}
}
_DataAPIDbAdmin_httpClient = new WeakMap(), _DataAPIDbAdmin_db = new WeakMap();