Skip to content

Commit 5057d01

Browse files
Merge pull request #38 from amanshuraikwar/refactor
Refactor
2 parents 8d520ac + 6a4a21e commit 5057d01

32 files changed

Lines changed: 491 additions & 441 deletions

File tree

project-files/Portfolio/buildWebsite.kts

Lines changed: 39 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ File(".") exec "rm -rf build"
88
println("Creating build...")
99
File(".") exec "mkdir build"
1010

11+
generateEmptyBlogListFile()
12+
1113
generateEmptyDataStoreFile("PageType.PROJECTS")
1214
buildAndCopyDirectoryContents("projects")
1315

@@ -86,9 +88,34 @@ data class BlogListEntry(
8688
val link: String
8789
)
8890

91+
fun generateEmptyBlogListFile(): File {
92+
val outputFile = File(
93+
"shared/src/jsMain/kotlin/io/github/amanshuraikwar/portfolio/GeneratedBlogListDataStore.kt"
94+
)
95+
if (outputFile.exists()) {
96+
outputFile.delete()
97+
}
98+
99+
outputFile.bufferedWriter().use { out ->
100+
out.write("package io.github.amanshuraikwar.portfolio\n")
101+
out.write("\n")
102+
out.write("import io.github.amanshuraikwar.portfolio.blog.BlogListDataItem\n")
103+
out.write("\n")
104+
out.write("/**\n * Note: generated by buildWebsite.kts, do not edit!\n */\n")
105+
out.write("class GeneratedBlogListDataStore {\n")
106+
out.write("\n")
107+
out.write("\tfun getBlogListData(): List<BlogListDataItem> {\n")
108+
out.write("\t\treturn listOf()\n")
109+
out.write("\t}\n")
110+
out.write("}")
111+
}
112+
113+
return outputFile
114+
}
115+
89116
fun createBlogListFile(blogListEntryList: List<BlogListEntry>): File {
90117
val outputFile = File(
91-
"shared/src/commonMain/kotlin/io/github/amanshuraikwar/portfolio/BlogListDataStore.kt"
118+
"shared/src/jsMain/kotlin/io/github/amanshuraikwar/portfolio/GeneratedBlogListDataStore.kt"
92119
)
93120
outputFile.delete()
94121

@@ -97,13 +124,13 @@ fun createBlogListFile(blogListEntryList: List<BlogListEntry>): File {
97124

98125
out.write("\n")
99126

100-
out.write("import io.github.amanshuraikwar.portfolio.markdown.BlogListDataItem\n")
127+
out.write("import io.github.amanshuraikwar.portfolio.blog.BlogListDataItem\n")
101128

102129
out.write("\n")
103130

104131
out.write("/**\n * Note: generated by buildWebsite.kts, do not edit!\n */\n")
105132

106-
out.write("class BlogListDataStore {\n")
133+
out.write("class GeneratedBlogListDataStore {\n")
107134

108135
out.write("\n")
109136

@@ -168,21 +195,23 @@ fun buildAndCopyDirectoryContents(dirName: String, deleteAssets: Boolean = true)
168195

169196
fun generateEmptyDataStoreFile(pageType: String) {
170197
val outputFile =
171-
File("shared/src/commonMain/kotlin/io/github/amanshuraikwar/portfolio/GeneratedDataStore.kt")
172-
outputFile.delete()
198+
File("shared/src/jsMain/kotlin/io/github/amanshuraikwar/portfolio/GeneratedWebPageBuildDataStore.kt")
199+
if (outputFile.exists()) {
200+
outputFile.delete()
201+
}
173202

174203
outputFile.bufferedWriter().use { out ->
175204
out.write("package io.github.amanshuraikwar.portfolio\n")
176205

177206
out.write("\n")
178207

179-
out.write("import io.github.amanshuraikwar.portfolio.markdown.MdNode\n")
208+
out.write("import io.github.amanshuraikwar.portfolio.model.MdNode\n")
180209

181210
out.write("\n")
182211

183212
out.write("/**\n * Note: generated by buildWebsite.kts, do not edit!\n */\n")
184213

185-
out.write("class GeneratedDataStore : DataStore {\n")
214+
out.write("class GeneratedWebPageBuildDataStore : WebPageBuildDataStore {\n")
186215

187216
out.write("\n")
188217

@@ -206,21 +235,21 @@ fun generateBlogMdSource(file: File): BlogListEntry {
206235
var firstParagraph = ""
207236

208237
val outputFile =
209-
File("shared/src/commonMain/kotlin/io/github/amanshuraikwar/portfolio/GeneratedDataStore.kt")
238+
File("shared/src/jsMain/kotlin/io/github/amanshuraikwar/portfolio/GeneratedWebPageBuildDataStore.kt")
210239
outputFile.delete()
211240

212241
outputFile.bufferedWriter().use { out ->
213242
out.write("package io.github.amanshuraikwar.portfolio\n")
214243

215244
out.write("\n")
216245

217-
out.write("import io.github.amanshuraikwar.portfolio.markdown.MdNode\n")
246+
out.write("import io.github.amanshuraikwar.portfolio.model.MdNode\n")
218247

219248
out.write("\n")
220249

221250
out.write("/**\n * Note: generated by buildWebsite.kts, do not edit!\n */\n")
222251

223-
out.write("class GeneratedDataStore : DataStore {\n")
252+
out.write("class GeneratedWebPageBuildDataStore : WebPageBuildDataStore {\n")
224253

225254
out.write("\n")
226255

project-files/Portfolio/shared/src/commonMain/kotlin/io/github/amanshuraikwar/portfolio/DataStore.kt

Lines changed: 0 additions & 8 deletions
This file was deleted.
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package io.github.amanshuraikwar.portfolio
2+
3+
import io.ktor.client.HttpClient
4+
import io.ktor.client.engine.HttpClientEngine
5+
import io.ktor.client.features.json.JsonFeature
6+
import io.ktor.client.features.json.serializer.KotlinxSerializer
7+
import io.ktor.client.features.logging.DEFAULT
8+
import io.ktor.client.features.logging.LogLevel
9+
import io.ktor.client.features.logging.Logger
10+
import io.ktor.client.features.logging.Logging
11+
import kotlinx.serialization.json.Json
12+
13+
object Factory {
14+
fun createHttpClient(
15+
engine: HttpClientEngine,
16+
json: Json = createJson(),
17+
enableNetworkLogs: Boolean
18+
) = HttpClient(engine) {
19+
install(JsonFeature) {
20+
serializer = KotlinxSerializer(json)
21+
}
22+
if (enableNetworkLogs) {
23+
install(Logging) {
24+
logger = Logger.DEFAULT
25+
level = LogLevel.INFO
26+
}
27+
}
28+
}
29+
30+
fun createHttpClient(
31+
json: Json = createJson(),
32+
enableNetworkLogs: Boolean
33+
) = HttpClient {
34+
install(JsonFeature) {
35+
serializer = KotlinxSerializer(json)
36+
}
37+
if (enableNetworkLogs) {
38+
install(Logging) {
39+
logger = Logger.DEFAULT
40+
level = LogLevel.INFO
41+
}
42+
}
43+
}
44+
45+
fun createJson() = Json { isLenient = true; ignoreUnknownKeys = true }
46+
}

0 commit comments

Comments
 (0)