@@ -8,15 +8,18 @@ var upgrader = require("./tsconfig-upgrader");
8
8
var projectDir = hook . findProjectDir ( ) ;
9
9
if ( projectDir ) {
10
10
var tsconfigPath = path . join ( projectDir , "tsconfig.json" ) ;
11
+ var hasModules30 = upgrader . hasModules30 ( projectDir ) ;
11
12
if ( fs . existsSync ( tsconfigPath ) ) {
12
13
upgrader . migrateTsConfig ( tsconfigPath , projectDir ) ;
13
14
} else {
14
15
createTsconfig ( tsconfigPath ) ;
15
16
}
16
- if ( ! upgrader . hasModules30 ( projectDir ) ) {
17
+
18
+ if ( ! hasModules30 ) {
17
19
createReferenceFile ( ) ;
18
20
}
19
- installTypescript ( ) ;
21
+
22
+ installTypescript ( { force : hasModules30 } ) ;
20
23
}
21
24
22
25
function createReferenceFile ( ) {
@@ -60,12 +63,17 @@ function getProjectTypeScriptVersion() {
60
63
}
61
64
}
62
65
63
- function installTypescript ( ) {
64
- var installedTypeScriptVersion = getProjectTypeScriptVersion ( ) ;
65
- if ( installedTypeScriptVersion ) {
66
+ function installTypescript ( { force = false } = { } ) {
67
+ const installedTypeScriptVersion = getProjectTypeScriptVersion ( ) ;
68
+
69
+ if ( installedTypeScriptVersion && ! force ) {
66
70
console . log ( "Project already targets TypeScript " + installedTypeScriptVersion ) ;
67
71
} else {
68
- require ( "child_process" ) . exec ( "npm install --save-dev typescript" , { cwd : projectDir } , function ( err , stdout , stderr ) {
72
+ const command = force ? "npm install -D typescript" : "npm update -D typescript" ;
73
+
74
+ console . log ( "Installing TypeScript..." ) ;
75
+
76
+ require ( "child_process" ) . exec ( command , { cwd : projectDir } , function ( err , stdout , stderr ) {
69
77
if ( err ) {
70
78
console . warn ( "npm: " + err . toString ( ) ) ;
71
79
}
0 commit comments