JS: add writeMetadataToString, serializeToString
This commit is contained in:
@@ -41,10 +41,12 @@ public object KotlinJavascriptMetadataUtils {
|
||||
public fun hasMetadata(text: String): Boolean = METADATA_PATTERN.matcher(text).find()
|
||||
|
||||
public fun writeMetadata(moduleName: String, content: ByteArray, metaFile: File) {
|
||||
val text = "// Kotlin.$KOTLIN_JAVASCRIPT_METHOD_NAME($ABI_VERSION, \"$moduleName\", \"${printBase64Binary(content)}\");\n"
|
||||
FileUtil.writeToFile(metaFile, text)
|
||||
FileUtil.writeToFile(metaFile, writeMetadataToString(moduleName, content))
|
||||
}
|
||||
|
||||
public fun writeMetadataToString(moduleName: String, content: ByteArray): String =
|
||||
"// Kotlin.$KOTLIN_JAVASCRIPT_METHOD_NAME($ABI_VERSION, \"$moduleName\", \"${printBase64Binary(content)}\");\n"
|
||||
|
||||
platformStatic
|
||||
public fun loadMetadata(file: File): List<KotlinJavascriptMetadata> {
|
||||
assert(file.exists()) { "Library " + file + " not found" }
|
||||
|
||||
+6
-1
@@ -16,6 +16,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.utils.serializer
|
||||
|
||||
import com.intellij.openapi.util.io.FileUtil
|
||||
import org.jetbrains.kotlin.builtins.BuiltInsSerializationUtil
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||
@@ -36,6 +37,10 @@ import java.io.File
|
||||
public class KotlinJavaScriptSerializer() {
|
||||
|
||||
public fun serialize(moduleName: String, moduleDescriptor: ModuleDescriptor, metaFile: File) {
|
||||
FileUtil.writeToFile(metaFile, serializeToString(moduleName, moduleDescriptor))
|
||||
}
|
||||
|
||||
public fun serializeToString(moduleName: String, moduleDescriptor: ModuleDescriptor): String {
|
||||
val contentMap = hashMapOf<String, ByteArray>()
|
||||
|
||||
DescriptorUtils.getPackagesFqNames(moduleDescriptor).forEach {
|
||||
@@ -47,7 +52,7 @@ public class KotlinJavaScriptSerializer() {
|
||||
}
|
||||
|
||||
val content = KotlinJavascriptSerializationUtil.contentMapToByteArray(contentMap)
|
||||
KotlinJavascriptMetadataUtils.writeMetadata(moduleName, content, metaFile)
|
||||
return KotlinJavascriptMetadataUtils.writeMetadataToString(moduleName, content)
|
||||
}
|
||||
|
||||
fun serializePackage(module: ModuleDescriptor, fqName: FqName, writeFun: (String, ByteArrayOutputStream) -> Unit) {
|
||||
|
||||
Reference in New Issue
Block a user