(a: string, b: string)
| 123 | } |
| 124 | |
| 125 | function compareSemverLoose(a: string, b: string): number | null { |
| 126 | const pa = parseSemverParts(a); |
| 127 | const pb = parseSemverParts(b); |
| 128 | if (!pa || !pb) { |
| 129 | return null; |
| 130 | } |
| 131 | for (let i = 0; i < 3; i++) { |
| 132 | if (pa[i] !== pb[i]) { |
| 133 | return pa[i] < pb[i] ? -1 : 1; |
| 134 | } |
| 135 | } |
| 136 | return 0; |
| 137 | } |
| 138 | |
| 139 | function parseSemverParts(v: string): [number, number, number] | null { |
| 140 | const trimmed = v.trim(); |
no test coverage detected