1
- import { Inject , Module , OnApplicationBootstrap } from '@nestjs/common' ;
2
- import { HttpModule } from '@nestjs/axios' ;
3
- import { Command } from 'commander' ;
1
+ import { Inject , Module , OnApplicationBootstrap } from '@nestjs/common' ;
2
+ import { HttpModule , HttpModuleOptions } from '@nestjs/axios' ;
3
+ import { Command } from 'commander' ;
4
4
5
- import { COMMANDER_PROGRAM , LOGGER } from './constants' ;
6
- import { VersionManagerController } from './controllers/version-manager.controller' ;
7
- import { ConfigService , GeneratorService , PassThroughService , UIService , VersionManagerService } from './services' ;
5
+ import { COMMANDER_PROGRAM , LOGGER } from './constants' ;
6
+ import { VersionManagerController } from './controllers/version-manager.controller' ;
7
+ import {
8
+ ConfigService ,
9
+ GeneratorService ,
10
+ PassThroughService ,
11
+ UIService ,
12
+ VersionManagerService ,
13
+ } from './services' ;
14
+ import { HttpsProxyAgent } from 'https-proxy-agent' ;
15
+
16
+ const proxyUrl = process . env . HTTP_PROXY || process . env . HTTPS_PROXY ;
17
+ const httpModuleConfig : HttpModuleOptions = { } ;
18
+
19
+ if ( proxyUrl ) {
20
+ httpModuleConfig . proxy = false ;
21
+ httpModuleConfig . httpsAgent = new HttpsProxyAgent ( proxyUrl ) ;
22
+ }
8
23
9
24
@Module ( {
10
- imports : [ HttpModule ] ,
11
- controllers : [
12
- VersionManagerController
25
+ imports : [
26
+ HttpModule . register ( {
27
+ ...httpModuleConfig ,
28
+ } ) ,
13
29
] ,
30
+ controllers : [ VersionManagerController ] ,
14
31
providers : [
15
32
UIService ,
16
33
ConfigService ,
@@ -19,34 +36,37 @@ import {ConfigService, GeneratorService, PassThroughService, UIService, VersionM
19
36
VersionManagerService ,
20
37
{
21
38
provide : COMMANDER_PROGRAM ,
22
- useValue : new Command ( 'openapi-generator-cli' ) . helpOption ( false ) . usage ( '<command> [<args>]' ) . option ( '--openapitools <openapitools.json>' , 'Use the specified openapi-generator-cli configuration file' )
39
+ useValue : new Command ( 'openapi-generator-cli' )
40
+ . helpOption ( false )
41
+ . usage ( '<command> [<args>]' )
42
+ . option (
43
+ '--openapitools <openapitools.json>' ,
44
+ 'Use the specified openapi-generator-cli configuration file' ,
45
+ ) ,
23
46
} ,
24
- { provide : LOGGER , useValue : console }
25
- ]
47
+ { provide : LOGGER , useValue : console } ,
48
+ ] ,
26
49
} )
27
50
export class AppModule implements OnApplicationBootstrap {
28
-
29
51
constructor (
30
52
@Inject ( COMMANDER_PROGRAM ) private readonly program : Command ,
31
53
private readonly versionManager : VersionManagerService ,
32
- private readonly passThroughService : PassThroughService
33
- ) {
34
- }
54
+ private readonly passThroughService : PassThroughService ,
55
+ ) { }
35
56
36
57
onApplicationBootstrap = async ( ) => {
37
-
38
58
let selectedVersion = this . versionManager . getSelectedVersion ( ) ;
39
59
40
60
if ( ! selectedVersion ) {
41
- const [ { version} ] = await this . versionManager . search ( [ 'latest' ] ) . toPromise ( ) ;
61
+ const [ { version } ] = await this . versionManager
62
+ . search ( [ 'latest' ] )
63
+ . toPromise ( ) ;
42
64
await this . versionManager . setSelectedVersion ( version ) ;
43
65
selectedVersion = version ;
44
66
}
45
67
46
68
await this . versionManager . downloadIfNeeded ( selectedVersion ) ;
47
69
await this . passThroughService . init ( ) ;
48
70
this . program . parse ( process . argv ) ;
49
-
50
71
} ;
51
-
52
72
}
0 commit comments