From f4521ee4e4588a17694ee17482341398b05d6e47 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Thu, 7 May 2020 19:38:37 +0300 Subject: [PATCH] [Gradle, JS] In case when default generate kotlin externals will be changed, nothing will be broken KT-38331 --- .../targets/js/npm/NpmDependencyExtension.kt | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 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 cc36d05eb1a..247d665d7ac 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 @@ -82,12 +82,12 @@ internal fun Project.addNpmDependencyExtension() { DEV -> DefaultNpmDependencyExtension( this, scope, - false + null ) PEER -> NpmDependencyWithoutDirectoryExtension( this, scope, - false + null ) } @@ -103,11 +103,14 @@ internal fun Project.addNpmDependencyExtension() { private abstract class AbstractNpmDependencyExtension( protected val project: Project, protected val scope: NpmDependency.Scope, - protected val defaultGenerateKotlinExternals: Boolean + protected val _defaultGenerateKotlinExternals: Boolean? ) : NpmDependencyExtension, DevNpmDependencyExtension, PeerNpmDependencyExtension, Closure(project.dependencies) { + private val defaultGenerateKotlinExternals: Boolean + get() = _defaultGenerateKotlinExternals ?: false + override fun invoke(name: String): NpmDependency = onlyNameNpmDependency(name) @@ -215,19 +218,18 @@ private abstract class AbstractNpmDependencyExtension( protected fun generateKotlinExternalsIfPossible(vararg args: Any?): Boolean { val arg2 = (if (args.size > 2) args[2] else null) as? Boolean - if (arg2 != null && !defaultGenerateKotlinExternals) { + if (arg2 != null && _defaultGenerateKotlinExternals == null) { npmDeclarationException(args) } - return arg2 - ?: defaultGenerateKotlinExternals + return arg2 ?: defaultGenerateKotlinExternals } } private class DefaultNpmDependencyExtension( project: Project, scope: NpmDependency.Scope, - defaultGenerateKotlinExternals: Boolean + defaultGenerateKotlinExternals: Boolean? ) : AbstractNpmDependencyExtension( project, scope, @@ -285,7 +287,7 @@ private class DefaultNpmDependencyExtension( private class NpmDependencyWithoutDirectoryExtension( project: Project, scope: NpmDependency.Scope, - defaultGenerateKotlinExternals: Boolean + defaultGenerateKotlinExternals: Boolean? ) : AbstractNpmDependencyExtension( project, scope,