[Gradle, JS] Right wildcard range

^KT-41054 fixed
This commit is contained in:
Ilya Goncharov
2020-08-05 18:15:36 +03:00
parent f848b7cbeb
commit a4de85da13
@@ -9,6 +9,7 @@ import com.github.gundy.semver4j.generated.grammar.NodeSemverExpressionBaseVisit
import com.github.gundy.semver4j.generated.grammar.NodeSemverExpressionParser
import com.github.gundy.semver4j.model.Version
import org.antlr.v4.runtime.tree.TerminalNode
import org.gradle.api.GradleException
import org.jetbrains.kotlin.gradle.utils.toListOrEmpty
class NpmRangeVisitor : NodeSemverExpressionBaseVisitor<List<NpmRange>>() {
@@ -18,9 +19,24 @@ class NpmRangeVisitor : NodeSemverExpressionBaseVisitor<List<NpmRange>>() {
override fun visitWildcard(ctx: NodeSemverExpressionParser.WildcardContext): List<NpmRange> =
listOf(NpmRange())
// TODO check it
override fun visitWildcardRange(ctx: NodeSemverExpressionParser.WildcardRangeContext): List<NpmRange> =
listOf(eq(ctx.partialWildcardSemver().text))
override fun visitWildcardRange(ctx: NodeSemverExpressionParser.WildcardRangeContext): List<NpmRange> {
val partialWildcardSemver = ctx.partialWildcardSemver()
val versionText = partialWildcardSemver.text
val version = versionText
.replace(".x", "")
.replace(".X", "")
.replace(".*", "")
.let { Version.fromString(it) }
val nextVersion = when {
partialWildcardSemver.minor == null -> version.incrementMajor()
partialWildcardSemver.patch == null -> version.incrementMinor()
else -> throw GradleException("Incorrect version pattern $versionText")
}
return (gteq(version) intersect lt(nextVersion))
.toListOrEmpty()
}
override fun visitOperator(ctx: NodeSemverExpressionParser.OperatorContext): List<NpmRange> {
val eq: TerminalNode? = ctx.unaryOperator().EQ()