@@ -70,6 +70,15 @@ Running this command will ${MigrateController.COMMON_MIGRATE_MESSAGE}`;
7070 { packageName : "kinvey-nativescript-sdk" , verifiedVersion : "4.2.1" } ,
7171 { packageName : "nativescript-plugin-firebase" , verifiedVersion : "9.0.2" } ,
7272 { packageName : "nativescript-vue" , verifiedVersion : "2.3.0" } ,
73+ {
74+ packageName : "nativescript-angular" , verifiedVersion : "8.0.2" ,
75+ shouldMigrateAction : async ( projectData : IProjectData , allowInvalidVersions : boolean ) => {
76+ const dependency = { packageName : "nativescript-angular" , verifiedVersion : "8.0.2" , isDev : false } ;
77+ const result = this . hasDependency ( dependency , projectData ) && await this . shouldMigrateDependencyVersion ( dependency , projectData , allowInvalidVersions ) ;
78+ return result ;
79+ } ,
80+ migrateAction : this . migrateNativeScriptAngular . bind ( this )
81+ } ,
7382 { packageName : "nativescript-permissions" , verifiedVersion : "1.3.0" } ,
7483 { packageName : "nativescript-cardview" , verifiedVersion : "3.2.0" } ,
7584 {
@@ -81,7 +90,7 @@ Running this command will ${MigrateController.COMMON_MIGRATE_MESSAGE}`;
8190 } ,
8291 migrateAction : this . migrateUnitTestRunner . bind ( this )
8392 } ,
84- { packageName : MigrateController . typescriptPackageName , isDev : true , getVerifiedVersion : this . getAngularTypeScriptVersion . bind ( this ) } ,
93+ { packageName : MigrateController . typescriptPackageName , isDev : true , verifiedVersion : "3.4.5" } ,
8594 { packageName : "nativescript-localize" , verifiedVersion : "4.2.0" } ,
8695 { packageName : "nativescript-dev-babel" , verifiedVersion : "0.2.1" } ,
8796 { packageName : "nativescript-nfc" , verifiedVersion : "4.0.1" }
@@ -179,31 +188,6 @@ Running this command will ${MigrateController.COMMON_MIGRATE_MESSAGE}`;
179188 }
180189 }
181190
182- private async getAngularTypeScriptVersion ( projectData : IProjectData ) : Promise < string > {
183- let verifiedVersion = "3.4.1" ;
184- try {
185- const ngcPackageName = "@angular/compiler-cli" ;
186- // e.g. ~8.0.0
187- let ngcVersion = projectData . dependencies [ ngcPackageName ] || projectData . devDependencies [ ngcPackageName ] ;
188- if ( ngcVersion ) {
189- // e.g. 8.0.3
190- ngcVersion = await this . $packageInstallationManager . maxSatisfyingVersion ( ngcPackageName , ngcVersion ) ;
191- const ngcManifest = await this . getPackageManifest ( ngcPackageName , ngcVersion ) ;
192- // e.g. >=3.4 <3.5
193- verifiedVersion = ( ngcManifest && ngcManifest . peerDependencies &&
194- ngcManifest . peerDependencies [ MigrateController . typescriptPackageName ] ) || verifiedVersion ;
195-
196- // e.g. 3.4.4
197- verifiedVersion = await this . $packageInstallationManager . maxSatisfyingVersion (
198- MigrateController . typescriptPackageName , verifiedVersion ) ;
199- }
200- } catch ( error ) {
201- this . $logger . warn ( `Unable to determine the TypeScript version based on the Angular packages. Error is: '${ error } '.` ) ;
202- }
203-
204- return verifiedVersion ;
205- }
206-
207191 private async migrateOldAndroidAppResources ( projectData : IProjectData , backupDir : string ) {
208192 const appResourcesPath = projectData . getAppResourcesDirectoryPath ( ) ;
209193 if ( ! this . $androidResourcesMigrationService . hasMigrated ( appResourcesPath ) ) {
@@ -329,33 +313,23 @@ Running this command will ${MigrateController.COMMON_MIGRATE_MESSAGE}`;
329313 this . $errors . failWithoutHelp ( "Failed to find replacement dependency." ) ;
330314 }
331315
332- const replacementDepVersion = await this . getDependencyVerifiedVersion ( replacementDep , projectData ) ;
333316 this . $logger . info ( `Replacing '${ dependency . packageName } ' with '${ replacementDep . packageName } '.` ) ;
334- this . $pluginsService . addToPackageJson ( replacementDep . packageName , replacementDepVersion , replacementDep . isDev , projectData . projectDir ) ;
317+ this . $pluginsService . addToPackageJson ( replacementDep . packageName , replacementDep . verifiedVersion , replacementDep . isDev , projectData . projectDir ) ;
335318 }
336319
337320 return ;
338321 }
339322
340- const dependencyVersion = await this . getDependencyVerifiedVersion ( dependency , projectData ) ;
341323 if ( hasDependency && await this . shouldMigrateDependencyVersion ( dependency , projectData , allowInvalidVersions ) ) {
342- this . $logger . info ( `Updating '${ dependency . packageName } ' to compatible version '${ dependencyVersion } '` ) ;
343- this . $pluginsService . addToPackageJson ( dependency . packageName , dependencyVersion , dependency . isDev , projectData . projectDir ) ;
324+ this . $logger . info ( `Updating '${ dependency . packageName } ' to compatible version '${ dependency . verifiedVersion } '` ) ;
325+ this . $pluginsService . addToPackageJson ( dependency . packageName , dependency . verifiedVersion , dependency . isDev , projectData . projectDir ) ;
344326 return ;
345327 }
346328
347329 if ( ! hasDependency && dependency . shouldAddIfMissing ) {
348- this . $logger . info ( `Adding '${ dependency . packageName } ' with version '${ dependencyVersion } '` ) ;
349- this . $pluginsService . addToPackageJson ( dependency . packageName , dependencyVersion , dependency . isDev , projectData . projectDir ) ;
350- }
351- }
352-
353- private async getDependencyVerifiedVersion ( dependency : IMigrationDependency , projectData : IProjectData ) : Promise < string > {
354- if ( ! dependency . verifiedVersion && dependency . getVerifiedVersion ) {
355- dependency . verifiedVersion = await dependency . getVerifiedVersion ( projectData ) ;
330+ this . $logger . info ( `Adding '${ dependency . packageName } ' with version '${ dependency . verifiedVersion } '` ) ;
331+ this . $pluginsService . addToPackageJson ( dependency . packageName , dependency . verifiedVersion , dependency . isDev , projectData . projectDir ) ;
356332 }
357-
358- return dependency . verifiedVersion ;
359333 }
360334
361335 private async shouldMigrateDependencyVersion ( dependency : IMigrationDependency , projectData : IProjectData , allowInvalidVersions : boolean ) : Promise < boolean > {
@@ -364,7 +338,7 @@ Running this command will ${MigrateController.COMMON_MIGRATE_MESSAGE}`;
364338 const packageName = dependency . packageName ;
365339 const referencedVersion = dependencies [ packageName ] || devDependencies [ packageName ] ;
366340 const installedVersion = await this . getMaxDependencyVersion ( dependency . packageName , referencedVersion ) ;
367- const requiredVersion = await this . getDependencyVerifiedVersion ( dependency , projectData ) ;
341+ const requiredVersion = dependency . verifiedVersion ;
368342
369343 return this . isOutdatedVersion ( installedVersion , requiredVersion , allowInvalidVersions ) ;
370344 }
@@ -410,6 +384,23 @@ Running this command will ${MigrateController.COMMON_MIGRATE_MESSAGE}`;
410384
411385 return dependencies ;
412386 }
387+
388+ private async migrateNativeScriptAngular ( ) : Promise < IMigrationDependency [ ] > {
389+ const dependencies = [
390+ { packageName : "@angular/platform-browser-dynamic" , verifiedVersion : "8.0.0" , shouldAddIfMissing : true } ,
391+ { packageName : "@angular/common" , verifiedVersion : "8.0.0" , shouldAddIfMissing : true } ,
392+ { packageName : "@angular/compiler" , verifiedVersion : "8.0.0" , shouldAddIfMissing : true } ,
393+ { packageName : "@angular/core" , verifiedVersion : "8.0.0" , shouldAddIfMissing : true } ,
394+ { packageName : "@angular/forms" , verifiedVersion : "8.0.0" , shouldAddIfMissing : true } ,
395+ { packageName : "@angular/http" , verifiedVersion : "8.0.0-beta.10" , shouldAddIfMissing : true } ,
396+ { packageName : "@angular/platform-browser" , verifiedVersion : "8.0.0" , shouldAddIfMissing : true } ,
397+ { packageName : "@angular/router" , verifiedVersion : "8.0.0" , shouldAddIfMissing : true } ,
398+ { packageName : "rxjs" , verifiedVersion : "6.3.3" , shouldAddIfMissing : true } ,
399+ { packageName : "zone.js" , verifiedVersion : "0.9.1" , shouldAddIfMissing : true }
400+ ] ;
401+
402+ return dependencies ;
403+ }
413404}
414405
415406$injector . register ( "migrateController" , MigrateController ) ;
0 commit comments