[Gradle, JS] Remove copypaste on directoryNpmDependency

#KT-38683 fixed
This commit is contained in:
Ilya Goncharov
2020-05-06 19:15:30 +03:00
parent 28b0bfd40c
commit 2378d9ba0a
5 changed files with 86 additions and 51 deletions
@@ -10,7 +10,6 @@ import org.gradle.api.artifacts.Dependency
import org.gradle.api.artifacts.ExternalModuleDependency
import org.gradle.api.artifacts.ProjectDependency
import org.gradle.util.ConfigureUtil
import java.io.File
interface KotlinDependencyHandler {
fun api(dependencyNotation: Any): Dependency?
@@ -53,33 +52,6 @@ interface KotlinDependencyHandler {
project(listOf("path", "configuration").zip(listOfNotNull(path, configuration)).toMap())
fun project(notation: Map<String, Any?>): ProjectDependency
fun npm(name: String): Dependency
fun npm(name: String, version: String): Dependency
fun npm(name: String, directory: File): Dependency
fun npm(directory: File): Dependency
@Deprecated(
message = "Use npm(name, version) instead. Name like in package.json"
)
fun npm(org: String? = null, packageName: String, version: String = "*"): Dependency
fun devNpm(name: String, version: String): Dependency
fun devNpm(name: String, directory: File): Dependency
fun devNpm(directory: File): Dependency
fun optionalNpm(name: String, version: String): Dependency
fun optionalNpm(name: String, directory: File): Dependency
fun optionalNpm(directory: File): Dependency
fun peerNpm(name: String, version: String): Dependency
}
interface HasKotlinDependencies {
@@ -0,0 +1,38 @@
/*
* 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.plugin
import org.gradle.api.artifacts.Dependency
import java.io.File
interface KotlinNpmDependencyHandler {
fun npm(name: String): Dependency
fun npm(name: String, version: String): Dependency
fun npm(name: String, directory: File): Dependency
fun npm(directory: File): Dependency
@Deprecated(
message = "Use npm(name, version) instead. Name like in package.json"
)
fun npm(org: String? = null, packageName: String, version: String = "*"): Dependency
fun devNpm(name: String, version: String): Dependency
fun devNpm(name: String, directory: File): Dependency
fun devNpm(directory: File): Dependency
fun optionalNpm(name: String, version: String): Dependency
fun optionalNpm(name: String, directory: File): Dependency
fun optionalNpm(directory: File): Dependency
fun peerNpm(name: String, version: String): Dependency
}
@@ -11,15 +11,17 @@ import org.gradle.api.artifacts.ExternalModuleDependency
import org.gradle.api.artifacts.ProjectDependency
import org.jetbrains.kotlin.gradle.plugin.HasKotlinDependencies
import org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler
import org.jetbrains.kotlin.gradle.plugin.KotlinNpmDependencyHandler
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmDependency
import org.jetbrains.kotlin.gradle.targets.js.npm.fileVersion
import org.jetbrains.kotlin.gradle.targets.js.npm.directoryNpmDependency
import org.jetbrains.kotlin.gradle.targets.js.npm.moduleName
import java.io.File
class DefaultKotlinDependencyHandler(
val parent: HasKotlinDependencies,
val project: Project
) : KotlinDependencyHandler {
) : KotlinDependencyHandler,
KotlinNpmDependencyHandler {
override fun api(dependencyNotation: Any): Dependency? =
addDependencyByAnyNotation(parent.apiConfigurationName, dependencyNotation)
@@ -99,7 +101,11 @@ class DefaultKotlinDependencyHandler(
)
override fun npm(name: String, directory: File): NpmDependency =
directoryNpmDependency(name, directory, NpmDependency.Scope.NORMAL)
directoryNpmDependency(
name,
directory,
NpmDependency.Scope.NORMAL
)
override fun npm(directory: File): NpmDependency =
npm(
@@ -119,7 +125,11 @@ class DefaultKotlinDependencyHandler(
)
override fun devNpm(name: String, directory: File): NpmDependency =
directoryNpmDependency(name, directory, NpmDependency.Scope.DEV)
directoryNpmDependency(
name,
directory,
NpmDependency.Scope.DEV
)
override fun devNpm(directory: File): NpmDependency =
devNpm(
@@ -136,7 +146,11 @@ class DefaultKotlinDependencyHandler(
)
override fun optionalNpm(name: String, directory: File): NpmDependency =
directoryNpmDependency(name, directory, NpmDependency.Scope.OPTIONAL)
directoryNpmDependency(
name,
directory,
NpmDependency.Scope.OPTIONAL
)
override fun optionalNpm(directory: File): NpmDependency =
optionalNpm(
@@ -156,16 +170,11 @@ class DefaultKotlinDependencyHandler(
name: String,
directory: File,
scope: NpmDependency.Scope
): NpmDependency {
check(directory.isDirectory) {
"Dependency on local path should point on directory but $directory found"
}
return NpmDependency(
project = project,
name = name,
version = fileVersion(directory),
scope = scope
): NpmDependency =
directoryNpmDependency(
project,
name,
directory,
scope
)
}
}
@@ -127,6 +127,24 @@ data class NpmDependency(
override fun getReason(): String? = reason
}
internal fun directoryNpmDependency(
project: Project,
name: String,
directory: File,
scope: NpmDependency.Scope
): NpmDependency {
check(directory.isDirectory) {
"Dependency on local path should point on directory but $directory found"
}
return NpmDependency(
project = project,
name = name,
version = fileVersion(directory),
scope = scope
)
}
internal fun String.isFileVersion() =
startsWith(FILE_VERSION_PREFIX)
@@ -37,15 +37,13 @@ private class DefaultNpmDependencyExtension(
scope = scope
)
override operator fun invoke(name: String, directory: File): NpmDependency {
check(directory.isDirectory) {
"Dependency '$name' on local path should point on directory but '$directory' found"
}
return invoke(
override operator fun invoke(name: String, directory: File): NpmDependency =
directoryNpmDependency(
project = project,
name = name,
version = fileVersion(directory)
directory = directory,
scope = scope
)
}
override operator fun invoke(directory: File): NpmDependency =
invoke(