aboutsummaryrefslogtreecommitdiffhomepage
path: root/shared/core-utils/common/version.ts
diff options
context:
space:
mode:
Diffstat (limited to 'shared/core-utils/common/version.ts')
-rw-r--r--shared/core-utils/common/version.ts20
1 files changed, 20 insertions, 0 deletions
diff --git a/shared/core-utils/common/version.ts b/shared/core-utils/common/version.ts
new file mode 100644
index 000000000..8a64f8c4d
--- /dev/null
+++ b/shared/core-utils/common/version.ts
@@ -0,0 +1,20 @@
1// Thanks https://stackoverflow.com/a/16187766
2function compareSemVer (a: string, b: string) {
3 const regExStrip0 = /(\.0+)+$/
4 const segmentsA = a.replace(regExStrip0, '').split('.')
5 const segmentsB = b.replace(regExStrip0, '').split('.')
6
7 const l = Math.min(segmentsA.length, segmentsB.length)
8
9 for (let i = 0; i < l; i++) {
10 const diff = parseInt(segmentsA[i], 10) - parseInt(segmentsB[i], 10)
11
12 if (diff) return diff
13 }
14
15 return segmentsA.length - segmentsB.length
16}
17
18export {
19 compareSemVer
20}