Add an ability to provide own handler for errors inside KotlinJavascriptMetadataUtils.loadMetadata

Use a logger to handle errors inside loadMetadata when it's used from IDE (JsResolverForModuleFactory).

#EA-218905
This commit is contained in:
Zalim Bashorov
2020-05-25 15:07:24 +03:00
parent b79b3507f2
commit 69827fc5af
3 changed files with 12 additions and 6 deletions
@@ -65,8 +65,11 @@ object KotlinJavascriptMetadataUtils {
"\"${Base64.getEncoder().encodeToString(content)}\");\n"
@JvmStatic
fun loadMetadata(file: File): List<KotlinJavascriptMetadata> {
assert(file.exists()) { "Library $file not found" }
fun loadMetadata(file: File, onError: (message: String) -> Unit = ::error): List<KotlinJavascriptMetadata> {
if (!file.exists()) {
onError("Library $file not found")
return emptyList()
}
val metadataList = arrayListOf<KotlinJavascriptMetadata>()
JsLibraryUtils.traverseJsLibrary(file) { library ->
parseMetadata(library.content, metadataList)
@@ -76,7 +79,7 @@ object KotlinJavascriptMetadataUtils {
}
@JvmStatic
fun loadMetadata(path: String): List<KotlinJavascriptMetadata> = loadMetadata(File(path))
fun loadMetadata(path: String, onError: (message: String) -> Unit): List<KotlinJavascriptMetadata> = loadMetadata(File(path), onError)
@JvmStatic
fun parseMetadata(text: CharSequence, metadataList: MutableList<KotlinJavascriptMetadata>) {