Compare version function
Some checks failed
Build / Build NPM Project (push) Successful in 54s
Build / Publish Documentation (push) Failing after 4s
Build / Tag Version (push) Successful in 9s

This commit is contained in:
2025-07-30 09:21:46 -04:00
parent 52f64f9e78
commit e2d756fe28
2 changed files with 14 additions and 2 deletions

View File

@ -1,6 +1,6 @@
{
"name": "@ztimson/utils",
"version": "0.26.22",
"version": "0.26.23",
"description": "Utility library",
"author": "Zak Timson",
"license": "MIT",

View File

@ -1,9 +1,21 @@
import {PathEvent} from './path-events.ts';
import {md5} from './string';
/**
* Compare version numbers
* @param {string} target
* @param {string} vs
* @return {number} -1 = target is lower, 0 = equal, 1 = higher
*/
export function compareVersions(target: string, vs: string): -1 | 0 | 1 {
const [tMajor, tMinor, tPatch] = target.split('.').map(v => +v.replace(/[^0-9]/g, ''));
const [vMajor, vMinor, vPatch] = vs.split('.').map(v => +v.replace(/[^0-9]/g, ''));
return (tMajor > vMajor || tMinor > vMinor || tPatch > vPatch) ? 1 :
(tMajor < vMajor || tMinor < vMinor || tPatch < vPatch) ? -1 : 0;
}
/**
* Escape any regex special characters to avoid misinterpretation during search
*
* @param {string} value String which should be escaped
* @return {string} New escaped sequence
*/