[Gradle, JS] throw exception if dependency forbid generate external

KT-38331
This commit is contained in:
Ilya Goncharov
2020-05-07 19:25:08 +03:00
parent df38a669b8
commit 86c8986bd3
@@ -171,7 +171,7 @@ private abstract class AbstractNpmDependencyExtension(
private fun withName(name: String, vararg args: Any?): NpmDependency { private fun withName(name: String, vararg args: Any?): NpmDependency {
val arg1 = if (args.size > 1) args[1] else null val arg1 = if (args.size > 1) args[1] else null
val generateKotlinExternals = secondArgOrFalse(*args) val generateKotlinExternals = generateKotlinExternalsIfPossible(*args)
return when (arg1) { return when (arg1) {
null -> invoke( null -> invoke(
@@ -212,9 +212,15 @@ private abstract class AbstractNpmDependencyExtension(
return listOf("npm('name', 'version')" to "name:version") return listOf("npm('name', 'version')" to "name:version")
} }
protected fun secondArgOrFalse(vararg args: Any?): Boolean { protected fun generateKotlinExternalsIfPossible(vararg args: Any?): Boolean {
val arg2 = if (args.size > 2) args[2] else null val arg2 = (if (args.size > 2) args[2] else null) as? Boolean
return (arg2 as? Boolean) ?: defaultGenerateKotlinExternals
if (arg2 != null && !defaultGenerateKotlinExternals) {
npmDeclarationException(args)
}
return arg2
?: defaultGenerateKotlinExternals
} }
} }
@@ -241,7 +247,7 @@ private class DefaultNpmDependencyExtension(
) )
override fun processNonStringFirstArgument(arg: Any?, vararg args: Any?): NpmDependency { override fun processNonStringFirstArgument(arg: Any?, vararg args: Any?): NpmDependency {
val generateKotlinExternals = secondArgOrFalse(args) val generateKotlinExternals = generateKotlinExternalsIfPossible(args)
return when (arg) { return when (arg) {
is File -> invoke( is File -> invoke(