Skip to main content

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 {}

See also