REST Datastores API
NestJS module for SQL database connection management and repository registration.
What It Does
The REST Datastores API provides a NestJS module that simplifies SQL database connection management and repository registration. It implements a “set it once and forget it” model for database configuration with automatic connection pooling and lifecycle management.
Key Capabilities
- Centralized Connection Management: Single registration at root module
- Repository Registration: Dynamic repository registration via DI
- Connection Pooling: Automatic pool management via SqlExecutor
- Lifecycle Management: Automatic cleanup on module destruction
- Async Configuration: Support for both sync and async config loading
- Global Availability: Repositories accessible throughout application
Main Component
DatastoresModule
@Module({
imports: [
DatastoresModule.forRoot({
database: 'public',
host: process.env.DB_HOST,
port: process.env.DB_PORT,
password: process.env.DB_PASSWORD,
user: process.env.DB_USER
})
]
})Repository Registration
@Module({
imports: [
DatastoresModule.registerRepositories(UserRepository, ProductRepository)
]
})Configuration Patterns
Synchronous
DatastoresModule.forRoot(connectionOptions)Asynchronous
DatastoresModule.forRootAsync({
imports: [ConfigModule],
inject: [ConfigService],
useFactory: (config: ConfigService) => config.getDatabaseConfig()
})Common Use Cases
- SQL database connection management
- Repository pattern implementation
- NestJS microservices with SQL backends
- Multi-tenant database connections
- Connection pool management
What Customers Don’t Have to Build
- Database connection configuration
- Repository dependency injection
- Connection pool management
- Module lifecycle handling
- SqlExecutor setup
- Global provider registration
Last updated on