[Gradle, JS] Migrate on only name-version npm dependencies
#KT-32179 fixed
This commit is contained in:
+6
-2
@@ -44,8 +44,12 @@ interface KotlinDependencyHandler {
|
||||
|
||||
fun project(notation: Map<String, Any?>): ProjectDependency
|
||||
|
||||
fun npm(packageName: String, version: String = "*"): Dependency
|
||||
fun npm(org: String, packageName: String, version: String = "*"): Dependency
|
||||
fun npm(name: String, version: String = "*"): Dependency
|
||||
|
||||
@Deprecated(
|
||||
message = "Use npm(name, version) instead. Name like in package.json"
|
||||
)
|
||||
fun npm(org: String? = null, packageName: String, version: String = "*"): Dependency
|
||||
}
|
||||
|
||||
interface HasKotlinDependencies {
|
||||
|
||||
+4
-4
@@ -79,9 +79,9 @@ class DefaultKotlinDependencyHandler(
|
||||
project.dependencies.add(configurationName, it)
|
||||
}
|
||||
|
||||
override fun npm(packageName: String, version: String) =
|
||||
NpmDependency(project, null, packageName, version)
|
||||
override fun npm(name: String, version: String): NpmDependency =
|
||||
NpmDependency(project, name, version)
|
||||
|
||||
override fun npm(org: String, packageName: String, version: String) =
|
||||
NpmDependency(project, org, packageName, version)
|
||||
override fun npm(org: String?, packageName: String, version: String) =
|
||||
npm("${if (org != null) "@$org/" else ""}$packageName", version)
|
||||
}
|
||||
|
||||
+1
-1
@@ -54,7 +54,7 @@ interface RequiredKotlinJsDependency {
|
||||
|
||||
data class NpmPackageVersion(val name: String, var version: String) : RequiredKotlinJsDependency {
|
||||
override fun createDependency(project: Project, scope: NpmDependency.Scope): Dependency =
|
||||
NpmDependency(project, null, name, version, scope)
|
||||
NpmDependency(project, name, version, scope)
|
||||
}
|
||||
|
||||
data class KotlinGradleNpmPackage(val simpleModuleName: String) : RequiredKotlinJsDependency {
|
||||
|
||||
+3
-4
@@ -21,7 +21,6 @@ import java.io.File
|
||||
|
||||
data class NpmDependency(
|
||||
internal val project: Project,
|
||||
private val org: String?,
|
||||
private val name: String,
|
||||
private val version: String,
|
||||
val scope: Scope = Scope.NORMAL
|
||||
@@ -37,7 +36,7 @@ data class NpmDependency(
|
||||
PEER
|
||||
}
|
||||
|
||||
override fun getGroup(): String? = org
|
||||
override fun getGroup(): String? = null
|
||||
|
||||
internal var parent: NpmDependency? = null
|
||||
internal val dependencies = mutableSetOf<NpmDependency>()
|
||||
@@ -123,7 +122,7 @@ data class NpmDependency(
|
||||
return nodeJs.npmResolutionManager.getNpmDependencyResolvedCompilation(this)
|
||||
}
|
||||
|
||||
val key: String = if (org == null) name else "@$org/$name"
|
||||
val key: String = name
|
||||
|
||||
override fun toString() = "$key: $version"
|
||||
|
||||
@@ -139,7 +138,7 @@ data class NpmDependency(
|
||||
|
||||
override fun getTargetComponentId() = DefaultLibraryBinaryIdentifier(project.path, key, "npm")
|
||||
|
||||
override fun copy(): Dependency = this.copy(org = org)
|
||||
override fun copy(): Dependency = this.copy(name = name)
|
||||
|
||||
private var reason: String? = null
|
||||
|
||||
|
||||
+9
-27
@@ -11,56 +11,38 @@ import org.gradle.api.plugins.ExtensionAware
|
||||
import org.gradle.api.reflect.TypeOf
|
||||
|
||||
interface NpmDependencyExtension {
|
||||
operator fun invoke(packageName: String, version: String = "*"): NpmDependency
|
||||
|
||||
operator fun invoke(org: String, packageName: String, version: String = "*"): NpmDependency
|
||||
operator fun invoke(name: String, version: String = "*"): NpmDependency
|
||||
}
|
||||
|
||||
fun Project.addNpmDependencyExtension() {
|
||||
val dependencies = this.dependencies as ExtensionAware
|
||||
|
||||
val npmDependencyExtension: NpmDependencyExtension = object : NpmDependencyExtension, Closure<NpmDependency>(dependencies) {
|
||||
override operator fun invoke(packageName: String, version: String): NpmDependency {
|
||||
return NpmDependency(this@addNpmDependencyExtension, null, packageName, version)
|
||||
}
|
||||
|
||||
override operator fun invoke(org: String, packageName: String, version: String): NpmDependency {
|
||||
return NpmDependency(this@addNpmDependencyExtension, org, packageName, version)
|
||||
override operator fun invoke(name: String, version: String): NpmDependency {
|
||||
return NpmDependency(this@addNpmDependencyExtension, name, version)
|
||||
}
|
||||
|
||||
override fun call(vararg args: Any?): NpmDependency {
|
||||
val size = args.size
|
||||
if (size > 3) throw IllegalArgumentException(
|
||||
if (size > 2) throw IllegalArgumentException(
|
||||
"""
|
||||
Unable to add NPM dependency by $args
|
||||
- npm('packageName') -> packageName:*
|
||||
- npm('packageName', 'version') -> packageName:version
|
||||
- npm('org', 'packageName', 'version') -> org/packageName:version
|
||||
- npm('name') -> name:*
|
||||
- npm('name', 'version') -> name:version
|
||||
""".trimIndent()
|
||||
)
|
||||
|
||||
if (size == 3) {
|
||||
val (org, packageName, version) = args
|
||||
.map { it as String }
|
||||
|
||||
return invoke(
|
||||
org = org,
|
||||
packageName = packageName,
|
||||
version = version
|
||||
)
|
||||
}
|
||||
|
||||
val packageName = args[0] as String
|
||||
val name = args[0] as String
|
||||
val version = if (size > 1) args[1] as String else null
|
||||
|
||||
return if (version != null) {
|
||||
invoke(
|
||||
packageName = packageName,
|
||||
name = name,
|
||||
version = version
|
||||
)
|
||||
} else {
|
||||
invoke(
|
||||
packageName = packageName
|
||||
name = name
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+1
-2
@@ -69,8 +69,7 @@ abstract class YarnBasics : NpmApi {
|
||||
val scopedName = dep.scopedName
|
||||
val child = NpmDependency(
|
||||
src.project,
|
||||
scopedName.scope,
|
||||
scopedName.name,
|
||||
scopedName.toString(),
|
||||
dep.version ?: "*"
|
||||
)
|
||||
child.parent = src
|
||||
|
||||
Reference in New Issue
Block a user