JS: simplify load metadata

This commit is contained in:
Alexey Tsvetkov
2015-05-18 23:09:01 +03:00
parent b2238c0ebf
commit 08df655dcc
@@ -50,18 +50,18 @@ public object KotlinJavascriptMetadataUtils {
platformStatic
public fun loadMetadata(file: File): List<KotlinJavascriptMetadata> {
assert(file.exists()) { "Library " + file + " not found" }
val metadataList = arrayListOf<KotlinJavascriptMetadata>()
LibraryUtils.traverseJsLibrary(file) { content, relativePath ->
var path = file.getPath()
var result: MutableList<KotlinJavascriptMetadata> = 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<KotlinJavascriptMetadata>) {
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<KotlinJavascriptMetadata>) {
LibraryUtils.traverseDirectory(dir) {
file, relativePath -> parseMetadata(FileUtil.loadFile(file), file.getPath(), metadataList)
}
}
private fun loadMetadataFromZip(file: File, metadataList: MutableList<KotlinJavascriptMetadata>) {
LibraryUtils.traverseArchive(file) { content, relativePath ->
parseMetadata(content, "${file.getPath()}/$relativePath", metadataList)
}
}
}