File tree Expand file tree Collapse file tree 3 files changed +21
-4
lines changed Expand file tree Collapse file tree 3 files changed +21
-4
lines changed Original file line number Diff line number Diff line change 12
12
<div local-class =" release-track" >
13
13
{{ #if @version.yanked }}
14
14
{{ svg-jar " trash" }}
15
+ {{ else if @version.invalidSemver}}
16
+ ?
15
17
{{ else if @version.isFirst}}
16
18
{{ svg-jar " star" }}
17
19
{{ else }}
Original file line number Diff line number Diff line change @@ -13,6 +13,9 @@ export default class VersionRow extends Component {
13
13
if ( version . yanked ) {
14
14
return 'This version was yanked' ;
15
15
}
16
+ if ( version . invalidSemver ) {
17
+ return `Failed to parse version ${ version . num } ` ;
18
+ }
16
19
if ( version . isFirst ) {
17
20
return 'This is the first version that was released' ;
18
21
}
Original file line number Diff line number Diff line change @@ -44,29 +44,41 @@ export default class Version extends Model {
44
44
return oldestVersion === this ;
45
45
}
46
46
47
- @cached get semver ( ) {
48
- return semverParse ( this . num ) ;
47
+ get semver ( ) {
48
+ return semverParse ( this . num , { loose : true } ) ;
49
+ }
50
+
51
+ get invalidSemver ( ) {
52
+ return this . semver === null ;
49
53
}
50
54
51
55
get isPrerelease ( ) {
56
+ if ( this . invalidSemver ) {
57
+ return false ;
58
+ }
59
+
52
60
return this . semver . prerelease . length !== 0 ;
53
61
}
54
62
55
63
get releaseTrack ( ) {
64
+ if ( this . invalidSemver ) {
65
+ return null ;
66
+ }
67
+
56
68
let { semver } = this ;
57
69
return `${ semver . major } .${ semver . major === 0 ? semver . minor : 'x' } ` ;
58
70
}
59
71
60
72
@cached get isHighestOfReleaseTrack ( ) {
61
- if ( this . isPrerelease ) {
73
+ if ( this . isPrerelease || this . invalidSemver ) {
62
74
return false ;
63
75
}
64
76
65
77
let { crate, semver, releaseTrack } = this ;
66
78
let { versions } = crate ;
67
79
// find all other non-prerelease versions on the same release track
68
80
let sameTrackVersions = versions . filter (
69
- it => it !== this && ! it . yanked && ! it . isPrerelease && it . releaseTrack === releaseTrack ,
81
+ it => it !== this && ! it . yanked && ! it . isPrerelease && ! it . invalidSemver && it . releaseTrack === releaseTrack ,
70
82
) ;
71
83
// check if we're the "highest"
72
84
return sameTrackVersions . every ( it => it . semver . compare ( semver ) === - 1 ) ;
You can’t perform that action at this time.
0 commit comments