1
1
import * as path from "path" ;
2
- import * as _ from ' lodash' ;
2
+ import * as _ from " lodash" ;
3
3
import { cache } from "./common/decorators" ;
4
4
import { androidToolsInfo } from "@nativescript/doctor" ;
5
- import { injector } from './common/yok' ;
6
- import { IAndroidToolsInfo , IOptions , IAndroidToolsInfoData , IAndroidToolsInfoValidateInput , IAndroidToolsInfoOptions } from "./declarations" ;
5
+ import { injector } from "./common/yok" ;
6
+ import {
7
+ IAndroidToolsInfo ,
8
+ IOptions ,
9
+ IAndroidToolsInfoData ,
10
+ IAndroidToolsInfoValidateInput ,
11
+ IAndroidToolsInfoOptions ,
12
+ } from "./declarations" ;
7
13
import { IErrors , IProjectDir } from "./common/declarations" ;
8
14
9
15
export class AndroidToolsInfo implements IAndroidToolsInfo {
10
- constructor ( private $errors : IErrors ,
16
+ constructor (
17
+ private $errors : IErrors ,
11
18
private $logger : ILogger ,
12
19
private $options : IOptions ,
13
- protected $staticConfig : Config . IStaticConfig ) {
14
- }
20
+ protected $staticConfig : Config . IStaticConfig
21
+ ) { }
15
22
16
23
@cache ( )
17
24
public getToolsInfo ( config : IProjectDir ) : IAndroidToolsInfoData {
18
- const infoData : IAndroidToolsInfoData = < IAndroidToolsInfoData > ( androidToolsInfo . getToolsInfo ( { projectDir : config . projectDir } ) ) ;
25
+ const infoData : IAndroidToolsInfoData = < IAndroidToolsInfoData > (
26
+ androidToolsInfo . getToolsInfo ( { projectDir : config . projectDir } )
27
+ ) ;
19
28
20
29
infoData . androidHomeEnvVar = androidToolsInfo . androidHome ;
21
- infoData . compileSdkVersion = this . getCompileSdkVersion ( infoData . installedTargets , infoData . compileSdkVersion ) ;
30
+ infoData . compileSdkVersion = this . getCompileSdkVersion (
31
+ infoData . installedTargets ,
32
+ infoData . compileSdkVersion
33
+ ) ;
22
34
infoData . targetSdkVersion = this . getTargetSdk ( infoData . compileSdkVersion ) ;
23
35
infoData . generateTypings = this . shouldGenerateTypings ( ) ;
24
36
25
- this . $logger . trace ( "Installed Android Targets are: " , infoData . installedTargets ) ;
26
- this . $logger . trace ( "Selected buildToolsVersion is:" , infoData . buildToolsVersion ) ;
37
+ this . $logger . trace (
38
+ "Installed Android Targets are: " ,
39
+ infoData . installedTargets
40
+ ) ;
41
+ this . $logger . trace (
42
+ "Selected buildToolsVersion is:" ,
43
+ infoData . buildToolsVersion
44
+ ) ;
27
45
28
46
return infoData ;
29
47
}
@@ -33,7 +51,12 @@ export class AndroidToolsInfo implements IAndroidToolsInfo {
33
51
const showWarningsAsErrors = options && options . showWarningsAsErrors ;
34
52
const isAndroidHomeValid = this . validateAndroidHomeEnvVariable ( options ) ;
35
53
36
- detectedErrors = androidToolsInfo . validateInfo ( { projectDir : options . projectDir } ) . map ( warning => this . printMessage ( warning . warning , showWarningsAsErrors ) ) . length > 0 ;
54
+ detectedErrors =
55
+ androidToolsInfo
56
+ . validateInfo ( { projectDir : options . projectDir } )
57
+ . map ( ( warning ) =>
58
+ this . printMessage ( warning . warning , showWarningsAsErrors )
59
+ ) . length > 0 ;
37
60
38
61
if ( options && options . validateTargetSdk ) {
39
62
detectedErrors = this . validateTargetSdk ( options ) ;
@@ -45,22 +68,44 @@ export class AndroidToolsInfo implements IAndroidToolsInfo {
45
68
public validateTargetSdk ( options : IAndroidToolsInfoOptions ) : boolean {
46
69
let detectedErrors = false ;
47
70
48
- const toolsInfoData = this . getToolsInfo ( { projectDir : options . projectDir } ) ;
71
+ const toolsInfoData = this . getToolsInfo ( { projectDir : options . projectDir } ) ;
49
72
const targetSdk = toolsInfoData . targetSdkVersion ;
50
73
51
- detectedErrors = androidToolsInfo . validateMinSupportedTargetSdk ( { targetSdk, projectDir : options . projectDir } ) . map ( warning => this . printMessage ( warning . warning , options . showWarningsAsErrors ) ) . length > 0 ;
74
+ detectedErrors =
75
+ androidToolsInfo
76
+ . validateMinSupportedTargetSdk ( {
77
+ targetSdk,
78
+ projectDir : options . projectDir ,
79
+ } )
80
+ . map ( ( warning ) =>
81
+ this . printMessage ( warning . warning , options . showWarningsAsErrors )
82
+ ) . length > 0 ;
52
83
53
84
if ( ! detectedErrors ) {
54
- androidToolsInfo . validataMaxSupportedTargetSdk ( { targetSdk, projectDir : options . projectDir } ) . map ( warning => this . $logger . warn ( warning . warning ) ) ;
85
+ androidToolsInfo
86
+ . validataMaxSupportedTargetSdk ( {
87
+ targetSdk,
88
+ projectDir : options . projectDir ,
89
+ } )
90
+ . map ( ( warning ) => this . $logger . warn ( warning . warning ) ) ;
55
91
}
56
92
57
93
return detectedErrors ;
58
94
}
59
95
60
- public validateJavacVersion ( installedJavacVersion : string , options ?: IAndroidToolsInfoOptions ) : boolean {
96
+ public validateJavacVersion (
97
+ installedJavacVersion : string ,
98
+ options ?: IAndroidToolsInfoOptions
99
+ ) : boolean {
61
100
const showWarningsAsErrors = options && options . showWarningsAsErrors ;
62
101
63
- return androidToolsInfo . validateJavacVersion ( installedJavacVersion ) . map ( warning => this . printMessage ( warning . warning , showWarningsAsErrors ) ) . length > 0 ;
102
+ return (
103
+ androidToolsInfo
104
+ . validateJavacVersion ( installedJavacVersion )
105
+ . map ( ( warning ) =>
106
+ this . printMessage ( warning . warning , showWarningsAsErrors )
107
+ ) . length > 0
108
+ ) ;
64
109
}
65
110
66
111
public async getPathToAdbFromAndroidHome ( ) : Promise < string > {
@@ -69,17 +114,31 @@ export class AndroidToolsInfo implements IAndroidToolsInfo {
69
114
} catch ( err ) {
70
115
// adb does not exist, so ANDROID_HOME is not set correctly
71
116
// try getting default adb path (included in CLI package)
72
- this . $logger . trace ( `Error while executing '${ path . join ( androidToolsInfo . androidHome , "platform-tools" , "adb" ) } help'. Error is: ${ err . message } ` ) ;
117
+ this . $logger . trace (
118
+ `Error while executing '${ path . join (
119
+ androidToolsInfo . androidHome ,
120
+ "platform-tools" ,
121
+ "adb"
122
+ ) } help'. Error is: ${ err . message } `
123
+ ) ;
73
124
}
74
125
75
126
return null ;
76
127
}
77
128
78
129
@cache ( )
79
- public validateAndroidHomeEnvVariable ( options ?: IAndroidToolsInfoOptions ) : boolean {
130
+ public validateAndroidHomeEnvVariable (
131
+ options ?: IAndroidToolsInfoOptions
132
+ ) : boolean {
80
133
const showWarningsAsErrors = options && options . showWarningsAsErrors ;
81
134
82
- return androidToolsInfo . validateAndroidHomeEnvVariable ( ) . map ( warning => this . printMessage ( warning . warning , showWarningsAsErrors ) ) . length > 0 ;
135
+ return (
136
+ androidToolsInfo
137
+ . validateAndroidHomeEnvVariable ( )
138
+ . map ( ( warning ) =>
139
+ this . printMessage ( warning . warning , showWarningsAsErrors )
140
+ ) . length > 0
141
+ ) ;
83
142
}
84
143
85
144
private shouldGenerateTypings ( ) : boolean {
@@ -102,13 +161,18 @@ export class AndroidToolsInfo implements IAndroidToolsInfo {
102
161
}
103
162
}
104
163
105
- private getCompileSdkVersion ( installedTargets : string [ ] , latestCompileSdk : number ) : number {
164
+ private getCompileSdkVersion (
165
+ installedTargets : string [ ] ,
166
+ latestCompileSdk : number
167
+ ) : number {
106
168
const userSpecifiedCompileSdk = this . $options . compileSdk ;
107
169
108
170
if ( userSpecifiedCompileSdk ) {
109
171
const androidCompileSdk = `${ androidToolsInfo . ANDROID_TARGET_PREFIX } -${ userSpecifiedCompileSdk } ` ;
110
172
if ( ! _ . includes ( installedTargets , androidCompileSdk ) ) {
111
- this . $errors . fail ( `You have specified '${ userSpecifiedCompileSdk } ' for compile sdk, but it is not installed on your system.` ) ;
173
+ this . $errors . fail (
174
+ `You have specified '${ userSpecifiedCompileSdk } ' for compile sdk, but it is not installed on your system.`
175
+ ) ;
112
176
}
113
177
114
178
return userSpecifiedCompileSdk ;
@@ -119,7 +183,9 @@ export class AndroidToolsInfo implements IAndroidToolsInfo {
119
183
120
184
// TODO check if still needed
121
185
private getTargetSdk ( compileSdk : number ) : number {
122
- const targetSdk = this . $options . sdk ? parseInt ( this . $options . sdk ) : compileSdk ;
186
+ const targetSdk = this . $options . sdk
187
+ ? parseInt ( this . $options . sdk )
188
+ : compileSdk ;
123
189
this . $logger . trace ( `Selected targetSdk is: ${ targetSdk } ` ) ;
124
190
return targetSdk ;
125
191
}
0 commit comments