(value: string)
| 383 | * @returns A valid SemVer range |
| 384 | */ |
| 385 | export function parseRange(value: string): Range { |
| 386 | const result = value |
| 387 | // remove spaces between operators and versions |
| 388 | .replaceAll(/(?<=[<>=~^])(\s+)/g, "") |
| 389 | .split(/\s*\|\|\s*/) |
| 390 | .map((string) => parseHyphenRange(string) || parseOperatorRanges(string)); |
| 391 | if (result.some((r) => r.includes(null))) { |
| 392 | throw new TypeError( |
| 393 | `Cannot parse version range: range "${value}" is invalid`, |
| 394 | ); |
| 395 | } |
| 396 | return result as Range; |
| 397 | } |
no test coverage detected