[Gradle, JS] Consider GString in npm dependencies parse in root dependencies

^KT-42462 fixed
This commit is contained in:
Ilya Goncharov
2020-10-05 13:40:45 +03:00
parent 39cde978d0
commit bcdc53d1c4
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.gradle.targets.js.npm
import groovy.lang.Closure
import groovy.lang.GString
import org.gradle.api.Project
import org.gradle.api.plugins.ExtensionAware
import org.gradle.api.reflect.TypeOf
@@ -163,12 +164,15 @@ private abstract class NpmDependencyExtensionDelegate(
override fun call(vararg args: Any?): NpmDependency {
if (args.size > 3) npmDeclarationException(args)
val arg = args[0]
return when (arg) {
return when (val arg = args[0]) {
is String -> withName(
name = arg,
args = *args
)
is GString -> withName(
name = arg.toString(),
args = *args
)
else -> processNonStringFirstArgument(arg, *args)
}
}
@@ -176,10 +180,9 @@ private abstract class NpmDependencyExtensionDelegate(
protected abstract fun processNonStringFirstArgument(arg: Any?, vararg args: Any?): NpmDependency
private fun withName(name: String, vararg args: Any?): NpmDependency {
val arg1 = if (args.size > 1) args[1] else null
val generateExternals = generateExternalsIfPossible(*args)
return when (arg1) {
return when (val arg1 = if (args.size > 1) args[1] else null) {
null -> invoke(
name = name
)
@@ -188,6 +191,11 @@ private abstract class NpmDependencyExtensionDelegate(
version = arg1,
generateExternals = generateExternals
)
is GString -> invoke(
name = name,
version = arg1.toString(),
generateExternals = generateExternals
)
else -> processNamedNonStringSecondArgument(
name,
arg1,