[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()
|
||||
.filter { !considerGeneratingFlag || it.generateExternals }
|
||||
.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 }
|
||||
.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) {
|
||||
val inputKey: String
|
||||
get() = npmDependency.key + "@" + npmDependency.resolvedVersion + "#" + npmDependency.integrity
|
||||
|
||||
Reference in New Issue
Block a user