@@ -22,6 +22,7 @@ import org.modelix.model.lazy.createObjectStoreCache
22
22
import org.modelix.model.mutable.DummyIdGenerator
23
23
import org.modelix.model.mutable.INodeIdGenerator
24
24
import org.modelix.model.mutable.ModelixIdGenerator
25
+ import org.modelix.model.mutable.VersionedModelTree
25
26
import org.modelix.model.mutable.asMutableSingleThreaded
26
27
import org.modelix.model.mutable.asMutableThreadSafe
27
28
import org.modelix.model.mutable.load
@@ -83,6 +84,9 @@ sealed class IdSchemeJS() {
83
84
object READONLY : IdSchemeJS()
84
85
}
85
86
87
+ @JsExport
88
+ data class VersionInformationWithModelTree (val version : VersionInformationJS , val tree : MutableModelTreeJs )
89
+
86
90
/* *
87
91
* JS-API for [ModelClientV2].
88
92
* Can be used to perform operations on the model server and to read and write model data.
@@ -114,7 +118,7 @@ interface ClientJS {
114
118
*/
115
119
fun initRepository (repositoryId : String , useRoleIds : Boolean = true): Promise <Unit >
116
120
117
- fun loadReadonlyVersion (repositoryId : String , versionHash : String ): Promise <Pair < MutableModelTreeJs , VersionInformationJS > >
121
+ fun loadReadonlyVersion (repositoryId : String , versionHash : String ): Promise <VersionInformationWithModelTree >
118
122
119
123
/* *
120
124
* Fetch existing branches for a given repository from the model server.
@@ -197,13 +201,16 @@ internal class ClientJSImpl(private val modelClient: ModelClientV2) : ClientJS {
197
201
}
198
202
}
199
203
200
- override fun loadReadonlyVersion (repositoryId : String , versionHash : String ): Promise <Pair < MutableModelTreeJs , VersionInformationJS > > {
204
+ override fun loadReadonlyVersion (repositoryId : String , versionHash : String ): Promise <VersionInformationWithModelTree > {
201
205
return GlobalScope .promise {
202
206
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
+ )
207
214
}
208
215
}
209
216
0 commit comments