@@ -46,6 +46,7 @@ const main = () => {
4646 a = a . slice ( 0 , indexOfEqualSign )
4747 argv . unshift ( value )
4848 }
49+
4950 switch ( a ) {
5051 case '-rv' : case '-rev' : case '--rev' : case '--reverse' :
5152 reverse = true
@@ -60,15 +61,10 @@ const main = () => {
6061 versions . push ( argv . shift ( ) )
6162 break
6263 case '-i' : case '--inc' : case '--increment' :
63- switch ( argv [ 0 ] ) {
64- case 'major' : case 'minor' : case 'patch' : case 'prerelease' :
65- case 'premajor' : case 'preminor' : case 'prepatch' :
66- case 'release' :
67- inc = argv . shift ( )
68- break
69- default :
70- inc = 'patch'
71- break
64+ if ( semver . RELEASE_TYPES . includes ( argv [ 0 ] ) || ( argv [ 0 ] === 'release' ) ) {
65+ inc = { value : argv . shift ( ) , maybeErrantValue : null , option : a }
66+ } else {
67+ inc = { value : 'patch' , maybeErrantValue : argv [ 0 ] , option : a }
7268 }
7369 break
7470 case '--preid' :
@@ -102,6 +98,14 @@ const main = () => {
10298
10399 options = parseOptions ( { loose, includePrerelease, rtl } )
104100
101+ if (
102+ inc &&
103+ versions . includes ( inc . maybeErrantValue ) &&
104+ ! semver . valid ( inc . maybeErrantValue , options )
105+ ) {
106+ console . warn ( `Invalid value for ${ inc . option } ; defaulting to 'patch'. This may become a failure in future major versions.` )
107+ }
108+
105109 versions = versions . map ( ( v ) => {
106110 return coerce ? ( semver . coerce ( v , options ) || { version : v } ) . version : v
107111 } ) . filter ( ( v ) => {
@@ -125,7 +129,7 @@ const main = () => {
125129 versions
126130 . sort ( ( a , b ) => semver [ reverse ? 'rcompare' : 'compare' ] ( a , b , options ) )
127131 . map ( v => semver . clean ( v , options ) )
128- . map ( v => inc ? semver . inc ( v , inc , options , identifier , identifierBase ) : v )
132+ . map ( v => inc ? semver . inc ( v , inc . value , options , identifier , identifierBase ) : v )
129133 . forEach ( v => console . log ( v ) )
130134}
131135
0 commit comments