@@ -19,6 +19,7 @@ export class UpdateController extends UpdateControllerBase implements IUpdateCon
19
19
static readonly backupFolder : string = ".update_backup" ;
20
20
static readonly updateFailMessage : string = "Could not update the project!" ;
21
21
static readonly backupFailMessage : string = "Could not backup project folders!" ;
22
+ static readonly failedToGetTemplateManifestMessage = "Failed to get template information for the specified version. Original error: %s" ;
22
23
23
24
constructor (
24
25
protected $fs : IFileSystem ,
@@ -29,6 +30,7 @@ export class UpdateController extends UpdateControllerBase implements IUpdateCon
29
30
private $devicePlatformsConstants : Mobile . IDevicePlatformsConstants ,
30
31
private $addPlatformService : IAddPlatformService ,
31
32
private $logger : ILogger ,
33
+ private $errors : IErrors ,
32
34
private $pluginsService : IPluginsService ,
33
35
protected $pacoteService : IPacoteService ,
34
36
private $projectDataService : IProjectDataService ) {
@@ -58,8 +60,7 @@ export class UpdateController extends UpdateControllerBase implements IUpdateCon
58
60
59
61
public async shouldUpdate ( { projectDir, version } : { projectDir : string , version ?: string } ) : Promise < boolean > {
60
62
const projectData = this . $projectDataService . getProjectData ( projectDir ) ;
61
- const templateName = this . getTemplateName ( projectData ) ;
62
- const templateManifest = await this . getPackageManifest ( templateName , version ) ;
63
+ const templateManifest = await this . getTemplateManifest ( projectData , version ) ;
63
64
const dependencies = this . getUpdatableDependencies ( templateManifest . dependencies ) ;
64
65
const devDependencies = this . getUpdatableDependencies ( templateManifest . devDependencies ) ;
65
66
@@ -92,8 +93,7 @@ export class UpdateController extends UpdateControllerBase implements IUpdateCon
92
93
}
93
94
94
95
private async updateProject ( projectData : IProjectData , version : string ) : Promise < void > {
95
- const templateName = this . getTemplateName ( projectData ) ;
96
- const templateManifest = await this . getPackageManifest ( templateName , version ) ;
96
+ const templateManifest = await this . getTemplateManifest ( projectData , version ) ;
97
97
const dependencies = this . getUpdatableDependencies ( templateManifest . dependencies ) ;
98
98
const devDependencies = this . getUpdatableDependencies ( templateManifest . devDependencies ) ;
99
99
@@ -208,6 +208,19 @@ export class UpdateController extends UpdateControllerBase implements IUpdateCon
208
208
209
209
return template ;
210
210
}
211
+
212
+ private async getTemplateManifest ( projectData : IProjectData , version : string ) : Promise < any > {
213
+ let templateManifest ;
214
+ const templateName = this . getTemplateName ( projectData ) ;
215
+ version = version || await this . $packageInstallationManager . getLatestCompatibleVersionSafe ( templateName ) ;
216
+ try {
217
+ templateManifest = await this . getPackageManifest ( templateName , version ) ;
218
+ } catch ( err ) {
219
+ this . $errors . fail ( UpdateController . failedToGetTemplateManifestMessage , err . message ) ;
220
+ }
221
+
222
+ return templateManifest ;
223
+ }
211
224
}
212
225
213
226
$injector . register ( "updateController" , UpdateController ) ;
0 commit comments