You could do something like this: ```ts import { ...
# general
p
You could do something like this:
Copy code
ts
import {
    MiddlewareConsumer,
    Module,
    NestModule,
    DynamicModule,
    FactoryProvider,
    ModuleMetadata,
  } from '@nestjs/common';
  
import { ConfigInjectionToken, AuthModuleConfig } from './config.interface';
  
type ModuleRootConf = Omit<FactoryProvider<AuthModuleConfig>, "provide" | "scope"> & Pick<ModuleMetadata, 'imports'>;

  @Module({
    providers: [],
    exports: [],
    controllers: [],
  })
  export class AuthModule implements NestModule {
    configure(consumer: MiddlewareConsumer) {
    }
  
    static forRoot({ useFactory, inject, imports }: ModuleRootConf): DynamicModule {
      return {
        providers: [
          {
            useFactory,
            inject,
            provide: ConfigInjectionToken,
          },
        ],
        imports,
        exports: [],
        module: AuthModule,
      };
    }
  }