1
- import { HttpModule , Inject , Module , OnApplicationBootstrap } from '@nestjs/common' ;
1
+ import { HttpModule , Inject , Module , OnApplicationBootstrap } from '@nestjs/common' ;
2
+ import { AxiosProxyConfig } from 'axios' ;
3
+ import { Command } from 'commander' ;
4
+ import * as url from 'url' ;
2
5
3
- import { COMMANDER_PROGRAM , LOGGER } from './constants' ;
4
- import { Command } from 'commander' ;
5
- import { VersionManagerController } from './controllers/version-manager.controller' ;
6
- import { ConfigService , GeneratorService , PassTroughService , UIService , VersionManagerService } from './services' ;
6
+ import { COMMANDER_PROGRAM , LOGGER } from './constants' ;
7
+ import { VersionManagerController } from './controllers/version-manager.controller' ;
8
+ import { ConfigService , GeneratorService , PassTroughService , UIService , VersionManagerService } from './services' ;
9
+
10
+ let proxyConfig : AxiosProxyConfig ;
11
+ const proxyUrl = process . env . HTTPS_PROXY || process . env . HTTP_PROXY ;
12
+
13
+ if ( proxyUrl ) {
14
+ const proxy = url . parse ( proxyUrl ) ;
15
+ const proxyAuth = proxy . auth && proxy . auth . split ( ':' ) ;
16
+
17
+ proxyConfig = {
18
+ host : proxy . hostname ,
19
+ port : parseInt ( proxy . port , 10 ) ,
20
+ auth : proxyAuth && { username : proxyAuth [ 0 ] , password : proxyAuth [ 1 ] } ,
21
+ protocol : proxy . protocol . replace ( ':' , '' )
22
+ } ;
23
+ }
7
24
8
25
@Module ( {
9
- imports : [ HttpModule ] ,
26
+ imports : [ HttpModule . register ( { proxy : proxyConfig } ) ] ,
10
27
controllers : [
11
- VersionManagerController ,
28
+ VersionManagerController
12
29
] ,
13
30
providers : [
14
31
UIService ,
@@ -20,31 +37,31 @@ import {ConfigService, GeneratorService, PassTroughService, UIService, VersionMa
20
37
provide : COMMANDER_PROGRAM ,
21
38
useValue : new Command ( 'openapi-generator-cli' ) . helpOption ( false ) . usage ( '<command> [<args>]' )
22
39
} ,
23
- { provide : LOGGER , useValue : console } ,
24
- ] ,
40
+ { provide : LOGGER , useValue : console }
41
+ ]
25
42
} )
26
43
export class AppModule implements OnApplicationBootstrap {
27
44
28
45
constructor (
29
46
@Inject ( COMMANDER_PROGRAM ) private readonly program : Command ,
30
47
private readonly versionManager : VersionManagerService ,
31
- private readonly passTroughService : PassTroughService ,
48
+ private readonly passTroughService : PassTroughService
32
49
) {
33
50
}
34
51
35
52
onApplicationBootstrap = async ( ) => {
36
53
37
- let selectedVersion = this . versionManager . getSelectedVersion ( )
54
+ let selectedVersion = this . versionManager . getSelectedVersion ( ) ;
38
55
39
56
if ( ! selectedVersion ) {
40
- const [ { version} ] = await this . versionManager . search ( [ 'latest' ] ) . toPromise ( )
41
- await this . versionManager . setSelectedVersion ( version )
42
- selectedVersion = version
57
+ const [ { version } ] = await this . versionManager . search ( [ 'latest' ] ) . toPromise ( ) ;
58
+ await this . versionManager . setSelectedVersion ( version ) ;
59
+ selectedVersion = version ;
43
60
}
44
61
45
- await this . versionManager . downloadIfNeeded ( selectedVersion )
46
- await this . passTroughService . init ( )
47
- this . program . parse ( process . argv )
62
+ await this . versionManager . downloadIfNeeded ( selectedVersion ) ;
63
+ await this . passTroughService . init ( ) ;
64
+ this . program . parse ( process . argv ) ;
48
65
49
66
} ;
50
67
0 commit comments