@@ -8,29 +8,38 @@ import type { MavenVersionExtract, Version } from './types';
8
8
9
9
// https://regex101.com/r/IcOs7P/1
10
10
const DISTRIBUTION_URL_REGEX = regEx (
11
- '^(?:distributionUrl\\s*=\\s*)(?<url >\\S*-(?<version>\\d+\\.\\d+(?:\\.\\d+)?(?:-\\w+)*)-(?<type>bin|all)\\.zip)\\s*$' ,
11
+ '^(?:distributionUrl\\s*=\\s*)(?<replaceString >\\S*-(?<version>\\d+\\.\\d+(?:\\.\\d+)?(?:-\\w+)*)-(?<type>bin|all)\\.zip)\\s*$' ,
12
12
) ;
13
13
14
14
const WRAPPER_URL_REGEX = regEx (
15
- '^(?:wrapperUrl\\s*=\\s*)(?<url>\\S*-(?<version>\\d+\\.\\d+(?:\\.\\d+)?(?:-\\w+)*)(?:.jar))' ,
15
+ '^(?:wrapperUrl\\s*=\\s*)(?<replaceString>\\S*-(?<version>\\d+\\.\\d+(?:\\.\\d+)?(?:-\\w+)*)(?:.jar))' ,
16
+ ) ;
17
+
18
+ // https://regex101.com/r/7x1Otq/3
19
+ const WRAPPER_VERSION_REGEX = regEx (
20
+ '^(?:wrapperVersion\\s*=\\s*)(?<replaceString>(?<version>\\d+\\.\\d+(?:\\.\\d+)?))' ,
16
21
) ;
17
22
18
23
function extractVersions ( fileContent : string ) : MavenVersionExtract {
19
24
const lines = coerceArray ( fileContent ?. split ( newlineRegex ) ) ;
20
25
const maven = extractLineInfo ( lines , DISTRIBUTION_URL_REGEX ) ?? undefined ;
21
- const wrapper = extractLineInfo ( lines , WRAPPER_URL_REGEX ) ?? undefined ;
26
+ const wrapper =
27
+ extractLineInfo ( lines , WRAPPER_URL_REGEX , WRAPPER_VERSION_REGEX ) ??
28
+ undefined ;
22
29
return { maven, wrapper } ;
23
30
}
24
31
25
- function extractLineInfo ( lines : string [ ] , regex : RegExp ) : Version | null {
32
+ function extractLineInfo ( lines : string [ ] , ... regexs : RegExp [ ] ) : Version | null {
26
33
for ( const line of lines ) {
27
- if ( line . match ( regex ) ) {
28
- const match = regex . exec ( line ) ;
29
- if ( match ?. groups ) {
30
- return {
31
- url : match . groups . url ,
32
- version : match . groups . version ,
33
- } ;
34
+ for ( const regex of regexs ) {
35
+ if ( line . match ( regex ) ) {
36
+ const match = regex . exec ( line ) ;
37
+ if ( match ?. groups ) {
38
+ return {
39
+ replaceString : match . groups . replaceString ,
40
+ version : match . groups . version ,
41
+ } ;
42
+ }
34
43
}
35
44
}
36
45
}
@@ -49,7 +58,7 @@ export function extractPackageFile(
49
58
depName : 'maven' ,
50
59
packageName : 'org.apache.maven:apache-maven' ,
51
60
currentValue : extractResult . maven ?. version ,
52
- replaceString : extractResult . maven ?. url ,
61
+ replaceString : extractResult . maven ?. replaceString ,
53
62
datasource : MavenDatasource . id ,
54
63
versioning,
55
64
} ;
@@ -61,7 +70,7 @@ export function extractPackageFile(
61
70
depName : 'maven-wrapper' ,
62
71
packageName : 'org.apache.maven.wrapper:maven-wrapper' ,
63
72
currentValue : extractResult . wrapper ?. version ,
64
- replaceString : extractResult . wrapper ?. url ,
73
+ replaceString : extractResult . wrapper ?. replaceString ,
65
74
datasource : MavenDatasource . id ,
66
75
versioning,
67
76
} ;
0 commit comments