|
1 | | -import { DynamicModule, type FactoryProvider, Module } from '@nestjs/common' |
2 | | -import { APP_INTERCEPTOR } from '@nestjs/core' |
3 | | -import { DataloaderInterceptor } from './Dataloader.interceptor.js' |
4 | | -import { OPTIONS_TOKEN } from './internal.js' |
5 | | -import { type DataloaderOptions } from './types.js' |
| 1 | +import { type DynamicModule, Module } from '@nestjs/common' |
| 2 | +import { type DataloaderModuleOptions, type Factory, type DataloaderOptions } from './types.js' |
| 3 | +import { DataloaderCoreModule } from './DataloaderCore.module.js' |
6 | 4 |
|
7 | | -@Module({ |
8 | | - providers: [ |
9 | | - { provide: APP_INTERCEPTOR, useClass: DataloaderInterceptor }, |
10 | | - ], |
11 | | -}) |
| 5 | +@Module({}) |
12 | 6 | class DataloaderModule { |
13 | 7 | static forRoot(options?: DataloaderOptions): DynamicModule { |
14 | 8 | return { |
15 | 9 | module: DataloaderModule, |
16 | | - providers: [{ |
17 | | - provide: OPTIONS_TOKEN, |
18 | | - useValue: options, |
19 | | - }], |
| 10 | + imports: [DataloaderCoreModule.forRoot(options)], |
20 | 11 | } |
21 | 12 | } |
22 | 13 |
|
23 | 14 | static forRootAsync(options: DataloaderModuleOptions): DynamicModule { |
24 | 15 | return { |
25 | 16 | module: DataloaderModule, |
26 | | - imports: options.imports ?? [], |
27 | | - providers: [{ |
28 | | - provide: OPTIONS_TOKEN, |
29 | | - inject: options.inject ?? [], |
30 | | - useFactory: options.useFactory, |
31 | | - }], |
| 17 | + imports: [DataloaderCoreModule.forRootAsync(options)], |
32 | 18 | } |
33 | 19 | } |
34 | | -} |
35 | 20 |
|
36 | | -/** Dataloader module options for async configuration */ |
37 | | -type DataloaderModuleOptions = Omit<FactoryProvider<DataloaderOptions>, 'provide'> & Pick<DynamicModule, 'imports'> |
| 21 | + static forFeature(loaders: Factory[]): DynamicModule { |
| 22 | + return { |
| 23 | + module: DataloaderModule, |
| 24 | + providers: loaders, |
| 25 | + exports: loaders, |
| 26 | + } |
| 27 | + } |
| 28 | +} |
38 | 29 |
|
39 | 30 |
|
40 | 31 | export { |
41 | 32 | DataloaderModule, |
42 | | - DataloaderModuleOptions, |
43 | 33 | } |
0 commit comments