UNPKG

litejs

Version:

Single-page application framework

47 lines (34 loc) 908 B
!function(exports) { var splitRe = /[-+_.,]+/ , opRe = /^[<>]=?/ , letters = "dabr#p" exports.versionDiff = versionDiff exports.versionMatch = versionMatch function toNum(n) { return n ? (isNaN(n) ? letters.indexOf(n.charAt(0).toLowerCase()) - 6 : +n) : 0 } function versionDiff(v1, v2) { v1 = ("" + v1).split(splitRe) v2 = ("" + v2).split(splitRe) var diff = v1.length , i = v2.length , len = diff < i ? i : diff for (i = diff = 0; i < len; i++) if (v1[i] != "x" && v2[i] != "x") { if (diff = toNum(v1[i]) - toNum(v2[i])) { return diff > 0 ? 1 : -1 } } return 0 } function versionMatch(actual, expected) { var op = expected.match(opRe) , diff = versionDiff(actual, op ? expected.slice(op[0].length) : expected) return( op == "<" ? diff < 0 : op == ">" ? diff > 0 : op == "<=" ? diff <= 0 : op == ">=" ? diff >= 0 : !diff ) } }(this)