From 50e0e6ac06aa3dae7d9b095e3dbb819dc08071b8 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Thu, 7 May 2020 17:28:05 +0300 Subject: [PATCH] [Gradle, JS] Add defaultGeneratedKotlinExternals to dependencies extensions KT-38331 --- .../targets/js/npm/NpmDependencyExtension.kt | 49 ++++++++++++++----- 1 file changed, 38 insertions(+), 11 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependencyExtension.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependencyExtension.kt index 197f59ade59..d8eb894da1a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependencyExtension.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependencyExtension.kt @@ -9,6 +9,7 @@ import groovy.lang.Closure import org.gradle.api.Project import org.gradle.api.plugins.ExtensionAware 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.utils.lowerCamelCaseName import java.io.File @@ -41,8 +42,21 @@ internal fun Project.addNpmDependencyExtension() { } val extension = when (scope) { - NORMAL, DEV, OPTIONAL -> DefaultNpmDependencyExtension(this, scope) - PEER -> NpmDependencyWithoutDirectoryExtension(this, scope) + NORMAL, OPTIONAL -> DefaultNpmDependencyExtension( + this, + scope, + DEFAULT_GENERATE_KOTLIN_EXTERNALS + ) + DEV -> DefaultNpmDependencyExtension( + this, + scope, + false + ) + PEER -> NpmDependencyWithoutDirectoryExtension( + this, + scope, + false + ) } extensions @@ -55,8 +69,9 @@ internal fun Project.addNpmDependencyExtension() { } private abstract class AbstractNpmDependencyExtension( - private val project: Project, - private val scope: NpmDependency.Scope + protected val project: Project, + protected val scope: NpmDependency.Scope, + protected val defaultGenerateKotlinExternals: Boolean ) : NpmDependencyExtension, NpmDirectoryDependencyExtension, Closure(project.dependencies) { @@ -68,7 +83,8 @@ private abstract class AbstractNpmDependencyExtension( project = project, name = name, version = version, - scope = scope + scope = scope, + generateKotlinExternals = defaultGenerateKotlinExternals ) override operator fun invoke(directory: File): NpmDependency = @@ -128,9 +144,14 @@ private abstract class AbstractNpmDependencyExtension( } private class DefaultNpmDependencyExtension( - private val project: Project, - private val scope: NpmDependency.Scope -) : AbstractNpmDependencyExtension(project, scope) { + project: Project, + scope: NpmDependency.Scope, + defaultGenerateKotlinExternals: Boolean +) : AbstractNpmDependencyExtension( + project, + scope, + defaultGenerateKotlinExternals +) { override fun invoke(name: String): NpmDependency = onlyNameNpmDependency(name) @@ -139,7 +160,8 @@ private class DefaultNpmDependencyExtension( project = project, name = name, directory = directory, - scope = scope + scope = scope, + generateKotlinExternals = defaultGenerateKotlinExternals ) override operator fun invoke(directory: File): NpmDependency = @@ -179,8 +201,13 @@ private class DefaultNpmDependencyExtension( private class NpmDependencyWithoutDirectoryExtension( project: Project, - scope: NpmDependency.Scope -) : AbstractNpmDependencyExtension(project, scope) { + scope: NpmDependency.Scope, + defaultGenerateKotlinExternals: Boolean +) : AbstractNpmDependencyExtension( + project, + scope, + defaultGenerateKotlinExternals +) { override fun invoke(name: String, directory: File): NpmDependency = npmDeclarationException(arrayOf(name, directory))