Skip to content

Commit a67f781

Browse files
committed
fix: use VersionedModelTree and dont use Pairs in js
1 parent 843f75a commit a67f781

File tree

1 file changed

+13
-6
lines changed
  • model-client/src/jsMain/kotlin/org/modelix/model/client2

1 file changed

+13
-6
lines changed

model-client/src/jsMain/kotlin/org/modelix/model/client2/ClientJS.kt

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import org.modelix.model.lazy.createObjectStoreCache
2222
import org.modelix.model.mutable.DummyIdGenerator
2323
import org.modelix.model.mutable.INodeIdGenerator
2424
import org.modelix.model.mutable.ModelixIdGenerator
25+
import org.modelix.model.mutable.VersionedModelTree
2526
import org.modelix.model.mutable.asMutableSingleThreaded
2627
import org.modelix.model.mutable.asMutableThreadSafe
2728
import org.modelix.model.mutable.load
@@ -83,6 +84,9 @@ sealed class IdSchemeJS() {
8384
object READONLY : IdSchemeJS()
8485
}
8586

87+
@JsExport
88+
data class VersionInformationWithModelTree(val version: VersionInformationJS, val tree: MutableModelTreeJs)
89+
8690
/**
8791
* JS-API for [ModelClientV2].
8892
* Can be used to perform operations on the model server and to read and write model data.
@@ -114,7 +118,7 @@ interface ClientJS {
114118
*/
115119
fun initRepository(repositoryId: String, useRoleIds: Boolean = true): Promise<Unit>
116120

117-
fun loadReadonlyVersion(repositoryId: String, versionHash: String): Promise<Pair<MutableModelTreeJs, VersionInformationJS>>
121+
fun loadReadonlyVersion(repositoryId: String, versionHash: String): Promise<VersionInformationWithModelTree>
118122

119123
/**
120124
* Fetch existing branches for a given repository from the model server.
@@ -197,13 +201,16 @@ internal class ClientJSImpl(private val modelClient: ModelClientV2) : ClientJS {
197201
}
198202
}
199203

200-
override fun loadReadonlyVersion(repositoryId: String, versionHash: String): Promise<Pair<MutableModelTreeJs, VersionInformationJS>> {
204+
override fun loadReadonlyVersion(repositoryId: String, versionHash: String): Promise<VersionInformationWithModelTree> {
201205
return GlobalScope.promise {
202206
val version = modelClient.loadVersion(RepositoryId(repositoryId), versionHash, null)
203-
MutableModelTreeJsImpl(version.getModelTree().asMutableSingleThreaded()) to VersionInformationJS(
204-
(version as CLVersion).author,
205-
version.getTimestamp()?.toJSDate(),
206-
version.getContentHash())
207+
VersionInformationWithModelTree(
208+
VersionInformationJS(
209+
(version as CLVersion).author,
210+
version.getTimestamp()?.toJSDate(),
211+
version.getContentHash()),
212+
MutableModelTreeJsImpl(VersionedModelTree(version).withAutoTransactions())
213+
)
207214
}
208215
}
209216

0 commit comments

Comments
 (0)