[Gradle, JS] In case when default generate kotlin externals will be changed, nothing will be broken

KT-38331
This commit is contained in:
Ilya Goncharov
2020-05-07 19:38:37 +03:00
parent 86c8986bd3
commit f4521ee4e4
@@ -82,12 +82,12 @@ internal fun Project.addNpmDependencyExtension() {
DEV -> DefaultNpmDependencyExtension( DEV -> DefaultNpmDependencyExtension(
this, this,
scope, scope,
false null
) )
PEER -> NpmDependencyWithoutDirectoryExtension( PEER -> NpmDependencyWithoutDirectoryExtension(
this, this,
scope, scope,
false null
) )
} }
@@ -103,11 +103,14 @@ internal fun Project.addNpmDependencyExtension() {
private abstract class AbstractNpmDependencyExtension( private abstract class AbstractNpmDependencyExtension(
protected val project: Project, protected val project: Project,
protected val scope: NpmDependency.Scope, protected val scope: NpmDependency.Scope,
protected val defaultGenerateKotlinExternals: Boolean protected val _defaultGenerateKotlinExternals: Boolean?
) : NpmDependencyExtension, ) : NpmDependencyExtension,
DevNpmDependencyExtension, DevNpmDependencyExtension,
PeerNpmDependencyExtension, PeerNpmDependencyExtension,
Closure<NpmDependency>(project.dependencies) { Closure<NpmDependency>(project.dependencies) {
private val defaultGenerateKotlinExternals: Boolean
get() = _defaultGenerateKotlinExternals ?: false
override fun invoke(name: String): NpmDependency = override fun invoke(name: String): NpmDependency =
onlyNameNpmDependency(name) onlyNameNpmDependency(name)
@@ -215,19 +218,18 @@ private abstract class AbstractNpmDependencyExtension(
protected fun generateKotlinExternalsIfPossible(vararg args: Any?): Boolean { protected fun generateKotlinExternalsIfPossible(vararg args: Any?): Boolean {
val arg2 = (if (args.size > 2) args[2] else null) as? Boolean val arg2 = (if (args.size > 2) args[2] else null) as? Boolean
if (arg2 != null && !defaultGenerateKotlinExternals) { if (arg2 != null && _defaultGenerateKotlinExternals == null) {
npmDeclarationException(args) npmDeclarationException(args)
} }
return arg2 return arg2 ?: defaultGenerateKotlinExternals
?: defaultGenerateKotlinExternals
} }
} }
private class DefaultNpmDependencyExtension( private class DefaultNpmDependencyExtension(
project: Project, project: Project,
scope: NpmDependency.Scope, scope: NpmDependency.Scope,
defaultGenerateKotlinExternals: Boolean defaultGenerateKotlinExternals: Boolean?
) : AbstractNpmDependencyExtension( ) : AbstractNpmDependencyExtension(
project, project,
scope, scope,
@@ -285,7 +287,7 @@ private class DefaultNpmDependencyExtension(
private class NpmDependencyWithoutDirectoryExtension( private class NpmDependencyWithoutDirectoryExtension(
project: Project, project: Project,
scope: NpmDependency.Scope, scope: NpmDependency.Scope,
defaultGenerateKotlinExternals: Boolean defaultGenerateKotlinExternals: Boolean?
) : AbstractNpmDependencyExtension( ) : AbstractNpmDependencyExtension(
project, project,
scope, scope,