[Gradle, JS] Warning on missed types and typings on genext npm dep
#KT-38331 fixed
This commit is contained in:
+26
-1
@@ -26,11 +26,36 @@ class DtsResolver(val npmProject: NpmProject) {
|
|||||||
.asSequence()
|
.asSequence()
|
||||||
.filter { !considerGeneratingFlag || it.generateExternals }
|
.filter { !considerGeneratingFlag || it.generateExternals }
|
||||||
.filter { it.scope == NORMAL || it.scope == OPTIONAL }
|
.filter { it.scope == NORMAL || it.scope == OPTIONAL }
|
||||||
.mapNotNullTo(mutableSetOf()) { typeModules.resolve(it.key)?.let { file -> Dts(file.canonicalFile, it) } }
|
.mapNotNullTo(mutableSetOf()) { dependency ->
|
||||||
|
getDtsFromDependency(dependency, considerGeneratingFlag)
|
||||||
|
}
|
||||||
.sortedBy { it.inputKey }
|
.sortedBy { it.inputKey }
|
||||||
.toList()
|
.toList()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getDtsFromDependency(
|
||||||
|
dependency: NpmDependency,
|
||||||
|
considerGeneratingFlag: Boolean
|
||||||
|
): Dts? {
|
||||||
|
val dts = typeModules.resolve(dependency.key)
|
||||||
|
?.let { file ->
|
||||||
|
Dts(file.canonicalFile, dependency)
|
||||||
|
}
|
||||||
|
if (dts == null && considerGeneratingFlag) {
|
||||||
|
warningOnMissedDTs(dependency)
|
||||||
|
}
|
||||||
|
return dts
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun warningOnMissedDTs(dependency: NpmDependency) {
|
||||||
|
npmProject.project.logger.warn(
|
||||||
|
"""
|
||||||
|
No `types` or `typings` found for '$dependency'.
|
||||||
|
To find d.ts for dependency, fields `types` and `typings` should be declared in `package.json`
|
||||||
|
""".trimIndent()
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
class Dts(val file: File, val npmDependency: NpmDependency) {
|
class Dts(val file: File, val npmDependency: NpmDependency) {
|
||||||
val inputKey: String
|
val inputKey: String
|
||||||
get() = npmDependency.key + "@" + npmDependency.resolvedVersion + "#" + npmDependency.integrity
|
get() = npmDependency.key + "@" + npmDependency.resolvedVersion + "#" + npmDependency.integrity
|
||||||
|
|||||||
Reference in New Issue
Block a user