From 19afcd7b6b75a233fd32cabb47e1f5d71b403c7f Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Tue, 24 Mar 2020 13:27:58 +0300 Subject: [PATCH] [Gradle, JS] Introduce semver satisfying for comparison with wildcard --- libraries/tools/kotlin-gradle-plugin/build.gradle.kts | 1 + .../jetbrains/kotlin/gradle/targets/js/yarn/YarnBasics.kt | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/libraries/tools/kotlin-gradle-plugin/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin/build.gradle.kts index b1188236843..9f3ec95272b 100644 --- a/libraries/tools/kotlin-gradle-plugin/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin/build.gradle.kts @@ -49,6 +49,7 @@ dependencies { compile("com.google.code.gson:gson:${rootProject.extra["versions.jar.gson"]}") compile("de.undercouch:gradle-download-task:4.0.2") + implementation("com.github.gundy:semver4j:0.16.4") compileOnly("com.android.tools.build:gradle:2.0.0") compileOnly("com.android.tools.build:gradle-core:2.0.0") diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnBasics.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnBasics.kt index 048c30a041b..2d24d01bf4b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnBasics.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnBasics.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.gradle.targets.js.yarn +import com.github.gundy.semver4j.SemVer import org.gradle.api.Project import org.jetbrains.kotlin.gradle.internal.execWithProgress import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin @@ -156,7 +157,10 @@ private class YarnEntryRegistry(lockFile: File) { if (entry == null && version == "*") { val searchKey = dependencyKey(packageKey, "") entry = entryMap.entries - .firstOrNull { it.key.startsWith(searchKey) } + .filter { it.key.startsWith(searchKey) } + .firstOrNull { + SemVer.satisfies(it.key.removePrefix(searchKey), "*") + } ?.value }