Skip to content

Commit 030fc83

Browse files
committed
feat(model-sync-lib): added js support
1 parent 9e5eef0 commit 030fc83

File tree

9 files changed

+37
-20
lines changed

9 files changed

+37
-20
lines changed

model-sync-lib/build.gradle.kts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ repositories {
77
}
88

99
kotlin {
10+
js(IR) {
11+
browser()
12+
}
1013
jvm {
1114
jvmToolchain(11)
1215
testRuns["test"].executionTask.configure {
@@ -21,7 +24,7 @@ kotlin {
2124
}
2225
}
2326

24-
val commonTest by getting {
27+
val jvmTest by getting {
2528
dependencies {
2629
implementation(project(":model-api"))
2730
implementation(libs.kotlin.serialization.json)

model-sync-lib/src/commonMain/kotlin/org/modelix/model/sync/ModelExporter.kt

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,10 @@ package org.modelix.model.sync
22

33
import org.modelix.model.api.INode
44
import org.modelix.model.api.serialize
5-
import org.modelix.model.data.ModelData
65
import org.modelix.model.data.NodeData
76
import org.modelix.model.data.associateWithNotNull
8-
import java.io.File
97

10-
class ModelExporter(private val root: INode) {
11-
12-
fun export(outputFile: File) {
13-
val modelData = ModelData(root = root.asExported())
14-
outputFile.parentFile.mkdirs()
15-
outputFile.writeText(modelData.toJson())
16-
}
17-
}
8+
expect class ModelExporter(root: INode)
189

1910
fun INode.asExported() : NodeData {
2011
val idKey = NodeData.idPropertyKey

model-sync-lib/src/commonMain/kotlin/org/modelix/model/sync/ModelImporter.kt

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,12 @@ package org.modelix.model.sync
33
import org.modelix.model.api.*
44
import org.modelix.model.data.ModelData
55
import org.modelix.model.data.NodeData
6-
import java.io.File
76

87
class ModelImporter(private val root: INode) {
98

109
private val originalIdToExisting: MutableMap<String, INode> = mutableMapOf()
1110
private val postponedReferences = ArrayList<() -> Unit>()
1211
private val nodesToRemove = HashSet<INode>()
13-
14-
fun import(jsonFile: File) {
15-
require(jsonFile.exists())
16-
require(jsonFile.extension == "json")
17-
18-
val data = ModelData.fromJson(jsonFile.readText())
19-
import(data)
20-
}
2112

2213
fun import(data: ModelData) {
2314
originalIdToExisting.clear()
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package org.modelix.model.sync
2+
3+
import org.modelix.model.api.INode
4+
5+
actual class ModelExporter actual constructor(private val root: INode) {
6+
fun export() = root.asExported()
7+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package org.modelix.model.sync
2+
3+
import org.modelix.model.api.INode
4+
import org.modelix.model.data.ModelData
5+
import java.io.File
6+
7+
actual class ModelExporter actual constructor(private val root: INode) {
8+
fun export(outputFile: File) {
9+
val modelData = ModelData(root = root.asExported())
10+
outputFile.parentFile.mkdirs()
11+
outputFile.writeText(modelData.toJson())
12+
}
13+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package org.modelix.model.sync
2+
3+
import org.modelix.model.data.ModelData
4+
import java.io.File
5+
6+
fun ModelImporter.import(jsonFile: File) {
7+
require(jsonFile.exists())
8+
require(jsonFile.extension == "json")
9+
10+
val data = ModelData.fromJson(jsonFile.readText())
11+
import(data)
12+
}
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)