[Gradle, JS]Add peerNpm method for peerDependencies to KotlinDependencyHandler
This commit is contained in:
committed by
Ilya Goncharov
parent
3e2feac4ea
commit
231324d119
+6
@@ -70,6 +70,12 @@ interface KotlinDependencyHandler {
|
|||||||
fun devNpm(name: String, directory: File): Dependency
|
fun devNpm(name: String, directory: File): Dependency
|
||||||
|
|
||||||
fun devNpm(directory: File): Dependency
|
fun devNpm(directory: File): Dependency
|
||||||
|
|
||||||
|
fun peerNpm(name: String, version: String = "*"): Dependency
|
||||||
|
|
||||||
|
fun peerNpm(name: String, directory: File): Dependency
|
||||||
|
|
||||||
|
fun peerNpm(directory: File): Dependency
|
||||||
}
|
}
|
||||||
|
|
||||||
interface HasKotlinDependencies {
|
interface HasKotlinDependencies {
|
||||||
|
|||||||
+24
@@ -131,4 +131,28 @@ class DefaultKotlinDependencyHandler(
|
|||||||
name = moduleName(directory),
|
name = moduleName(directory),
|
||||||
directory = directory
|
directory = directory
|
||||||
)
|
)
|
||||||
|
|
||||||
|
override fun peerNpm(name: String, version: String): NpmDependency =
|
||||||
|
NpmDependency(
|
||||||
|
project = project,
|
||||||
|
name = name,
|
||||||
|
version = version,
|
||||||
|
scope = NpmDependency.Scope.PEER
|
||||||
|
)
|
||||||
|
|
||||||
|
override fun peerNpm(name: String, directory: File): NpmDependency {
|
||||||
|
check(directory.isDirectory) {
|
||||||
|
"Dependency on local path should point on directory but $directory found"
|
||||||
|
}
|
||||||
|
return peerNpm(
|
||||||
|
name = name,
|
||||||
|
version = fileVersion(directory)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun peerNpm(directory: File): NpmDependency =
|
||||||
|
peerNpm(
|
||||||
|
name = moduleName(directory),
|
||||||
|
directory = directory
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+19
-20
@@ -92,30 +92,29 @@ private abstract class AbstractNpmDependencyExtension(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private const val NAME_DEPENDENCIES = "npm"
|
||||||
|
private const val NAME_DEV_DEPENDENCIES = "devNpm"
|
||||||
|
private const val NAME_PEER_DEPENDENCIES = "peerNpm"
|
||||||
|
|
||||||
fun Project.addNpmDependencyExtension() {
|
fun Project.addNpmDependencyExtension() {
|
||||||
val dependencies = this.dependencies as ExtensionAware
|
val dependencies = this.dependencies as ExtensionAware
|
||||||
|
|
||||||
val npmDependencyExtension: NpmDependencyExtension = object : AbstractNpmDependencyExtension(
|
listOf(NpmDependency.Scope.NORMAL, NpmDependency.Scope.DEV, NpmDependency.Scope.PEER).forEach { scope ->
|
||||||
dependencies, this, NpmDependency.Scope.NORMAL
|
val name = when (scope) {
|
||||||
) {}
|
NpmDependency.Scope.DEV -> NAME_DEV_DEPENDENCIES
|
||||||
|
NpmDependency.Scope.PEER -> NAME_PEER_DEPENDENCIES
|
||||||
|
else -> NAME_DEPENDENCIES
|
||||||
|
}
|
||||||
|
|
||||||
val devNpmDependencyExtension: NpmDependencyExtension = object : AbstractNpmDependencyExtension(
|
val dependencyExtension: NpmDependencyExtension = object : AbstractNpmDependencyExtension(dependencies, this, scope) {}
|
||||||
dependencies, this, NpmDependency.Scope.DEV
|
|
||||||
) {}
|
|
||||||
|
|
||||||
dependencies
|
dependencies
|
||||||
.extensions
|
.extensions
|
||||||
.add(
|
.add(
|
||||||
TypeOf.typeOf<NpmDependencyExtension>(NpmDependencyExtension::class.java),
|
TypeOf.typeOf<NpmDependencyExtension>(NpmDependencyExtension::class.java),
|
||||||
"npm",
|
name,
|
||||||
npmDependencyExtension
|
dependencyExtension
|
||||||
)
|
)
|
||||||
|
|
||||||
dependencies
|
}
|
||||||
.extensions
|
|
||||||
.add(
|
|
||||||
TypeOf.typeOf<NpmDependencyExtension>(NpmDependencyExtension::class.java),
|
|
||||||
"devNpm",
|
|
||||||
devNpmDependencyExtension
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user