@@ -79,12 +79,23 @@ async function release() {
7979
8080 let targetVersion = t
8181
82+ const parsedCurrentVersion = semver . parse ( currentVersion ) as SemVer
83+
8284 if ( t . startsWith ( 'pre' ) ) {
85+ // 只升 prerelease 版本时,已经是 beta 阶段就不可能再回到 alpha 阶段
86+ let prereleaseTypes = [ 'alpha' , 'beta' , 'rc' ]
87+ if ( t === 'prerelease' ) {
88+ const i = prereleaseTypes . indexOf ( parsedCurrentVersion . prerelease [ 0 ] )
89+ if ( i !== - 1 ) {
90+ prereleaseTypes = prereleaseTypes . slice ( i )
91+ }
92+ }
93+
8394 targetVersion = ( await prompts ( {
8495 type : 'select' ,
8596 name : 'value' ,
8697 message : 'Select prerelease type' ,
87- choices : Array . from ( [ 'alpha' , 'beta' , 'rc' ] , title => ( {
98+ choices : Array . from ( prereleaseTypes , title => ( {
8899 title,
89100 value : semver . inc ( currentVersion , t , title ) ,
90101 } ) ) ,
@@ -112,7 +123,6 @@ async function release() {
112123 }
113124
114125 if ( [ 'minor' , 'major' ] . includes ( t ) ) {
115- const parsedCurrentVersion = semver . parse ( currentVersion ) as SemVer
116126 const parsedTargetVersion = semver . parse ( targetVersion ) as SemVer
117127 const pattern = new RegExp ( `${ name } @${ parsedCurrentVersion . major } .${ parsedCurrentVersion . minor } ` , 'g' )
118128 const replacement = `${ name } @${ parsedTargetVersion . major } .${ parsedTargetVersion . minor } `
0 commit comments