File tree 1 file changed +16
-1
lines changed
1 file changed +16
-1
lines changed Original file line number Diff line number Diff line change 1
1
const gitSemverTags = require ( 'git-semver-tags' ) ;
2
2
const semver = require ( 'semver' ) ;
3
3
4
- module . exports = function ( tagPrefix = undefined ) {
4
+ module . exports = function ( { tagPrefix, prerelease } ) {
5
5
return new Promise ( ( resolve , reject ) => {
6
6
gitSemverTags ( { tagPrefix } , function ( err , tags ) {
7
7
if ( err ) return reject ( err ) ;
8
8
else if ( ! tags . length ) return resolve ( '1.0.0' ) ;
9
9
// Respect tagPrefix
10
10
tags = tags . map ( ( tag ) => tag . replace ( new RegExp ( '^' + tagPrefix ) , '' ) ) ;
11
+ if ( prerelease ) {
12
+ // ignore any other prelease tags
13
+ tags = tags . filter ( ( tag ) => {
14
+ if ( ! semver . valid ( tag ) ) return false ;
15
+ if ( ! semver . prerelease ( tag ) ) {
16
+ // include all non-prerelease versions
17
+ return true ;
18
+ }
19
+ // check if the name of the prerelease matches the one we are looking for
20
+ if ( semver . prerelease ( tag ) [ 0 ] === prerelease ) {
21
+ return true ;
22
+ }
23
+ return false ;
24
+ } ) ;
25
+ }
11
26
// ensure that the largest semver tag is at the head.
12
27
tags = tags . map ( ( tag ) => {
13
28
return semver . clean ( tag ) ;
You can’t perform that action at this time.
0 commit comments