@@ -7,7 +7,7 @@ import { OutgoingHttpHeaders } from "http"
77import  {  safeLoad  }  from  "js-yaml" 
88import  {  Lazy  }  from  "lazy-val" 
99import  *  as  path  from  "path" 
10- import  {  eq  as  isVersionsEqual ,  gt  as  isVersionGreaterThan ,  parse  as  parseVersion ,  prerelease  as  getVersionPreleaseComponents ,  SemVer  }  from  "semver" 
10+ import  {  eq  as  isVersionsEqual ,  gt  as  isVersionGreaterThan ,  lt   as   isVersionLessThan ,   parse  as  parseVersion ,  prerelease  as  getVersionPreleaseComponents ,  SemVer  }  from  "semver" 
1111import  {  AppAdapter  }  from  "./AppAdapter" 
1212import  {  createTempUpdateFile ,  DownloadedUpdateHelper  }  from  "./DownloadedUpdateHelper" 
1313import  {  ElectronAppAdapter  }  from  "./ElectronAppAdapter" 
@@ -317,18 +317,17 @@ export abstract class AppUpdater extends EventEmitter {
317317    // https://github.com/electron-userland/electron-builder/pull/3111#issuecomment-405033227 
318318    // https://github.com/electron-userland/electron-builder/pull/3111#issuecomment-405030797 
319319    const  isLatestVersionNewer  =  isVersionGreaterThan ( latestVersion ,  currentVersion ) 
320-     if  ( ! this . allowDowngrade )  { 
321-       return  isLatestVersionNewer 
320+     const  isLatestVersionOlder  =  isVersionLessThan ( latestVersion ,  currentVersion ) 
321+ 
322+     if  ( isLatestVersionNewer )  { 
323+       return  true 
322324    } 
323325
324-     const  currentVersionPrereleaseComponent  =  getVersionPreleaseComponents ( currentVersion ) 
325-     const  latestVersionPrereleaseComponent  =  getVersionPreleaseComponents ( latestVersion ) 
326-     if  ( currentVersionPrereleaseComponent  ===  latestVersionPrereleaseComponent )  { 
327-       // allowDowngrade taken in account only if channel differs 
328-       return  isLatestVersionNewer 
326+     if  ( this . allowDowngrade  &&  isLatestVersionOlder )  { 
327+       return  true 
329328    } 
330329
331-     return  true 
330+     return  false 
332331  } 
333332
334333  protected  async  getUpdateInfoAndProvider ( ) : Promise < UpdateInfoAndProvider >  { 
0 commit comments