looksLikeVersionRange detects common semver range syntaxes and wildcard patterns. that indicate the value is not a single, specific version. Examples that should return true: - "^1.2.3", - "~1.2.3", - ">=1.0.0", - "1.x", - "1.2.*", - "1 - 2", - "1.2 || 1.3"
(version string)
| 371 | // - "1 - 2", |
| 372 | // - "1.2 || 1.3" |
| 373 | func looksLikeVersionRange(version string) bool { |
| 374 | trimmed := strings.TrimSpace(version) |
| 375 | if trimmed == "" { |
| 376 | return false |
| 377 | } |
| 378 | |
| 379 | if comparatorRangeRe.MatchString(trimmed) { |
| 380 | return true |
| 381 | } |
| 382 | if hyphenRangeRe.MatchString(trimmed) { |
| 383 | return true |
| 384 | } |
| 385 | if orRangeRe.MatchString(trimmed) { |
| 386 | return true |
| 387 | } |
| 388 | if dottedVersionLikeRe.MatchString(trimmed) { |
| 389 | // wildcard in a dotted version (x/X/*) implies range-like intent |
| 390 | return strings.Contains(trimmed, "x") || strings.Contains(trimmed, "X") || strings.Contains(trimmed, "*") |
| 391 | } |
| 392 | return false |
| 393 | } |
| 394 | |
| 395 | // validateArgument validates argument details |
| 396 | func validateArgument(ctx *ValidationContext, obj *model.Argument) *ValidationResult { |
no outgoing calls
no test coverage detected
searching dependent graphs…