SqbModule
SqbModule is the NestJS module @sqb/nestjs exposes to register an
SqbClient as an injectable provider. It has no instance
API — both of its methods are static factories returning a NestJS DynamicModule, and both
delegate to an internal SqbCoreModule that actually declares the SqbClient provider and
manages its connect/close lifecycle. See the
NestJS Integration guide for full usage.
Methods
forRoot()
static forRoot(options?: SqbModuleOptions): DynamicModule
Registers the module with a static connection configuration, given as
SqbModuleOptions.
import '@sqb/postgres';
import { Module } from '@nestjs/common';
import { SqbModule } from '@sqb/nestjs';
@Module({
imports: [
SqbModule.forRoot({
useValue: {
dialect: 'postgres',
host: 'localhost',
database: 'mydb',
},
}),
],
})
export class AppModule {}
forRootAsync()
static forRootAsync(options: SqbModuleAsyncOptions): DynamicModule
Registers the module with connection configuration resolved asynchronously via a factory, given
as SqbModuleAsyncOptions.
import '@sqb/postgres';
import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { SqbModule } from '@sqb/nestjs';
@Module({
imports: [
SqbModule.forRootAsync({
imports: [ConfigModule],
inject: [ConfigService],
useFactory: (config: ConfigService) => ({
dialect: 'postgres',
host: config.get('DB_HOST'),
database: config.get('DB_NAME'),
}),
}),
],
})
export class AppModule {}