@@ -78,16 +78,33 @@ export class ServerDownloader {
78
78
}
79
79
80
80
async downloadServerIfNeeded ( status : Status ) : Promise < void > {
81
- const serverInfo = ( await this . installedServerInfo ( ) ) || { version : "0.0.0" , lastUpdate : Number . MIN_SAFE_INTEGER } ;
82
- const secondsSinceLastUpdate = ( Date . now ( ) - serverInfo . lastUpdate ) / 1000 ;
81
+ const serverInfo = await this . installedServerInfo ( ) ;
82
+ const serverInfoOrDefault = serverInfo || { version : "0.0.0" , lastUpdate : Number . MIN_SAFE_INTEGER } ;
83
+ const secondsSinceLastUpdate = ( Date . now ( ) - serverInfoOrDefault . lastUpdate ) / 1000 ;
83
84
84
85
if ( secondsSinceLastUpdate > 480 ) {
85
86
// Only query GitHub API for latest version if some time has passed
86
- LOG . info ( "Querying GitHub API for new KLS version..." ) ;
87
+ LOG . info ( `Querying GitHub API for new ${ this . displayName } version...` ) ;
88
+
89
+ let releaseInfo : GitHubReleasesAPIResponse ;
90
+
91
+ try {
92
+ releaseInfo = await this . latestReleaseInfo ( ) ;
93
+ } catch ( error ) {
94
+ const message = `Could not fetch from GitHub releases API: ${ error } .` ;
95
+ if ( serverInfo == null ) {
96
+ // No server is installed yet, so throw
97
+ throw new Error ( message ) ;
98
+ } else {
99
+ // Do not throw since user might just be offline
100
+ // and a version of the server is already installed
101
+ LOG . warn ( message ) ;
102
+ return ;
103
+ }
104
+ }
87
105
88
- const releaseInfo = await this . latestReleaseInfo ( ) ;
89
106
const latestVersion = releaseInfo . tag_name ;
90
- const installedVersion = serverInfo . version ;
107
+ const installedVersion = serverInfoOrDefault . version ;
91
108
const serverNeedsUpdate = semver . gt ( latestVersion , installedVersion ) ;
92
109
let newVersion = installedVersion ;
93
110
0 commit comments