From da96d846ebdfe8f9610235696a2783a99f0a6a9c Mon Sep 17 00:00:00 2001 From: Hykilpikonna Date: Sun, 20 Oct 2019 19:11:22 -0400 Subject: [PATCH] [+] Create function to compare version numbers --- src/utils/version-utils.ts | 39 +++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/src/utils/version-utils.ts b/src/utils/version-utils.ts index b379a66..ee2ce5e 100644 --- a/src/utils/version-utils.ts +++ b/src/utils/version-utils.ts @@ -1,4 +1,41 @@ export default class VersionUtils { - + /** + * Compare two version numbers + * + * Eg. + * compare('0.1.2', '0.1.3') = -1 + * compare('1.0.0', '0.1.3') = 1 + * compare('0.0.1', '0.0.1') = 0; + * + * @param ver1 Version 1 + * @param ver2 Version 2 + * @return number (-1 if ver1 < ver2), (1 if ver1 > ver2), (0 if equal) + */ + public static compare(ver1: string, ver2: string): number + { + // Equal case + if (ver1 == ver2) return 0; + + // Split + let split1 = ver1.split('.'); + let split2 = ver2.split('.'); + + // Detect each number + for (let i in split1) + { + // Get numbers + let num1 = split1[i]; + let num2 = split2[i]; + + // Current number is equal + if (num1 == num2) continue; + + // Current number is different + return +num1 < +num2 ? -1 : 1; + } + + // Equal + return 0; + } }