1.0.2 • Published 6 months ago

godb-hamroun v1.0.2

Weekly downloads
-
License
MIT
Repository
-
Last release
6 months ago

GoDB Client

A Node.js client for GoDB - A simple database management system with persistent storage and transaction history.

Installation

npm install godb-hamroun

Features

  • Create tables with typed columns
  • Insert, update, delete, and query data
  • Data type validation
  • Transaction history
  • Persistent storage
  • Error handling
  • TypeScript support

Usage

const { DBClient } = require('godb-hamroun');
// or with TypeScript
import { DBClient } from 'godb-hamroun';

const db = new DBClient('http://localhost:8080');

// Create a table
await db.createTable('users', [
  { name: 'id', dataType: 'int' },
  { name: 'name', dataType: 'string' },
  { name: 'active', dataType: 'bool' }
]);

// Insert data
await db.insert('users', {
  id: 1,
  name: 'John Doe',
  active: true
});

// Update data
const updatedCount = await db.update('users', 
  { name: 'John Doe' },  // where clause
  { active: false }      // updates to apply
);
console.log(`Updated ${updatedCount} rows`);

// Query data
const results = await db.select('users', { active: false });
console.log(results);

API Reference

new DBClient(baseURL?: string)

Creates a new client instance. Default URL is 'http://localhost:8080'.

createTable(name: string, columns: Column[]): Promise<void>

Creates a new table with specified columns.

insert(tableName: string, row: Row): Promise<void>

Inserts a row into the specified table.

update(tableName: string, where: Row, updates: Row): Promise<number>

Updates rows matching the where clause with the specified updates. Returns the number of rows updated.

select(tableName: string, conditions?: Row): Promise<Row[]>

Queries data from the specified table with optional conditions.

Types

interface Column {
  name: string;
  dataType: 'string' | 'int' | 'bool' | 'float' | 'timestamp';
}

interface Row {
  [key: string]: any;
}

Error Handling

try {
  await db.insert('users', { /* ... */ });
} catch (error) {
  console.error('Error:', error.message);
}

Example with All Operations

const db = new DBClient();

// Create table
await db.createTable('users', [
  { name: 'id', dataType: 'int' },
  { name: 'name', dataType: 'string' },
  { name: 'active', dataType: 'bool' },
  { name: 'score', dataType: 'float' }
]);

// Insert
await db.insert('users', {
  id: 1,
  name: 'John',
  active: true,
  score: 95.5
});

// Update
const updated = await db.update('users',
  { id: 1 },              // where
  { score: 98.5 }         // updates
);

// Query
const activeUsers = await db.select('users', { active: true });

License

MIT

Author

Mohamed Ali Hamroun

1.0.2

6 months ago

1.0.1

6 months ago

1.0.0

6 months ago