@encodeagent/platform-helper-data
v1.2604.1061957
Published
Comprehensive TypeScript data library for the EncodeAgent platform with database utilities, query builders, migrations, and more
Downloads
2,897
Maintainers
Readme
@encodeagent/platform-helper-data
Comprehensive TypeScript data library for the EncodeAgent platform with database utilities, query builders, migrations, and more.
Installation
npm install @encodeagent/platform-helper-dataFeatures
Database Connection Management
- Connection utilities: Connect, disconnect, and test database connections
- Connection pooling: Efficient connection pool management
- Multi-database support: Support for various database engines
Query Building
- SQL Query Builder: Programmatic SQL query construction
- Type-safe queries: TypeScript-first query building
- Complex joins: Support for complex JOIN operations
- WHERE clause builder: Flexible condition building
Schema Management
- Table operations: Create, alter, and drop tables
- Index management: Create and manage database indexes
- Constraint handling: Foreign keys, unique constraints, and checks
- Schema validation: Validate schema definitions
Migration System
- Version control: Database schema versioning
- Migration runner: Execute and rollback migrations
- Migration generator: Create new migration files
- Status tracking: Track migration execution status
Transaction Management
- ACID transactions: Full transaction support
- Isolation levels: Configurable transaction isolation
- Transaction wrapper: Execute functions within transactions
- Rollback handling: Automatic rollback on errors
Repository Pattern
- Base repository: Generic repository implementation
- CRUD operations: Standard create, read, update, delete operations
- Query methods: Flexible query methods
- Type safety: Full TypeScript support
Data Validation
- Input validation: Validate data before database operations
- Constraint checking: Verify database constraints
- Data sanitization: Clean and sanitize input data
- Foreign key validation: Ensure referential integrity
Performance Monitoring
- Query logging: Track query performance
- Performance metrics: Collect and analyze performance data
- Query optimization: Optimize slow queries
- Performance analysis: Comprehensive performance reporting
Backup & Recovery
- Database backups: Create full and incremental backups
- Backup scheduling: Automated backup scheduling
- Restore operations: Restore from backup files
- Backup monitoring: Track backup status and health
Usage Examples
Database Connection
import { connectDatabase, testDatabaseConnection } from '@encodeagent/platform-helper-data';
const config = {
host: 'localhost',
port: 5432,
database: 'myapp',
username: 'user',
password: 'password'
};
// Test connection
const isConnected = await testDatabaseConnection(config);
// Connect to database
const connection = await connectDatabase(config);Query Building
import { buildSelectQuery, buildWhereClause } from '@encodeagent/platform-helper-data';
const whereConditions = [
{ field: 'status', operator: '=', value: 'active' },
{ field: 'created_at', operator: '>', value: '2024-01-01', logic: 'AND' }
];
const query = buildSelectQuery(
'users',
['id', 'name', 'email'],
whereConditions
);Repository Pattern
import { createRepository } from '@encodeagent/platform-helper-data';
interface User {
id: number;
name: string;
email: string;
}
const userRepository = createRepository<User>({
tableName: 'users',
primaryKey: 'id',
timestamps: true
});
// CRUD operations
const user = await userRepository.findById(1);
const users = await userRepository.findAll();
const newUser = await userRepository.create({ name: 'John', email: '[email protected]' });Migrations
import { runMigrations, createMigration } from '@encodeagent/platform-helper-data';
const migrationConfig = {
migrationsPath: './migrations',
tableName: 'migrations'
};
// Run pending migrations
await runMigrations(migrationConfig);
// Create new migration
const migrationId = await createMigration('add_user_table', migrationConfig);Transactions
import { executeInTransaction } from '@encodeagent/platform-helper-data';
const result = await executeInTransaction(async (transaction) => {
// All operations within this function will be part of the transaction
const user = await userRepository.create({ name: 'John' });
const profile = await profileRepository.create({ userId: user.id });
return { user, profile };
});Type Definitions
The library provides comprehensive TypeScript type definitions for all database operations:
DatabaseConfig- Database connection configurationQueryResult<T>- Query result with typed rowsSchemaDefinition- Table schema definitionMigrationConfig- Migration configurationTransactionOptions- Transaction settingsRepositoryOptions- Repository configurationValidationRules- Data validation rulesPerformanceMetrics- Performance monitoring data
Requirements
- Node.js >= 20.0.0
- TypeScript >= 5.2.0
Development
# Install dependencies
npm install
# Build the library
npm run build
# Run tests
npm test
# Run linting
npm run lintLicense
UNLICENSED - Proprietary software of PrimeObjects Software Inc.
Support
For support and questions, contact: [email protected]
Part of the EncodeAgent Platform ecosystem
