SqbModuleAsyncOptions
Options accepted by SqbModule.forRootAsync().
interface SqbModuleAsyncOptions extends Partial<Pick<ModuleMetadata, 'imports'>> {
useFactory?: (...args: any[]) => Promise<SqbClientConnectionOptions> | SqbClientConnectionOptions;
inject?: any[];
token?: InjectionToken;
envPrefix?: string;
logger?: LoggerService | string;
global?: boolean;
}
| Field | Type | Description |
|---|---|---|
imports | ModuleMetadata['imports'] | NestJS modules to import into the scope the factory runs in — typically the module providing whatever you list in inject (e.g. ConfigModule). |
useFactory | (...args) => Promise<SqbClientConnectionOptions> | SqbClientConnectionOptions | Factory building the connection configuration. May return synchronously or a Promise. Required. |
inject | any[] | Providers injected as arguments into useFactory, in order. |
token | InjectionToken | Provider token to register the SqbClient instance under. Defaults to the SqbClient class itself. |
envPrefix | string | Prefix used to fill unset fields returned by useFactory from environment variables. Default: 'SQB_'. |
logger | LoggerService | string | A NestJS logger instance, or a string logger context, used for connection lifecycle logging. |
global | boolean | If true, registers the module as a global NestJS module. |
SqbModule.forRootAsync({
imports: [ConfigModule],
inject: [ConfigService],
useFactory: (config: ConfigService) => ({
dialect: 'postgres',
host: config.get('DB_HOST'),
database: config.get('DB_NAME'),
}),
});
useFactory is required — SqbModule.forRootAsync() throws if it's omitted.