-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcommand-runner.module.ts
More file actions
62 lines (59 loc) · 1.53 KB
/
command-runner.module.ts
File metadata and controls
62 lines (59 loc) · 1.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/**
* @file CommandRunnerModule
* @module nest-commander/CommandRunnerModule
*/
import { sift, type Class } from '@flex-development/tutils'
import { DiscoveryModule } from '@golevelup/nestjs-discovery'
import { Module, type DynamicModule } from '@nestjs/common'
import { Program, ProgramOptions } from './models'
import {
CliUtilityService,
CommandRunnerService,
HelpService
} from './providers'
/**
* Command runner module.
*
* @class
*/
@Module({})
class CommandRunnerModule {
/**
* Register a global command runner module.
*
* @public
* @static
*
* @param {ProgramOptions} options - CLI program options
* @param {(Class<any> | DynamicModule)?} [module] - Module to import
* @return {DynamicModule} Global command runner module
*/
public static register(
options: ProgramOptions,
module?: Class<any> | DynamicModule
): DynamicModule {
return {
exports: [CliUtilityService, HelpService, Program],
global: true,
imports: sift([DiscoveryModule, module]),
module: CommandRunnerModule,
providers: [
{
provide: ProgramOptions,
useValue: new ProgramOptions(options)
},
{
inject: [ProgramOptions, HelpService],
provide: Program,
useFactory(options: ProgramOptions, help: HelpService): Program {
return new Program(options).configureHelp(help)
}
},
CliUtilityService,
CommandRunnerService,
HelpService
]
}
}
}
export default CommandRunnerModule