Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2.2 KiB
2.2 KiB
@esengine/database
1.1.0
Minor Changes
-
#410
71022abThanks @esengine! - feat: add database layer architectureAdded new database packages with layered architecture:
@esengine/database-drivers (Layer 1)
- MongoDB connection with pool management, auto-reconnect, events
- Redis connection with auto-reconnect, key prefix
- Type-safe
IMongoCollection<T>interface decoupled from mongodb types - Service tokens for dependency injection (
MongoConnectionToken,RedisConnectionToken)
@esengine/database (Layer 2)
- Generic
Repository<T>with CRUD, pagination, soft delete UserRepositorywith registration, authentication, role management- Password hashing utilities using scrypt
- Query operators:
$eq,$ne,$gt,$gte,$lt,$lte,$in,$nin,$like,$regex
@esengine/transaction
- Refactored
MongoStorageto use shared connection from@esengine/database-drivers - Removed factory pattern in favor of shared connection (breaking change)
- Simplified API:
createMongoStorage(connection, options?)
Example usage:
import { createMongoConnection } from '@esengine/database-drivers'; import { UserRepository } from '@esengine/database'; import { createMongoStorage, TransactionManager } from '@esengine/transaction'; // Create shared connection const mongo = createMongoConnection({ uri: 'mongodb://localhost:27017', database: 'game' }); await mongo.connect(); // Use for database operations const userRepo = new UserRepository(mongo); await userRepo.register({ username: 'john', password: '123456' }); // Use for transactions (same connection) const storage = createMongoStorage(mongo); const txManager = new TransactionManager({ storage });
Patch Changes
- Updated dependencies [
71022ab]:- @esengine/database-drivers@1.1.0