[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(directory: File): Dependency
|
||||
|
||||
fun peerNpm(name: String, version: String = "*"): Dependency
|
||||
|
||||
fun peerNpm(name: String, directory: File): Dependency
|
||||
|
||||
fun peerNpm(directory: File): Dependency
|
||||
}
|
||||
|
||||
interface HasKotlinDependencies {
|
||||
|
||||
+24
@@ -131,4 +131,28 @@ class DefaultKotlinDependencyHandler(
|
||||
name = moduleName(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() {
|
||||
val dependencies = this.dependencies as ExtensionAware
|
||||
|
||||
val npmDependencyExtension: NpmDependencyExtension = object : AbstractNpmDependencyExtension(
|
||||
dependencies, this, NpmDependency.Scope.NORMAL
|
||||
) {}
|
||||
listOf(NpmDependency.Scope.NORMAL, NpmDependency.Scope.DEV, NpmDependency.Scope.PEER).forEach { scope ->
|
||||
val name = when (scope) {
|
||||
NpmDependency.Scope.DEV -> NAME_DEV_DEPENDENCIES
|
||||
NpmDependency.Scope.PEER -> NAME_PEER_DEPENDENCIES
|
||||
else -> NAME_DEPENDENCIES
|
||||
}
|
||||
|
||||
val devNpmDependencyExtension: NpmDependencyExtension = object : AbstractNpmDependencyExtension(
|
||||
dependencies, this, NpmDependency.Scope.DEV
|
||||
) {}
|
||||
val dependencyExtension: NpmDependencyExtension = object : AbstractNpmDependencyExtension(dependencies, this, scope) {}
|
||||
|
||||
dependencies
|
||||
.extensions
|
||||
.add(
|
||||
TypeOf.typeOf<NpmDependencyExtension>(NpmDependencyExtension::class.java),
|
||||
"npm",
|
||||
npmDependencyExtension
|
||||
)
|
||||
dependencies
|
||||
.extensions
|
||||
.add(
|
||||
TypeOf.typeOf<NpmDependencyExtension>(NpmDependencyExtension::class.java),
|
||||
name,
|
||||
dependencyExtension
|
||||
)
|
||||
|
||||
dependencies
|
||||
.extensions
|
||||
.add(
|
||||
TypeOf.typeOf<NpmDependencyExtension>(NpmDependencyExtension::class.java),
|
||||
"devNpm",
|
||||
devNpmDependencyExtension
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user