@@ -20,77 +20,77 @@ const MODULE_NAME = 'SEMANTIC VERSION';
20
20
const logger = getLogger ( ) ;
21
21
22
22
/**
23
- * Evaluate if provided string is number only
24
- * @param {unknown } content
25
- * @return {boolean } true if the string is number only
26
- *
27
- */
23
+ * Evaluate if provided string is number only
24
+ * @param {unknown } content
25
+ * @return {boolean } true if the string is number only
26
+ *
27
+ */
28
28
function isNumber ( content : string ) : boolean {
29
29
return / ^ \d + $ / . test ( content ) ;
30
30
}
31
31
32
32
/**
33
- * Evaluate if provided version contains pre-release "-"
34
- * @param {unknown } version
35
- * @return {boolean } true if the version contains "-" and meets condition
36
- *
37
- */
33
+ * Evaluate if provided version contains pre-release "-"
34
+ * @param {unknown } version
35
+ * @return {boolean } true if the version contains "-" and meets condition
36
+ *
37
+ */
38
38
function isPreReleaseVersion ( version : string ) : boolean {
39
39
const preReleaseIndex = version . indexOf ( VERSION_TYPE . PRE_RELEASE_VERSION_DELIMITER ) ;
40
40
const buildIndex = version . indexOf ( VERSION_TYPE . BUILD_VERSION_DELIMITER ) ;
41
41
42
42
if ( preReleaseIndex < 0 ) {
43
- return false ;
43
+ return false ;
44
44
}
45
45
46
- if ( buildIndex < 0 ) {
47
- return true ;
46
+ if ( buildIndex < 0 ) {
47
+ return true ;
48
48
}
49
49
50
50
return preReleaseIndex < buildIndex ;
51
51
}
52
-
52
+
53
53
/**
54
54
* Evaluate if provided version contains build "+"
55
55
* @param {unknown } version
56
56
* @return {boolean } true if the version contains "+" and meets condition
57
- *
57
+ *
58
58
*/
59
59
function isBuildVersion ( version : string ) : boolean {
60
60
const preReleaseIndex = version . indexOf ( VERSION_TYPE . PRE_RELEASE_VERSION_DELIMITER ) ;
61
61
const buildIndex = version . indexOf ( VERSION_TYPE . BUILD_VERSION_DELIMITER ) ;
62
62
63
63
if ( buildIndex < 0 ) {
64
- return false ;
64
+ return false ;
65
65
}
66
66
67
- if ( preReleaseIndex < 0 ) {
68
- return true ;
67
+ if ( preReleaseIndex < 0 ) {
68
+ return true ;
69
69
}
70
70
71
71
return buildIndex < preReleaseIndex ;
72
72
}
73
-
73
+
74
74
/**
75
75
* check if there is any white spaces " " in version
76
76
* @param {unknown } version
77
77
* @return {boolean } true if the version contains " "
78
- *
78
+ *
79
79
*/
80
80
function hasWhiteSpaces ( version : string ) : boolean {
81
81
return / \s / . test ( version ) ;
82
82
}
83
-
83
+
84
84
/**
85
85
* split version in parts
86
86
* @param {unknown } version
87
87
* @return {boolean } The array of version split into smaller parts i.e major, minor, patch etc
88
- * null if given version is in invalid format
88
+ * null if given version is in invalid format
89
89
*/
90
90
function splitVersion ( version : string ) : string [ ] | null {
91
91
let targetPrefix = version ;
92
92
let targetSuffix = '' ;
93
-
93
+
94
94
// check that version shouldn't have white space
95
95
if ( hasWhiteSpaces ( version ) ) {
96
96
logger . warn ( LOG_MESSAGES . UNKNOWN_MATCH_TYPE , MODULE_NAME , version ) ;
@@ -101,43 +101,41 @@ function splitVersion(version: string): string[] | null {
101
101
if ( isPreReleaseVersion ( version ) ) {
102
102
targetPrefix = version . substring ( 0 , version . indexOf ( VERSION_TYPE . PRE_RELEASE_VERSION_DELIMITER ) ) ;
103
103
targetSuffix = version . substring ( version . indexOf ( VERSION_TYPE . PRE_RELEASE_VERSION_DELIMITER ) + 1 ) ;
104
- }
105
- else if ( isBuildVersion ( version ) ) {
106
- targetPrefix = version . substring ( 0 , version . indexOf ( VERSION_TYPE . BUILD_VERSION_DELIMITER ) ) ;
107
- targetSuffix = version . substring ( version . indexOf ( VERSION_TYPE . BUILD_VERSION_DELIMITER ) + 1 ) ;
104
+ } else if ( isBuildVersion ( version ) ) {
105
+ targetPrefix = version . substring ( 0 , version . indexOf ( VERSION_TYPE . BUILD_VERSION_DELIMITER ) ) ;
106
+ targetSuffix = version . substring ( version . indexOf ( VERSION_TYPE . BUILD_VERSION_DELIMITER ) + 1 ) ;
108
107
}
109
108
110
109
// check dot counts in target_prefix
111
110
if ( typeof targetPrefix !== 'string' || typeof targetSuffix !== 'string' ) {
112
- return null ;
111
+ return null ;
113
112
}
114
113
115
- const dotCount = targetPrefix . split ( "." ) . length - 1 ;
116
- if ( dotCount > 2 ) {
117
- logger . warn ( LOG_MESSAGES . UNKNOWN_MATCH_TYPE , MODULE_NAME , version ) ;
118
- return null ;
114
+ const dotCount = targetPrefix . split ( '.' ) . length - 1 ;
115
+ if ( dotCount > 2 ) {
116
+ logger . warn ( LOG_MESSAGES . UNKNOWN_MATCH_TYPE , MODULE_NAME , version ) ;
117
+ return null ;
119
118
}
120
119
121
- const targetVersionParts = targetPrefix . split ( "." )
120
+ const targetVersionParts = targetPrefix . split ( '.' ) ;
122
121
if ( targetVersionParts . length != dotCount + 1 ) {
123
- logger . warn ( LOG_MESSAGES . UNKNOWN_MATCH_TYPE , MODULE_NAME , version ) ;
124
- return null ;
122
+ logger . warn ( LOG_MESSAGES . UNKNOWN_MATCH_TYPE , MODULE_NAME , version ) ;
123
+ return null ;
125
124
}
126
- for ( const part of targetVersionParts ) {
127
- if ( ! isNumber ( part ) ) {
125
+ for ( const part of targetVersionParts ) {
126
+ if ( ! isNumber ( part ) ) {
128
127
logger . warn ( LOG_MESSAGES . UNKNOWN_MATCH_TYPE , MODULE_NAME , version ) ;
129
128
return null ;
129
+ }
130
130
}
131
- }
132
-
131
+
133
132
if ( targetSuffix ) {
134
- targetVersionParts . push ( targetSuffix )
133
+ targetVersionParts . push ( targetSuffix ) ;
135
134
}
136
135
137
- return targetVersionParts
138
-
136
+ return targetVersionParts ;
139
137
}
140
-
138
+
141
139
/**
142
140
* Compare user version with condition version
143
141
* @param {string } conditionsVersion
@@ -159,24 +157,20 @@ export function compareVersion(conditionsVersion: string, userProvidedVersion: s
159
157
160
158
for ( let idx = 0 ; idx < conditionsVersionParts . length ; idx ++ ) {
161
159
if ( userVersionPartsLen <= idx ) {
162
- return isPreReleaseVersion ( conditionsVersion ) || isBuildVersion ( conditionsVersion ) ? 1 : - 1 ;
163
- }
164
- else if ( ! isNumber ( userVersionParts [ idx ] ) ) {
160
+ return isPreReleaseVersion ( conditionsVersion ) || isBuildVersion ( conditionsVersion ) ? 1 : - 1 ;
161
+ } else if ( ! isNumber ( userVersionParts [ idx ] ) ) {
165
162
if ( userVersionParts [ idx ] < conditionsVersionParts [ idx ] ) {
166
163
return isPreReleaseVersion ( conditionsVersion ) && ! isPreReleaseVersion ( userProvidedVersion ) ? 1 : - 1 ;
167
- }
168
- else if ( userVersionParts [ idx ] > conditionsVersionParts [ idx ] ) {
164
+ } else if ( userVersionParts [ idx ] > conditionsVersionParts [ idx ] ) {
169
165
return ! isPreReleaseVersion ( conditionsVersion ) && isPreReleaseVersion ( userProvidedVersion ) ? - 1 : 1 ;
170
166
}
171
- }
172
- else {
167
+ } else {
173
168
const userVersionPart = parseInt ( userVersionParts [ idx ] ) ;
174
169
const conditionsVersionPart = parseInt ( conditionsVersionParts [ idx ] ) ;
175
170
if ( userVersionPart > conditionsVersionPart ) {
176
- return 1 ;
177
- }
178
- else if ( userVersionPart < conditionsVersionPart ) {
179
- return - 1 ;
171
+ return 1 ;
172
+ } else if ( userVersionPart < conditionsVersionPart ) {
173
+ return - 1 ;
180
174
}
181
175
}
182
176
}
@@ -185,7 +179,6 @@ export function compareVersion(conditionsVersion: string, userProvidedVersion: s
185
179
if ( isPreReleaseVersion ( userProvidedVersion ) && ! isPreReleaseVersion ( conditionsVersion ) ) {
186
180
return - 1 ;
187
181
}
188
-
182
+
189
183
return 0 ;
190
184
}
191
-
0 commit comments