Gradle, js, npm: fix reading package.json files

#KT-31788 Fixed
This commit is contained in:
Sergey Rostov
2019-06-04 13:23:09 +03:00
parent 32a0bb9f0e
commit b5080bda75
2 changed files with 14 additions and 3 deletions
@@ -46,6 +46,9 @@ data class NpmDependency(
npmProject.resolve(item.key)?.let {
all.add(it)
if (it.path.endsWith(".js")) {
all.add(File(it.path.removeSuffix(".js") + ".meta.js"))
}
}
if (transitive) {
@@ -60,9 +60,9 @@ internal open class NpmProjectModules(
Gson().fromJson(it, JsonObject::class.java)
}
packageJson["main"] as? String?
?: packageJson["module"] as? String?
?: packageJson["browser"] as? String?
packageJson.getStringOrNull("main")
?: packageJson.getStringOrNull("module")
?: packageJson.getStringOrNull("browser")
} else null
return if (main != null) {
@@ -72,6 +72,14 @@ internal open class NpmProjectModules(
} else resolveIndex(dir)
}
private fun JsonObject.getStringOrNull(key: String): String? {
val value = get(key)
if (value == null || !value.isJsonPrimitive) return null
val jsonPrimitive = value.asJsonPrimitive
if (jsonPrimitive.isString) return jsonPrimitive.asString
return null
}
private fun resolveIndex(dir: File): File? = resolveAsFile(dir.resolve(INDEX_FILE_NAME))
private fun resolveAsFile(file: File): File? {