Skip to content

Commit 84ba38c

Browse files
committed
[Web Import] Enable persistent cache to avoid re-fetching icons on every plugin restart
1 parent 7f6adf3 commit 84ba38c

2 files changed

Lines changed: 11 additions & 0 deletions

File tree

tools/idea-plugin/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
- [Web Import] Add `Remix` icons provider
1616
- [Web Import] Add `Box` icons provider
1717
- [Web Import] Force `Material Symbols` and `Lucide` icon providers to use woff2 font
18+
- [Web Import] Enable persistent cache to avoid re-fetching icons on every plugin restart
1819

1920
### Fixed
2021

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/common/di/NetworkModule.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
package io.github.composegears.valkyrie.ui.screen.webimport.common.di
22

33
import com.composegears.leviathan.Leviathan
4+
import com.intellij.openapi.application.PathManager
45
import io.ktor.client.HttpClient
56
import io.ktor.client.engine.okhttp.OkHttp
67
import io.ktor.client.plugins.HttpTimeout
8+
import io.ktor.client.plugins.cache.HttpCache
9+
import io.ktor.client.plugins.cache.storage.FileStorage
710
import io.ktor.client.plugins.contentnegotiation.ContentNegotiation
811
import io.ktor.serialization.kotlinx.json.json
12+
import java.nio.file.Files
13+
import java.nio.file.Paths
914
import kotlin.time.Duration.Companion.seconds
1015
import kotlinx.serialization.json.Json
1116

@@ -26,6 +31,11 @@ object NetworkModule : Leviathan() {
2631
install(ContentNegotiation) {
2732
json(inject(json))
2833
}
34+
install(HttpCache) {
35+
val cacheDir = Paths.get(PathManager.getSystemPath()).resolve("valkyrie")
36+
val cacheFile = Files.createDirectories(cacheDir).toFile()
37+
publicStorage(FileStorage(cacheFile))
38+
}
2939
}
3040
}
3141
}

0 commit comments

Comments
 (0)