[Gradle, JS] Add defaultGeneratedKotlinExternals to dependencies extensions
KT-38331
This commit is contained in:
+38
-11
@@ -9,6 +9,7 @@ import groovy.lang.Closure
|
|||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.api.plugins.ExtensionAware
|
import org.gradle.api.plugins.ExtensionAware
|
||||||
import org.gradle.api.reflect.TypeOf
|
import org.gradle.api.reflect.TypeOf
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.DEFAULT_GENERATE_KOTLIN_EXTERNALS
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmDependency.Scope.*
|
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmDependency.Scope.*
|
||||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@@ -41,8 +42,21 @@ internal fun Project.addNpmDependencyExtension() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val extension = when (scope) {
|
val extension = when (scope) {
|
||||||
NORMAL, DEV, OPTIONAL -> DefaultNpmDependencyExtension(this, scope)
|
NORMAL, OPTIONAL -> DefaultNpmDependencyExtension(
|
||||||
PEER -> NpmDependencyWithoutDirectoryExtension(this, scope)
|
this,
|
||||||
|
scope,
|
||||||
|
DEFAULT_GENERATE_KOTLIN_EXTERNALS
|
||||||
|
)
|
||||||
|
DEV -> DefaultNpmDependencyExtension(
|
||||||
|
this,
|
||||||
|
scope,
|
||||||
|
false
|
||||||
|
)
|
||||||
|
PEER -> NpmDependencyWithoutDirectoryExtension(
|
||||||
|
this,
|
||||||
|
scope,
|
||||||
|
false
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
extensions
|
extensions
|
||||||
@@ -55,8 +69,9 @@ internal fun Project.addNpmDependencyExtension() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private abstract class AbstractNpmDependencyExtension(
|
private abstract class AbstractNpmDependencyExtension(
|
||||||
private val project: Project,
|
protected val project: Project,
|
||||||
private val scope: NpmDependency.Scope
|
protected val scope: NpmDependency.Scope,
|
||||||
|
protected val defaultGenerateKotlinExternals: Boolean
|
||||||
) : NpmDependencyExtension,
|
) : NpmDependencyExtension,
|
||||||
NpmDirectoryDependencyExtension,
|
NpmDirectoryDependencyExtension,
|
||||||
Closure<NpmDependency>(project.dependencies) {
|
Closure<NpmDependency>(project.dependencies) {
|
||||||
@@ -68,7 +83,8 @@ private abstract class AbstractNpmDependencyExtension(
|
|||||||
project = project,
|
project = project,
|
||||||
name = name,
|
name = name,
|
||||||
version = version,
|
version = version,
|
||||||
scope = scope
|
scope = scope,
|
||||||
|
generateKotlinExternals = defaultGenerateKotlinExternals
|
||||||
)
|
)
|
||||||
|
|
||||||
override operator fun invoke(directory: File): NpmDependency =
|
override operator fun invoke(directory: File): NpmDependency =
|
||||||
@@ -128,9 +144,14 @@ private abstract class AbstractNpmDependencyExtension(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private class DefaultNpmDependencyExtension(
|
private class DefaultNpmDependencyExtension(
|
||||||
private val project: Project,
|
project: Project,
|
||||||
private val scope: NpmDependency.Scope
|
scope: NpmDependency.Scope,
|
||||||
) : AbstractNpmDependencyExtension(project, scope) {
|
defaultGenerateKotlinExternals: Boolean
|
||||||
|
) : AbstractNpmDependencyExtension(
|
||||||
|
project,
|
||||||
|
scope,
|
||||||
|
defaultGenerateKotlinExternals
|
||||||
|
) {
|
||||||
override fun invoke(name: String): NpmDependency =
|
override fun invoke(name: String): NpmDependency =
|
||||||
onlyNameNpmDependency(name)
|
onlyNameNpmDependency(name)
|
||||||
|
|
||||||
@@ -139,7 +160,8 @@ private class DefaultNpmDependencyExtension(
|
|||||||
project = project,
|
project = project,
|
||||||
name = name,
|
name = name,
|
||||||
directory = directory,
|
directory = directory,
|
||||||
scope = scope
|
scope = scope,
|
||||||
|
generateKotlinExternals = defaultGenerateKotlinExternals
|
||||||
)
|
)
|
||||||
|
|
||||||
override operator fun invoke(directory: File): NpmDependency =
|
override operator fun invoke(directory: File): NpmDependency =
|
||||||
@@ -179,8 +201,13 @@ private class DefaultNpmDependencyExtension(
|
|||||||
|
|
||||||
private class NpmDependencyWithoutDirectoryExtension(
|
private class NpmDependencyWithoutDirectoryExtension(
|
||||||
project: Project,
|
project: Project,
|
||||||
scope: NpmDependency.Scope
|
scope: NpmDependency.Scope,
|
||||||
) : AbstractNpmDependencyExtension(project, scope) {
|
defaultGenerateKotlinExternals: Boolean
|
||||||
|
) : AbstractNpmDependencyExtension(
|
||||||
|
project,
|
||||||
|
scope,
|
||||||
|
defaultGenerateKotlinExternals
|
||||||
|
) {
|
||||||
override fun invoke(name: String, directory: File): NpmDependency =
|
override fun invoke(name: String, directory: File): NpmDependency =
|
||||||
npmDeclarationException(arrayOf(name, directory))
|
npmDeclarationException(arrayOf(name, directory))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user