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,33 @@ 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>]' )
39
+ useValue : new Command ( 'openapi-generator-cli' )
40
+ . helpOption ( false )
41
+ . usage ( '<command> [<args>]' ) ,
23
42
} ,
24
- { provide : LOGGER , useValue : console }
25
- ]
43
+ { provide : LOGGER , useValue : console } ,
44
+ ] ,
26
45
} )
27
46
export class AppModule implements OnApplicationBootstrap {
28
-
29
47
constructor (
30
48
@Inject ( COMMANDER_PROGRAM ) private readonly program : Command ,
31
49
private readonly versionManager : VersionManagerService ,
32
50
private readonly passThroughService : PassThroughService
33
- ) {
34
- }
51
+ ) { }
35
52
36
53
onApplicationBootstrap = async ( ) => {
37
-
38
54
let selectedVersion = this . versionManager . getSelectedVersion ( ) ;
39
55
40
56
if ( ! selectedVersion ) {
41
- const [ { version} ] = await this . versionManager . search ( [ 'latest' ] ) . toPromise ( ) ;
57
+ const [ { version } ] = await this . versionManager
58
+ . search ( [ 'latest' ] )
59
+ . toPromise ( ) ;
42
60
await this . versionManager . setSelectedVersion ( version ) ;
43
61
selectedVersion = version ;
44
62
}
45
63
46
64
await this . versionManager . downloadIfNeeded ( selectedVersion ) ;
47
65
await this . passThroughService . init ( ) ;
48
66
this . program . parse ( process . argv ) ;
49
-
50
67
} ;
51
-
52
68
}
0 commit comments