@sqlite-hub/client
v0.2.0
Published
TypeScript SDK for sqlite-hub (Node.js, browser, CLI)
Readme
@sqlite-hub/client
TypeScript SDK for sqlite-hub. Access your databases from Node.js, browsers, or CLI tools.
Installation
npm install @sqlite-hub/client
# or
pnpm add @sqlite-hub/clientQuick Start
import { SqliteHubClient } from '@sqlite-hub/client';
const client = new SqliteHubClient({
apiKey: 'shs_your_api_key',
baseUrl: 'https://control.yourdomain.com' // your sqlite-hub control plane URL
});
// Query a database
const result = await client.databases
.get('db-uuid')
.query('SELECT * FROM users WHERE active = ?', [1]);
console.log(result.rows); // [{ id: 1, name: 'Alice' }, ...]
// Write data
const exec = await client.databases
.get('db-uuid')
.exec('INSERT INTO users (name) VALUES (?)', ['Bob']);
console.log(exec.changes); // 1
// Manage API keys
const { key } = await client.apiKeys.create('production-key');
console.log(key); // shs_... (shown once)Features
- ✅ Type-safe
query()(SELECT) andexec()(INSERT / UPDATE / DELETE / DDL) - ✅ File storage:
files.list(),files.upload(),files.delete() - ✅ API key management:
apiKeys.list(),apiKeys.create(),apiKeys.revoke() - ✅ Works in Node.js, browsers, and Deno
- ✅ Full TypeScript types included
- ✅ Authorization via API key Bearer token
Usage
Execute Queries
// Simple query
const result = await client.databases
.get('my-db')
.query('SELECT * FROM users');
// With parameters (prevents SQL injection)
const result = await client.databases
.get('my-db')
.query('SELECT * FROM users WHERE id = ?', [userId]);
// Get execution metadata
console.log(result.executionTimeMs);
console.log(result.rowCount);List Databases
const databases = await client.databases.list();
// [{ id, name, createdAt, sizeBytes }, ...]Create Database
const db = await client.databases.create({
name: 'my-new-db',
displayName: 'My New App Database'
});File Operations
// Upload file
const fileId = await client.databases
.get('my-db')
.files.upload(Buffer.from('csv data'), 'data.csv', 'text/csv');
// List files
const files = await client.databases.get('my-db').files.list();
// Download file
const data = await client.databases
.get('my-db')
.files.download(fileId);Error Handling
import { SqliteHubError } from '@sqlite-hub/client';
try {
const result = await client.databases.get('my-db').query('SELECT ...');
} catch (error) {
if (error instanceof SqliteHubError) {
console.error(`API Error: ${error.code}`);
console.error(`Details: ${error.message}`);
}
}License
MIT
