@@ -19,18 +19,21 @@ module.exports = async function getVersions () {
19
19
} )
20
20
}
21
21
22
+ // should also check for prerelease versions if the current one is a prerelease
23
+ const includePrerelease = ! ! semver . prerelease ( local )
24
+
22
25
const { latestVersion = local , lastChecked = 0 } = loadOptions ( )
23
26
const cached = latestVersion
24
27
const daysPassed = ( Date . now ( ) - lastChecked ) / ( 60 * 60 * 1000 * 24 )
25
28
26
29
if ( daysPassed > 1 ) {
27
30
// if we haven't check for a new version in a day, wait for the check
28
31
// before proceeding
29
- latest = await getAndCacheLatestVersion ( cached )
32
+ latest = await getAndCacheLatestVersion ( cached , includePrerelease )
30
33
} else {
31
34
// Otherwise, do a check in the background. If the result was updated,
32
35
// it will be used for the next 24 hours.
33
- getAndCacheLatestVersion ( cached )
36
+ getAndCacheLatestVersion ( cached , includePrerelease )
34
37
latest = cached
35
38
}
36
39
@@ -42,8 +45,14 @@ module.exports = async function getVersions () {
42
45
43
46
// fetch the latest version and save it on disk
44
47
// so that it is available immediately next time
45
- async function getAndCacheLatestVersion ( cached ) {
46
- const version = await pm . getRemoteVersion ( 'vue-cli-version-marker' , 'latest' )
48
+ async function getAndCacheLatestVersion ( cached , includePrerelease ) {
49
+ let version = await pm . getRemoteVersion ( 'vue-cli-version-marker' , 'latest' )
50
+
51
+ if ( includePrerelease ) {
52
+ const next = await pm . getRemoteVersion ( 'vue-cli-version-marker' , 'next' )
53
+ version = semver . gt ( next , version ) ? next : version
54
+ }
55
+
47
56
if ( semver . valid ( version ) && version !== cached ) {
48
57
saveOptions ( { latestVersion : version , lastChecked : Date . now ( ) } )
49
58
return version
0 commit comments