[Gradle, JS] KT-37207 Possibility to add dependency on not module dir

This commit is contained in:
Ilya Goncharov
2020-03-27 13:20:08 +03:00
parent f0c900c027
commit f1133defa3
5 changed files with 21 additions and 7 deletions
@@ -18,6 +18,7 @@ kotlin.sourceSets {
implementation(npm("@yworks/optimizer", "1.0.6")) implementation(npm("@yworks/optimizer", "1.0.6"))
implementation(npm("file-dependency", projectDir.resolve("file-dependency"))) implementation(npm("file-dependency", projectDir.resolve("file-dependency")))
implementation(npm(projectDir.resolve("file-dependency-2"))) implementation(npm(projectDir.resolve("file-dependency-2")))
implementation(npm(projectDir.resolve("file-dependency-3")))
} }
} }
@@ -0,0 +1,5 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
@@ -89,11 +89,15 @@ class DefaultKotlinDependencyHandler(
version = version version = version
) )
override fun npm(name: String, directory: File): NpmDependency = override fun npm(name: String, directory: File): NpmDependency {
npm( check(directory.isDirectory) {
"Dependency on local path should point on directory but $directory found"
}
return npm(
name = name, name = name,
version = fileVersion(directory) version = fileVersion(directory)
) )
}
override fun npm(directory: File): NpmDependency = override fun npm(directory: File): NpmDependency =
npm( npm(
@@ -133,11 +133,11 @@ internal fun fileVersion(directory: File): String =
internal fun moduleName(directory: File): String { internal fun moduleName(directory: File): String {
val packageJson = directory.resolve(PACKAGE_JSON) val packageJson = directory.resolve(PACKAGE_JSON)
check(packageJson.isFile) { if (packageJson.isFile) {
"There is no NPM module in $directory. Declare valid $PACKAGE_JSON in it." return fromSrcPackageJson(packageJson)!!.name
} }
return fromSrcPackageJson(packageJson)!!.name return directory.name
} }
const val FILE_VERSION_PREFIX = "file:" const val FILE_VERSION_PREFIX = "file:"
@@ -30,11 +30,15 @@ fun Project.addNpmDependencyExtension() {
version = version version = version
) )
override operator fun invoke(name: String, directory: File): NpmDependency = override operator fun invoke(name: String, directory: File): NpmDependency {
invoke( check(directory.isDirectory) {
"Dependency on local path should point on directory but $directory found"
}
return invoke(
name = name, name = name,
version = fileVersion(directory) version = fileVersion(directory)
) )
}
override operator fun invoke(directory: File): NpmDependency = override operator fun invoke(directory: File): NpmDependency =
invoke( invoke(