mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-30 20:14:49 +00:00
Version range compression utils (#2840)
* DNF normalization wip * a bunch of wip stuff * it is alive! * tests * deduplicate strings in tests * fix != flavor behavior & parse flavor constraints & equals shorthand for normalize * use normalization * more comments & fix tests not running because of bad rebase * fix comments+tests * slightly better comment * fix dependency & typos --------- Co-authored-by: Aiden McClelland <me@drbonez.dev>
This commit is contained in:
@@ -14,6 +14,7 @@ VersionRangeAtom
|
||||
/ Not
|
||||
/ Any
|
||||
/ None
|
||||
/ FlavorAtom
|
||||
|
||||
Parens
|
||||
= "(" _ expr:VersionRange _ ")" { return { type: "Parens", expr } }
|
||||
@@ -24,13 +25,16 @@ Anchor
|
||||
VersionSpec
|
||||
= flavor:Flavor? upstream:Version downstream:( ":" Version )? { return { flavor: flavor || null, upstream, downstream: downstream ? downstream[1] : { number: [0], prerelease: [] } } }
|
||||
|
||||
FlavorAtom
|
||||
= "#" flavor:Lowercase { return { type: "Flavor", flavor: flavor } }
|
||||
|
||||
Not = "!" _ value:VersionRangeAtom { return { type: "Not", value: value }}
|
||||
|
||||
Any = "*" { return { type: "Any" } }
|
||||
|
||||
None = "!" { return { type: "None" } }
|
||||
|
||||
CmpOp
|
||||
CmpOp
|
||||
= ">=" { return ">="; }
|
||||
/ "<=" { return "<="; }
|
||||
/ ">" { return ">"; }
|
||||
@@ -89,7 +93,7 @@ String
|
||||
|
||||
Version
|
||||
= number:VersionNumber prerelease: PreRelease? {
|
||||
return {
|
||||
return {
|
||||
number,
|
||||
prerelease: prerelease || []
|
||||
};
|
||||
@@ -106,7 +110,7 @@ PreReleaseSegment
|
||||
}
|
||||
|
||||
VersionNumber
|
||||
= first:Digit rest:("." Digit)* {
|
||||
= first:Digit rest:("." Digit)* {
|
||||
return [first].concat(rest.map(r => r[1]));
|
||||
}
|
||||
|
||||
@@ -114,4 +118,4 @@ Digit
|
||||
= [0-9]+ { return parseInt(text(), 10); }
|
||||
|
||||
_ "whitespace"
|
||||
= [ \t\n\r]*
|
||||
= [ \t\n\r]*
|
||||
|
||||
Reference in New Issue
Block a user