Skip to main content

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;
}
FieldTypeDescription
importsModuleMetadata['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> | SqbClientConnectionOptionsFactory building the connection configuration. May return synchronously or a Promise. Required.
injectany[]Providers injected as arguments into useFactory, in order.
tokenInjectionTokenProvider token to register the SqbClient instance under. Defaults to the SqbClient class itself.
envPrefixstringPrefix used to fill unset fields returned by useFactory from environment variables. Default: 'SQB_'.
loggerLoggerService | stringA NestJS logger instance, or a string logger context, used for connection lifecycle logging.
globalbooleanIf 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.

See also