UNPKG

@golevelup/nestjs-modules

Version:

Reusable utilties to help level up NestJS Modules

36 lines 1.61 kB
import { DynamicModule, Provider, Type } from '@nestjs/common'; import { ModuleMetadata } from '@nestjs/common/interfaces'; import { Subject } from 'rxjs'; type InjectionToken = string | symbol | Type; export interface ModuleConfigFactory<T> { createModuleConfig(): Promise<T> | T; } export type AsyncModuleConfig<T> = Pick<ModuleMetadata, 'imports' | 'exports'> & ({ useExisting: { value: ModuleConfigFactory<T>; provide?: InjectionToken; }; } | { useClass: Type<ModuleConfigFactory<T>>; } | { useFactory: (...args: any[]) => Promise<T> | T; inject?: any[]; }); export declare function createModuleConfigProvider<T>(provide: InjectionToken, options: AsyncModuleConfig<T>): Provider[]; export interface IConfigurableDynamicRootModule<T, U> { new (): Type<T>; moduleSubject: Subject<DynamicModule>; forRoot(moduleCtor: Type<T>, moduleConfig?: U): DynamicModule; forRootAsync(moduleCtor: Type<T>, asyncModuleConfig: AsyncModuleConfig<U>): DynamicModule; externallyConfigured(moduleCtor: Type<T>, wait: number): Promise<DynamicModule>; } /** * * @deprecated Please use Nestjs Configurable Module {@see https://docs.nestjs.com/fundamentals/dynamic-modules#configurable-module-builder} * @param moduleConfigToken * @param moduleProperties * @returns */ export declare function createConfigurableDynamicRootModule<T, U>(moduleConfigToken: InjectionToken, moduleProperties?: Partial<Pick<ModuleMetadata, 'imports' | 'exports' | 'providers' | 'controllers'>>): IConfigurableDynamicRootModule<T, U>; export {}; //# sourceMappingURL=dynamicModules.d.ts.map