@datastax/astra-db-ts
Version:
Data API TypeScript client
21 lines (20 loc) • 776 B
JavaScript
// Copyright Datastax, Inc
// SPDX-License-Identifier: Apache-2.0
import { forJSEnv } from '../../lib/utils.js';
import { StaticTokenProvider } from '../../lib/token-providers/static-token-provider.js';
export class UsernamePasswordTokenProvider extends StaticTokenProvider {
constructor(username, password) {
super(`Cassandra:${encodeB64(username)}:${encodeB64(password)}`);
}
}
const encodeB64 = forJSEnv({
server: (input) => {
return Buffer.from(input, 'utf-8').toString('base64');
},
browser: (input) => {
return window.btoa(input);
},
unknown: () => {
throw new Error('Unable to encode username/password to base64... please provide the "Cassandra:[username_b64]:[password_b64]" token manually');
},
});