[Gradle, JS] KT-37207 Support file-only npm dependency in extension
This commit is contained in:
+21
-4
@@ -15,6 +15,8 @@ interface NpmDependencyExtension {
|
|||||||
operator fun invoke(name: String, version: String = "*"): NpmDependency
|
operator fun invoke(name: String, version: String = "*"): NpmDependency
|
||||||
|
|
||||||
operator fun invoke(name: String, directory: File): NpmDependency
|
operator fun invoke(name: String, directory: File): NpmDependency
|
||||||
|
|
||||||
|
operator fun invoke(directory: File): NpmDependency
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Project.addNpmDependencyExtension() {
|
fun Project.addNpmDependencyExtension() {
|
||||||
@@ -34,13 +36,28 @@ fun Project.addNpmDependencyExtension() {
|
|||||||
version = fileVersion(directory)
|
version = fileVersion(directory)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
override operator fun invoke(directory: File): NpmDependency =
|
||||||
|
invoke(
|
||||||
|
name = moduleName(directory),
|
||||||
|
directory = directory
|
||||||
|
)
|
||||||
|
|
||||||
override fun call(vararg args: Any?): NpmDependency {
|
override fun call(vararg args: Any?): NpmDependency {
|
||||||
val size = args.size
|
if (args.size > 2) throw npmDeclarationException(args)
|
||||||
if (size > 2) throw npmDeclarationException(args)
|
|
||||||
|
|
||||||
val name = args[0] as String
|
val arg = args[0]
|
||||||
val arg = if (size > 1) args[1] else null
|
return when (arg) {
|
||||||
|
is String -> withName(
|
||||||
|
name = arg,
|
||||||
|
args = *args
|
||||||
|
)
|
||||||
|
is File -> invoke(arg)
|
||||||
|
else -> throw npmDeclarationException(args)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun withName(name: String, vararg args: Any?): NpmDependency {
|
||||||
|
val arg = if (args.size > 1) args[1] else null
|
||||||
return when (arg) {
|
return when (arg) {
|
||||||
null -> invoke(
|
null -> invoke(
|
||||||
name = name
|
name = name
|
||||||
|
|||||||
Reference in New Issue
Block a user