Skip to content

datasketch/bases-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bases-client

Javascript client to interact with databases uploaded to Datasketch. This client is written in TypeScript and provides type definitions out of the box.

npm i @datasketch/bases-client

Usage

Importing

import { BasesClient } from '@datasketch/bases-client'

Instantiation

Create a new instance of BasesClient:

// Visit your settings page at datasketch to get the token

const client = new BasesClient({
    org: 'your-organization',
    db: 'your-database',
    token: 'your-api-token',
    tbl: 'initial-table' // Optional
})

API

setTable(tbl: string): Promise<void>

Sets the current table for subsequent operations. If the table is different from the current one, it will request a new authentication token.

await client.setTable('new-table');

getRecords<T>(): Promise<T[]>

Retrieves all records from the current table.

const records = await client.getRecords();
console.log(records);

getRecord<T>(id: string): Promise<T | null>

Retrieves a single record by its ID.

const record = await client.getRecord('record-id');
if (record) {
  console.log(record);
} else {
  console.log('Record not found');
}

insertRecords<T>(data: T[]): Promise<{ success: boolean }>

Inserts new records into the current table.

const newRecord = { name: 'John Doe', age: 30 };
const result = await client.insertRecords([newRecord]);
console.log(`Inserted record: ${result.success}`);

updateRecord<T>(id: string, data: Partial<T>): Promise<{ success: boolean }>

Updates an existing record in the current table.

const result = await client.updateRecord('record-id', { age: 31 });
console.log(`Updated record: ${result.success}`);

deleteRecord(id: string): Promise<{ success: boolean }>

Deletes a record from the current table.

const result = await client.deleteRecord('record-id');
console.log(`Deleted record: ${result.success}`);

Example

// Create a client
const client = new BasesClient({
  org: 'my-org',
  db: 'my-db',
  token: 'my-token'
});

// Set initial table
await client.setTable('users');

// Get all records
const allUsers = await client.getRecords();
console.log('All users:', allUsers);

// Retrieve the record
const user = await client.getRecord(userId);
console.log('User:', user);

// Insert a record
let result = await client.insertRecord({ name: 'Alice', email: '[email protected]' });
console.log(`Record inserted successfully: ${result.success}`);

// Insert multiple records
result = await client.insertRecords([
  { name: 'Alice', email: '[email protected]' },
  { name: 'Sam', email: '[email protected]' }
]);
console.log(`Multiple records inserted successfully: ${result.success}`);

// Update the record
result = await client.updateRecord(userId, { name: 'Alice Smith' });
console.log(`Record updated successfully: ${result.success}`);

// Delete the record
result = await client.deleteRecord(userId);
console.log(`Record deleted successfully: ${result.success}`);

// Switch to a different table
await client.setTable('products');

// Now operations will be performed on the 'products' table
const allProducts = await client.getRecords();
console.log('All products:', allProducts);

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published