Experimental node-semver compliant range support
diff --git a/README.md b/README.md
index 4399639..e9a299b 100644
--- a/README.md
+++ b/README.md
@@ -85,6 +85,7 @@
//valid
}
+If a version has a prerelease tag (for example, 1.2.3-alpha.3) then it will only be allowed to satisfy comparator sets if at least one comparator with the same [major, minor, patch] tuple also has a prerelease tag.
```
Example
diff --git a/range.go b/range.go
index ab5778b..955b631 100644
--- a/range.go
+++ b/range.go
@@ -40,11 +40,10 @@
return Range(func(v Version) bool {
return len(v.Pre) == 0 && vr.c(v, vr.v)
})
- } else {
- return Range(func(v Version) bool {
- return prMatch(vr.v, v) && vr.c(v, vr.v)
- })
}
+ return Range(func(v Version) bool {
+ return prMatch(vr.v, v) && vr.c(v, vr.v)
+ })
}
// Range represents a range of versions.
@@ -196,8 +195,7 @@
// When checking prerelease ranges, we want to make sure we're
// only matching against ranges with same [major, minor, patch]
func prMatch(v, o Version) bool {
- return len(o.Pre) == 0 || (
- v.Major == o.Major &&
+ return len(o.Pre) == 0 || (v.Major == o.Major &&
v.Minor == o.Minor &&
v.Patch == o.Patch)
}
diff --git a/range_test.go b/range_test.go
index bb6b736..2b6dd60 100644
--- a/range_test.go
+++ b/range_test.go
@@ -315,6 +315,12 @@
{"1.4.2-beta.3", true},
{"1.4.3-beta", false},
}},
+ {">1.2.3-beta <1.2.5", []tv{
+ {"1.2.3", true},
+ {"1.2.3-beta.2", true},
+ {"1.2.3-gamma", true},
+ {"1.2.4-beta.2", false},
+ }},
// Simple Expression errors
{">>1.2.3", nil},