diff options
Diffstat (limited to 'node_modules/locutus/php/info/version_compare.js')
-rw-r--r-- | node_modules/locutus/php/info/version_compare.js | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/node_modules/locutus/php/info/version_compare.js b/node_modules/locutus/php/info/version_compare.js deleted file mode 100644 index 7f600d8..0000000 --- a/node_modules/locutus/php/info/version_compare.js +++ /dev/null @@ -1,118 +0,0 @@ -'use strict'; - -module.exports = function version_compare(v1, v2, operator) { - // eslint-disable-line camelcase - // discuss at: http://locutus.io/php/version_compare/ - // original by: Philippe Jausions (http://pear.php.net/user/jausions) - // original by: Aidan Lister (http://aidanlister.com/) - // reimplemented by: Kankrelune (http://www.webfaktory.info/) - // improved by: Brett Zamir (http://brett-zamir.me) - // improved by: Scott Baker - // improved by: Theriault (https://github.com/Theriault) - // example 1: version_compare('8.2.5rc', '8.2.5a') - // returns 1: 1 - // example 2: version_compare('8.2.50', '8.2.52', '<') - // returns 2: true - // example 3: version_compare('5.3.0-dev', '5.3.0') - // returns 3: -1 - // example 4: version_compare('4.1.0.52','4.01.0.51') - // returns 4: 1 - - // Important: compare must be initialized at 0. - var i; - var x; - var compare = 0; - - // vm maps textual PHP versions to negatives so they're less than 0. - // PHP currently defines these as CASE-SENSITIVE. It is important to - // leave these as negatives so that they can come before numerical versions - // and as if no letters were there to begin with. - // (1alpha is < 1 and < 1.1 but > 1dev1) - // If a non-numerical value can't be mapped to this table, it receives - // -7 as its value. - var vm = { - 'dev': -6, - 'alpha': -5, - 'a': -5, - 'beta': -4, - 'b': -4, - 'RC': -3, - 'rc': -3, - '#': -2, - 'p': 1, - 'pl': 1 - }; - - // This function will be called to prepare each version argument. - // It replaces every _, -, and + with a dot. - // It surrounds any nonsequence of numbers/dots with dots. - // It replaces sequences of dots with a single dot. - // version_compare('4..0', '4.0') === 0 - // Important: A string of 0 length needs to be converted into a value - // even less than an unexisting value in vm (-7), hence [-8]. - // It's also important to not strip spaces because of this. - // version_compare('', ' ') === 1 - var _prepVersion = function _prepVersion(v) { - v = ('' + v).replace(/[_\-+]/g, '.'); - v = v.replace(/([^.\d]+)/g, '.$1.').replace(/\.{2,}/g, '.'); - return !v.length ? [-8] : v.split('.'); - }; - // This converts a version component to a number. - // Empty component becomes 0. - // Non-numerical component becomes a negative number. - // Numerical component becomes itself as an integer. - var _numVersion = function _numVersion(v) { - return !v ? 0 : isNaN(v) ? vm[v] || -7 : parseInt(v, 10); - }; - - v1 = _prepVersion(v1); - v2 = _prepVersion(v2); - x = Math.max(v1.length, v2.length); - for (i = 0; i < x; i++) { - if (v1[i] === v2[i]) { - continue; - } - v1[i] = _numVersion(v1[i]); - v2[i] = _numVersion(v2[i]); - if (v1[i] < v2[i]) { - compare = -1; - break; - } else if (v1[i] > v2[i]) { - compare = 1; - break; - } - } - if (!operator) { - return compare; - } - - // Important: operator is CASE-SENSITIVE. - // "No operator" seems to be treated as "<." - // Any other values seem to make the function return null. - switch (operator) { - case '>': - case 'gt': - return compare > 0; - case '>=': - case 'ge': - return compare >= 0; - case '<=': - case 'le': - return compare <= 0; - case '===': - case '=': - case 'eq': - return compare === 0; - case '<>': - case '!==': - case 'ne': - return compare !== 0; - case '': - case '<': - case 'lt': - return compare < 0; - default: - return null; - } -}; -//# sourceMappingURL=version_compare.js.map
\ No newline at end of file |