@@ -5,19 +5,22 @@ export default class XcodeVersion {
55 private _version : SemanticVersion
66 private _isBeta : boolean
77 private _betaNumber : number | null
8+ private _isReleaseCandidate : boolean
89 private _buildNumber : string | null
910
1011 constructor (
1112 filePath : string ,
1213 version : SemanticVersion ,
1314 isBeta : boolean = false ,
1415 betaNumber : number | null = null ,
16+ isReleaseCandidate : boolean = false ,
1517 buildNumber : string | null = null
1618 ) {
1719 this . _filePath = filePath
1820 this . _version = version
1921 this . _isBeta = isBeta
2022 this . _betaNumber = betaNumber
23+ this . _isReleaseCandidate = isReleaseCandidate
2124 this . _buildNumber = buildNumber
2225 }
2326
@@ -37,6 +40,10 @@ export default class XcodeVersion {
3740 return this . _betaNumber
3841 }
3942
43+ get isReleaseCandidate ( ) : boolean {
44+ return this . _isReleaseCandidate
45+ }
46+
4047 get buildNumber ( ) : string | null {
4148 return this . _buildNumber
4249 }
@@ -47,6 +54,7 @@ export default class XcodeVersion {
4754 this . version ,
4855 this . isBeta ,
4956 this . betaNumber ,
57+ this . isReleaseCandidate ,
5058 buildNumber
5159 )
5260 }
@@ -59,6 +67,9 @@ export default class XcodeVersion {
5967 str += " " + this . betaNumber
6068 }
6169 }
70+ if ( this . isReleaseCandidate ) {
71+ str += " RC"
72+ }
6273 if ( this . buildNumber != null ) {
6374 str += " (" + this . buildNumber + ")"
6475 }
@@ -75,6 +86,10 @@ export function xcodeVersionSort(lhs: XcodeVersion, rhs: XcodeVersion): number {
7586 return - 1
7687 } else if ( ! lhs . isBeta && rhs . isBeta ) {
7788 return 1
89+ } else if ( lhs . isReleaseCandidate && ! rhs . isReleaseCandidate ) {
90+ return - 1
91+ } else if ( ! lhs . isReleaseCandidate && rhs . isReleaseCandidate ) {
92+ return 1
7893 } else if ( lhs . isBeta && rhs . isBeta && lhs . betaNumber != null && rhs . betaNumber != null ) {
7994 if ( lhs . betaNumber < rhs . betaNumber ) {
8095 return - 1
0 commit comments