Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-go / lib / utils / versions.js
1 "use strict";
2 Object.defineProperty(exports, "__esModule", { value: true });
3 exports.parseVersion = exports.compareVersions = exports.isValidVersion = void 0;
4 const versionExp = /^v?(\d+)\.(\d+).(\d+)$/;
5 function isValidVersion(version) {
6     return Boolean(version.trim().match(versionExp));
7 }
8 exports.isValidVersion = isValidVersion;
9 function compareVersions(version1, version2) {
10     const v1 = parseVersion(version1);
11     const v2 = parseVersion(version2);
12     for (let i = 0; i < 3; i++) {
13         if (v1[i] !== v2[i]) {
14             return Math.max(-1, Math.min(1, v1[i] - v2[i]));
15         }
16     }
17     return 0;
18 }
19 exports.compareVersions = compareVersions;
20 function parseVersion(v) {
21     let ver = [0, 0, 0];
22     const match = v.trim().match(versionExp);
23     if (match) {
24         const [, major, minor, patch] = match;
25         ver = [parseInt(major), parseInt(minor), parseInt(patch)];
26     }
27     if (!isValidVersion(v)) {
28         throw new Error(`'${v}' is not a valid version`);
29     }
30     return ver;
31 }
32 exports.parseVersion = parseVersion;
33 //# sourceMappingURL=versions.js.map