Add ability to search available plugins
[oweals/peertube.git] / shared / core-utils / miscs / miscs.ts
index c668e44c14908c58bc3c32b71c23180f4e95cd63..a3921b568bdb3cba8bcac63ef904772a0676a634 100644 (file)
@@ -2,6 +2,24 @@ function randomInt (low: number, high: number) {
   return Math.floor(Math.random() * (high - low) + low)
 }
 
+// Thanks https://stackoverflow.com/a/16187766
+function compareSemVer (a: string, b: string) {
+  const regExStrip0 = /(\.0+)+$/
+  const segmentsA = a.replace(regExStrip0, '').split('.')
+  const segmentsB = b.replace(regExStrip0, '').split('.')
+
+  const l = Math.min(segmentsA.length, segmentsB.length)
+
+  for (let i = 0; i < l; i++) {
+    const diff = parseInt(segmentsA[ i ], 10) - parseInt(segmentsB[ i ], 10)
+
+    if (diff) return diff
+  }
+
+  return segmentsA.length - segmentsB.length
+}
+
 export {
-  randomInt
+  randomInt,
+  compareSemVer
 }