[Gradle, JS]Add devNpm method for devDependencies to KotlinDependencyHandler
This commit is contained in:
committed by
Ilya Goncharov
parent
726a871c07
commit
3e2feac4ea
+6
@@ -64,6 +64,12 @@ interface KotlinDependencyHandler {
|
||||
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
|
||||
}
|
||||
|
||||
interface HasKotlinDependencies {
|
||||
|
||||
+24
@@ -107,4 +107,28 @@ class DefaultKotlinDependencyHandler(
|
||||
|
||||
override fun npm(org: String?, packageName: String, version: String) =
|
||||
npm("${if (org != null) "@$org/" else ""}$packageName", version)
|
||||
|
||||
override fun devNpm(name: String, version: String): NpmDependency =
|
||||
NpmDependency(
|
||||
project = project,
|
||||
name = name,
|
||||
version = version,
|
||||
scope = NpmDependency.Scope.DEV
|
||||
)
|
||||
|
||||
override fun devNpm(name: String, directory: File): NpmDependency {
|
||||
check(directory.isDirectory) {
|
||||
"Dependency on local path should point on directory but $directory found"
|
||||
}
|
||||
return devNpm(
|
||||
name = name,
|
||||
version = fileVersion(directory)
|
||||
)
|
||||
}
|
||||
|
||||
override fun devNpm(directory: File): NpmDependency =
|
||||
devNpm(
|
||||
name = moduleName(directory),
|
||||
directory = directory
|
||||
)
|
||||
}
|
||||
|
||||
+27
-6
@@ -19,15 +19,17 @@ interface NpmDependencyExtension {
|
||||
operator fun invoke(directory: File): NpmDependency
|
||||
}
|
||||
|
||||
fun Project.addNpmDependencyExtension() {
|
||||
val dependencies = this.dependencies as ExtensionAware
|
||||
|
||||
val npmDependencyExtension: NpmDependencyExtension = object : NpmDependencyExtension, Closure<NpmDependency>(dependencies) {
|
||||
private abstract class AbstractNpmDependencyExtension(
|
||||
dependencies: ExtensionAware,
|
||||
private val project: Project,
|
||||
private val scope: NpmDependency.Scope
|
||||
) : NpmDependencyExtension, Closure<NpmDependency>(dependencies) {
|
||||
override operator fun invoke(name: String, version: String): NpmDependency =
|
||||
NpmDependency(
|
||||
project = this@addNpmDependencyExtension,
|
||||
project = project,
|
||||
name = name,
|
||||
version = version
|
||||
version = version,
|
||||
scope = scope
|
||||
)
|
||||
|
||||
override operator fun invoke(name: String, directory: File): NpmDependency {
|
||||
@@ -90,6 +92,17 @@ fun Project.addNpmDependencyExtension() {
|
||||
}
|
||||
}
|
||||
|
||||
fun Project.addNpmDependencyExtension() {
|
||||
val dependencies = this.dependencies as ExtensionAware
|
||||
|
||||
val npmDependencyExtension: NpmDependencyExtension = object : AbstractNpmDependencyExtension(
|
||||
dependencies, this, NpmDependency.Scope.NORMAL
|
||||
) {}
|
||||
|
||||
val devNpmDependencyExtension: NpmDependencyExtension = object : AbstractNpmDependencyExtension(
|
||||
dependencies, this, NpmDependency.Scope.DEV
|
||||
) {}
|
||||
|
||||
dependencies
|
||||
.extensions
|
||||
.add(
|
||||
@@ -97,4 +110,12 @@ fun Project.addNpmDependencyExtension() {
|
||||
"npm",
|
||||
npmDependencyExtension
|
||||
)
|
||||
|
||||
dependencies
|
||||
.extensions
|
||||
.add(
|
||||
TypeOf.typeOf<NpmDependencyExtension>(NpmDependencyExtension::class.java),
|
||||
"devNpm",
|
||||
devNpmDependencyExtension
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user