aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/shared/misc/utils.ts
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/app/shared/misc/utils.ts')
-rw-r--r--client/src/app/shared/misc/utils.ts18
1 files changed, 18 insertions, 0 deletions
diff --git a/client/src/app/shared/misc/utils.ts b/client/src/app/shared/misc/utils.ts
index 85fc1c3a0..098496d45 100644
--- a/client/src/app/shared/misc/utils.ts
+++ b/client/src/app/shared/misc/utils.ts
@@ -134,6 +134,23 @@ function scrollToTop () {
134 window.scroll(0, 0) 134 window.scroll(0, 0)
135} 135}
136 136
137// Thanks https://stackoverflow.com/a/16187766
138function compareSemVer (a: string, b: string) {
139 const regExStrip0 = /(\.0+)+$/
140 const segmentsA = a.replace(regExStrip0, '').split('.')
141 const segmentsB = b.replace(regExStrip0, '').split('.')
142
143 const l = Math.min(segmentsA.length, segmentsB.length)
144
145 for (let i = 0; i < l; i++) {
146 const diff = parseInt(segmentsA[ i ], 10) - parseInt(segmentsB[ i ], 10)
147
148 if (diff) return diff
149 }
150
151 return segmentsA.length - segmentsB.length
152}
153
137export { 154export {
138 sortBy, 155 sortBy,
139 durationToString, 156 durationToString,
@@ -144,6 +161,7 @@ export {
144 getAbsoluteAPIUrl, 161 getAbsoluteAPIUrl,
145 dateToHuman, 162 dateToHuman,
146 immutableAssign, 163 immutableAssign,
164 compareSemVer,
147 objectToFormData, 165 objectToFormData,
148 objectLineFeedToHtml, 166 objectLineFeedToHtml,
149 removeElementFromArray, 167 removeElementFromArray,