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