@@ -87,101 +87,99 @@ export async function generateVersion(
8787 targetPackageJson : Partial < PackageJson > ,
8888 targetConfig : ProjectConfig ,
8989 currentBranchName : string ,
90- ) : Promise < string > {
91- return new Promise ( async resolve => {
92- let versionResult : string = null ;
90+ ) {
91+ let versionResult : string = null ;
9392
94- let version = '' ;
93+ let version = '' ;
9594
96- try {
97- const versionResultExec = execSync (
98- `${ targetConfig . npmClient } view ${ targetPackageJson . name } @${ targetPackageJson . version } version` ,
99- ) ;
95+ try {
96+ const versionResultExec = execSync (
97+ `${ targetConfig . npmClient } view ${ targetPackageJson . name } @${ targetPackageJson . version } version` ,
98+ ) ;
10099
101- if ( versionResultExec ) {
102- versionResult = versionResultExec . toString ( ) . trim ( ) ;
103- } else {
104- versionResult = null ;
105- }
106- } catch ( error ) {
107- // Throw error means not exist
100+ if ( versionResultExec ) {
101+ versionResult = versionResultExec . toString ( ) . trim ( ) ;
102+ } else {
108103 versionResult = null ;
109104 }
105+ } catch ( error ) {
106+ // Throw error means not exist
107+ versionResult = null ;
108+ }
110109
111- // Generate beta version if branch is not master or develop
112- if ( options . tag === 'beta' || ! isDevelopBranch ) {
113- // fixed basicVersion to 1.0.0
114- const basicVersion = '1.0.0' ;
115-
116- const branchNameInVersion = currentBranchName . replace ( / \/ / g, '' ) . replace ( / \. / g, '' ) ;
117-
118- let publishedVersions : string [ ] = [ ] ;
119- try {
120- // all of package versions
121- const tempVersions = execSync ( `${ targetConfig . npmClient } view ${ targetPackageJson . name } versions` ) ;
122- if ( tempVersions ) {
123- publishedVersions = tempVersions
124- . toString ( )
125- . trim ( )
126- . replace ( / \n | ' | | \[ | \] / g, '' )
127- . split ( ',' ) ;
128- } else {
129- publishedVersions = [ ] ;
130- }
131- } catch ( e ) {
110+ // Generate beta version if branch is not master or develop
111+ if ( options . tag === 'beta' || ! isDevelopBranch ) {
112+ // fixed basicVersion to 1.0.0
113+ const basicVersion = '1.0.0' ;
114+
115+ const branchNameInVersion = currentBranchName . replace ( / \/ / g, '' ) . replace ( / \. / g, '' ) ;
116+
117+ let publishedVersions : string [ ] = [ ] ;
118+ try {
119+ // all of package versions
120+ const tempVersions = execSync ( `${ targetConfig . npmClient } view ${ targetPackageJson . name } versions` ) ;
121+ if ( tempVersions ) {
122+ publishedVersions = tempVersions
123+ . toString ( )
124+ . trim ( )
125+ . replace ( / \n | ' | | \[ | \] / g, '' )
126+ . split ( ',' ) ;
127+ } else {
132128 publishedVersions = [ ] ;
133129 }
130+ } catch ( e ) {
131+ publishedVersions = [ ] ;
132+ }
134133
135- let maxBetaVersionNum = 0 ;
134+ let maxBetaVersionNum = 0 ;
136135
137- // 1.0.0-branchName.version
138- const betaVersionReg = new RegExp ( `\\d+\\.\\d+\\.\\d+-${ branchNameInVersion } \\.\\d+` ) ;
136+ // 1.0.0-branchName.version
137+ const betaVersionReg = new RegExp ( `\\d+\\.\\d+\\.\\d+-${ branchNameInVersion } \\.\\d+` ) ;
139138
140- // get max beta version
141- publishedVersions . forEach ( ( v : string ) => {
142- if ( betaVersionReg . test ( v ) ) {
143- const tempBetaVersion = Number ( v . split ( `${ branchNameInVersion } .` ) [ 1 ] ) ;
139+ // get max beta version
140+ publishedVersions . forEach ( ( v : string ) => {
141+ if ( betaVersionReg . test ( v ) ) {
142+ const tempBetaVersion = Number ( v . split ( `${ branchNameInVersion } .` ) [ 1 ] ) ;
144143
145- if ( maxBetaVersionNum < tempBetaVersion ) {
146- maxBetaVersionNum = tempBetaVersion ;
147- }
144+ if ( maxBetaVersionNum < tempBetaVersion ) {
145+ maxBetaVersionNum = tempBetaVersion ;
148146 }
149- } ) ;
150-
151- // basic version without branchName -> use basic version + branch name + beta version
152- version = `${ basicVersion } -${ branchNameInVersion } .${ maxBetaVersionNum + 1 } ` ;
153- } else if ( versionResult ) {
154- if ( ! options . semver ) {
155- const versionPrompt = await inquirer . prompt ( [
156- {
157- message : `${ targetPackageJson . name } @${ targetPackageJson . version } exist, can upgrade to` ,
158- name : 'version' ,
159- type : 'list' ,
160- choices : [
161- {
162- name : `Patch(${ semver . inc ( targetPackageJson . version , 'patch' ) } )` ,
163- value : semver . inc ( targetPackageJson . version , 'patch' ) ,
164- } ,
165- {
166- name : `Minor(${ semver . inc ( targetPackageJson . version , 'minor' ) } )` ,
167- value : semver . inc ( targetPackageJson . version , 'minor' ) ,
168- } ,
169- {
170- name : `Major(${ semver . inc ( targetPackageJson . version , 'major' ) } )` ,
171- value : semver . inc ( targetPackageJson . version , 'major' ) ,
172- } ,
173- ] ,
174- } ,
175- ] ) ;
176- version = versionPrompt . version ;
177- } else if ( [ 'patch' , 'minor' , 'major' ] . some ( each => each === options . semver ) ) {
178- version = semver . inc ( targetPackageJson . version , options . semver as semver . ReleaseType ) ;
179- } else {
180- logFatal ( 'semver must be "patch" "minor" or "major"' ) ;
181147 }
148+ } ) ;
149+
150+ // basic version without branchName -> use basic version + branch name + beta version
151+ version = `${ basicVersion } -${ branchNameInVersion } .${ maxBetaVersionNum + 1 } ` ;
152+ } else if ( versionResult ) {
153+ if ( ! options . semver ) {
154+ const versionPrompt = await inquirer . prompt ( [
155+ {
156+ message : `${ targetPackageJson . name } @${ targetPackageJson . version } exist, can upgrade to` ,
157+ name : 'version' ,
158+ type : 'list' ,
159+ choices : [
160+ {
161+ name : `Patch(${ semver . inc ( targetPackageJson . version , 'patch' ) } )` ,
162+ value : semver . inc ( targetPackageJson . version , 'patch' ) ,
163+ } ,
164+ {
165+ name : `Minor(${ semver . inc ( targetPackageJson . version , 'minor' ) } )` ,
166+ value : semver . inc ( targetPackageJson . version , 'minor' ) ,
167+ } ,
168+ {
169+ name : `Major(${ semver . inc ( targetPackageJson . version , 'major' ) } )` ,
170+ value : semver . inc ( targetPackageJson . version , 'major' ) ,
171+ } ,
172+ ] ,
173+ } ,
174+ ] ) ;
175+ version = versionPrompt . version ;
176+ } else if ( [ 'patch' , 'minor' , 'major' ] . some ( each => each === options . semver ) ) {
177+ version = semver . inc ( targetPackageJson . version , options . semver as semver . ReleaseType ) ;
178+ } else {
179+ logFatal ( 'semver must be "patch" "minor" or "major"' ) ;
182180 }
183- resolve ( version ) ;
184- } ) ;
181+ }
182+ return version ;
185183}
186184
187185/** Upgrade package.json's version */
0 commit comments