[Gradle, JS] None range instead of none version
^KT-41054 fixed
This commit is contained in:
+23
@@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.gradle.targets.js.npm
|
||||||
|
|
||||||
|
import com.github.gundy.semver4j.model.Version
|
||||||
|
|
||||||
|
data class NpmRange(
|
||||||
|
val startVersion: Version? = null,
|
||||||
|
val startInclusive: Boolean = false,
|
||||||
|
val endVersion: Version? = null,
|
||||||
|
val endInclusive: Boolean = false
|
||||||
|
)
|
||||||
|
|
||||||
|
val NONE_RANGE = NpmRange(
|
||||||
|
startVersion = Version.fromString(NONE_VERSION)
|
||||||
|
)
|
||||||
|
|
||||||
|
infix operator fun NpmRange.plus(other: NpmRange) {
|
||||||
|
|
||||||
|
}
|
||||||
+14
-14
@@ -10,17 +10,17 @@ import com.github.gundy.semver4j.generated.grammar.NodeSemverExpressionParser
|
|||||||
import com.github.gundy.semver4j.model.Version
|
import com.github.gundy.semver4j.model.Version
|
||||||
import org.antlr.v4.runtime.tree.TerminalNode
|
import org.antlr.v4.runtime.tree.TerminalNode
|
||||||
|
|
||||||
class NpmVersionInvertedVisitor : NodeSemverExpressionBaseVisitor<String>() {
|
class NpmVersionInvertedVisitor : NodeSemverExpressionBaseVisitor<NpmRange>() {
|
||||||
override fun visitEmptyRange(ctx: NodeSemverExpressionParser.EmptyRangeContext): String =
|
override fun visitEmptyRange(ctx: NodeSemverExpressionParser.EmptyRangeContext): NpmRange =
|
||||||
NONE_VERSION
|
NONE_RANGE
|
||||||
|
|
||||||
override fun visitWildcard(ctx: NodeSemverExpressionParser.WildcardContext): String =
|
override fun visitWildcard(ctx: NodeSemverExpressionParser.WildcardContext): NpmRange =
|
||||||
NONE_VERSION
|
NONE_RANGE
|
||||||
|
|
||||||
override fun visitWildcardRange(ctx: NodeSemverExpressionParser.WildcardRangeContext): String =
|
override fun visitWildcardRange(ctx: NodeSemverExpressionParser.WildcardRangeContext): NpmRange =
|
||||||
inverseVersion(ctx.partialWildcardSemver().text)
|
inverseVersion(ctx.partialWildcardSemver().text)
|
||||||
|
|
||||||
override fun visitOperator(ctx: NodeSemverExpressionParser.OperatorContext): String {
|
override fun visitOperator(ctx: NodeSemverExpressionParser.OperatorContext): NpmRange {
|
||||||
val eq: TerminalNode? = ctx.unaryOperator().EQ()
|
val eq: TerminalNode? = ctx.unaryOperator().EQ()
|
||||||
val gt: TerminalNode? = ctx.unaryOperator().GT()
|
val gt: TerminalNode? = ctx.unaryOperator().GT()
|
||||||
val lt: TerminalNode? = ctx.unaryOperator().LT()
|
val lt: TerminalNode? = ctx.unaryOperator().LT()
|
||||||
@@ -40,10 +40,10 @@ class NpmVersionInvertedVisitor : NodeSemverExpressionBaseVisitor<String>() {
|
|||||||
return "$LT$invertedEqToken$version"
|
return "$LT$invertedEqToken$version"
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitWildcardOperator(ctx: NodeSemverExpressionParser.WildcardOperatorContext): String =
|
override fun visitWildcardOperator(ctx: NodeSemverExpressionParser.WildcardOperatorContext): NpmRange =
|
||||||
NONE_VERSION
|
NONE_RANGE
|
||||||
|
|
||||||
override fun visitTildeRange(ctx: NodeSemverExpressionParser.TildeRangeContext): String {
|
override fun visitTildeRange(ctx: NodeSemverExpressionParser.TildeRangeContext): NpmRange {
|
||||||
val version = Version.fromString(ctx.fullSemver().text)
|
val version = Version.fromString(ctx.fullSemver().text)
|
||||||
val nextVersion = version
|
val nextVersion = version
|
||||||
.incrementMinor()
|
.incrementMinor()
|
||||||
@@ -51,7 +51,7 @@ class NpmVersionInvertedVisitor : NodeSemverExpressionBaseVisitor<String>() {
|
|||||||
return "$LT$version $OR $GTEQ$nextVersion"
|
return "$LT$version $OR $GTEQ$nextVersion"
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitCaretRange(ctx: NodeSemverExpressionParser.CaretRangeContext): String {
|
override fun visitCaretRange(ctx: NodeSemverExpressionParser.CaretRangeContext): NpmRange {
|
||||||
val version = Version.fromString(ctx.fullSemver().text)
|
val version = Version.fromString(ctx.fullSemver().text)
|
||||||
val nextVersion = version
|
val nextVersion = version
|
||||||
.incrementMajor()
|
.incrementMajor()
|
||||||
@@ -59,14 +59,14 @@ class NpmVersionInvertedVisitor : NodeSemverExpressionBaseVisitor<String>() {
|
|||||||
return "$LT$version $OR $GTEQ$nextVersion"
|
return "$LT$version $OR $GTEQ$nextVersion"
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitFullySpecifiedSemver(ctx: NodeSemverExpressionParser.FullySpecifiedSemverContext): String =
|
override fun visitFullySpecifiedSemver(ctx: NodeSemverExpressionParser.FullySpecifiedSemverContext): NpmRange =
|
||||||
inverseVersion(ctx.fullSemver().text)
|
inverseVersion(ctx.fullSemver().text)
|
||||||
|
|
||||||
override fun visitLogicalAndOfSimpleExpressions(ctx: NodeSemverExpressionParser.LogicalAndOfSimpleExpressionsContext): String =
|
override fun visitLogicalAndOfSimpleExpressions(ctx: NodeSemverExpressionParser.LogicalAndOfSimpleExpressionsContext): NpmRange =
|
||||||
ctx.simple()
|
ctx.simple()
|
||||||
.joinToString(OR) { visit(it) }
|
.joinToString(OR) { visit(it) }
|
||||||
|
|
||||||
override fun visitLogicalOrOfMultipleRanges(ctx: NodeSemverExpressionParser.LogicalOrOfMultipleRangesContext): String =
|
override fun visitLogicalOrOfMultipleRanges(ctx: NodeSemverExpressionParser.LogicalOrOfMultipleRangesContext): NpmRange =
|
||||||
ctx.basicRange()
|
ctx.basicRange()
|
||||||
.joinToString(AND) { visitBasicRange(it) }
|
.joinToString(AND) { visitBasicRange(it) }
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user