[Gradle, JS] Remove copypaste on name only npm dependency

#KT-38683 fixed
This commit is contained in:
Ilya Goncharov
2020-05-06 19:22:52 +03:00
parent 2378d9ba0a
commit b4b2efdc08
3 changed files with 11 additions and 5 deletions
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinNpmDependencyHandler
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmDependency import org.jetbrains.kotlin.gradle.targets.js.npm.NpmDependency
import org.jetbrains.kotlin.gradle.targets.js.npm.directoryNpmDependency import org.jetbrains.kotlin.gradle.targets.js.npm.directoryNpmDependency
import org.jetbrains.kotlin.gradle.targets.js.npm.moduleName import org.jetbrains.kotlin.gradle.targets.js.npm.moduleName
import org.jetbrains.kotlin.gradle.targets.js.npm.onlyNameNpmDependency
import java.io.File import java.io.File
class DefaultKotlinDependencyHandler( class DefaultKotlinDependencyHandler(
@@ -66,10 +67,6 @@ class DefaultKotlinDependencyHandler(
override fun project(notation: Map<String, Any?>): ProjectDependency = override fun project(notation: Map<String, Any?>): ProjectDependency =
project.dependencies.project(notation) as ProjectDependency project.dependencies.project(notation) as ProjectDependency
override fun npm(name: String): Dependency {
throw IllegalArgumentException("NPM dependency '$name' doesn't have version. Please, set version explicitly.")
}
private fun addDependencyByAnyNotation( private fun addDependencyByAnyNotation(
configurationName: String, configurationName: String,
dependencyNotation: Any dependencyNotation: Any
@@ -93,6 +90,9 @@ class DefaultKotlinDependencyHandler(
project.dependencies.add(configurationName, it) project.dependencies.add(configurationName, it)
} }
override fun npm(name: String): Dependency =
onlyNameNpmDependency(name)
override fun npm(name: String, version: String): NpmDependency = override fun npm(name: String, version: String): NpmDependency =
NpmDependency( NpmDependency(
project = project, project = project,
@@ -145,6 +145,12 @@ internal fun directoryNpmDependency(
) )
} }
internal fun onlyNameNpmDependency(
name: String
): Nothing {
throw IllegalArgumentException("NPM dependency '$name' doesn't have version. Please, set version explicitly.")
}
internal fun String.isFileVersion() = internal fun String.isFileVersion() =
startsWith(FILE_VERSION_PREFIX) startsWith(FILE_VERSION_PREFIX)
@@ -27,7 +27,7 @@ private class DefaultNpmDependencyExtension(
private val scope: NpmDependency.Scope private val scope: NpmDependency.Scope
) : NpmDependencyExtension, Closure<NpmDependency>(project.dependencies) { ) : NpmDependencyExtension, Closure<NpmDependency>(project.dependencies) {
override fun invoke(name: String): NpmDependency = override fun invoke(name: String): NpmDependency =
throw IllegalArgumentException("NPM dependency '$name' doesn't have version. Please, set version explicitly.") onlyNameNpmDependency(name)
override operator fun invoke(name: String, version: String): NpmDependency = override operator fun invoke(name: String, version: String): NpmDependency =
NpmDependency( NpmDependency(