fixes in FileKeyValueRepo

This commit is contained in:
InsanusMokrassar 2022-06-28 14:13:04 +06:00
parent 5ef3bb746b
commit aa2d598689
2 changed files with 16 additions and 8 deletions

View File

@ -2,6 +2,10 @@
## 0.11.8 ## 0.11.8
* `Repos`:
* `Common`:
* Fixes in `FileKeyValueRepo`
## 0.11.7 ## 0.11.7
* `Common`: * `Common`:

View File

@ -99,7 +99,9 @@ class FileWriteKeyValueRepo(
override val onValueRemoved: Flow<String> = _onValueRemoved.asSharedFlow() override val onValueRemoved: Flow<String> = _onValueRemoved.asSharedFlow()
init { init {
folder.mkdirs() if (!folder.mkdirs() && !folder.exists()) {
error("Unable to create folder ${folder.absolutePath}")
}
filesChangedProcessingScope ?.let { filesChangedProcessingScope ?.let {
it.launch { it.launch {
try { try {
@ -144,15 +146,17 @@ class FileWriteKeyValueRepo(
} }
override suspend fun set(toSet: Map<String, File>) { override suspend fun set(toSet: Map<String, File>) {
supervisorScope { val scope = CoroutineScope(currentCoroutineContext())
toSet.map { (filename, fileSource) -> toSet.map { (filename, fileSource) ->
launch { scope.launch {
val file = File(folder, filename) val file = File(folder, filename)
file.delete() file.delete()
fileSource.copyTo(file, overwrite = true) fileSource.copyTo(file, overwrite = true)
_onNewValue.emit(filename to file) if (!file.exists()) {
error("Can't create file $file with new content")
} }
_onNewValue.emit(filename to file)
} }
}.joinAll() }.joinAll()
} }