diff --git a/compiler/util/src/org/jetbrains/kotlin/utils/KotlinJavascriptMetadataUtils.kt b/compiler/util/src/org/jetbrains/kotlin/utils/KotlinJavascriptMetadataUtils.kt index 0c145c13999..533919d5928 100644 --- a/compiler/util/src/org/jetbrains/kotlin/utils/KotlinJavascriptMetadataUtils.kt +++ b/compiler/util/src/org/jetbrains/kotlin/utils/KotlinJavascriptMetadataUtils.kt @@ -50,18 +50,18 @@ public object KotlinJavascriptMetadataUtils { platformStatic public fun loadMetadata(file: File): List { assert(file.exists()) { "Library " + file + " not found" } + val metadataList = arrayListOf() + LibraryUtils.traverseJsLibrary(file) { content, relativePath -> + var path = file.getPath() - var result: MutableList = arrayListOf() - if (file.isDirectory()) { - loadMetadataFromDirectory(file, result) + if (relativePath.isNotBlank()) { + path += "/$relativePath" + } + + parseMetadata(content, path, metadataList) } - else if (file.getName().endsWith(JS_EXT)) { - loadMetadataFromFile(file, result) - } - else { - loadMetadataFromZip(file, result) - } - return result + + return metadataList } platformStatic @@ -81,26 +81,4 @@ public object KotlinJavascriptMetadataUtils { metadataList.add(KotlinJavascriptMetadata(moduleName, parseBase64Binary(data))) } } - - private fun loadMetadataFromFile(file: File, metadataList: MutableList) { - try { - val content = FileUtil.loadFile(file) - parseMetadata(content, file.getPath(), metadataList) - } - catch (ex: IOException) { - LOG.error("Could not read ${file.getAbsolutePath()}: ${ex.getMessage()}") - } - } - - private fun loadMetadataFromDirectory(dir: File, metadataList: MutableList) { - LibraryUtils.traverseDirectory(dir) { - file, relativePath -> parseMetadata(FileUtil.loadFile(file), file.getPath(), metadataList) - } - } - - private fun loadMetadataFromZip(file: File, metadataList: MutableList) { - LibraryUtils.traverseArchive(file) { content, relativePath -> - parseMetadata(content, "${file.getPath()}/$relativePath", metadataList) - } - } }