UNPKG

@datastax/astra-db-ts

Version:
61 lines (60 loc) 3.02 kB
// 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();