Skip to content

Commit 6a4a21e

Browse files
moved web page build specific files to jsMain in :shared
1 parent a02eef0 commit 6a4a21e

20 files changed

Lines changed: 111 additions & 67 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.

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

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,12 @@ import io.github.amanshuraikwar.portfolio.network.PortfolioApi
1111
import kotlinx.coroutines.Dispatchers
1212
import kotlinx.coroutines.withContext
1313

14-
class PortfolioRepository(
14+
open class PortfolioRepository(
1515
private val portfolioApi: PortfolioApi = PortfolioApi(
1616
client = Factory.createHttpClient(enableNetworkLogs = true)
1717
),
18-
private val dataStore: DataStore = GeneratedDataStore(),
1918
) {
20-
private suspend fun getPortfolioData(): PortfolioData {
19+
protected suspend fun getPortfolioData(): PortfolioData {
2120
return withContext(Dispatchers.Default) {
2221
portfolioApi.getPortfolioData().let { response ->
2322
PortfolioData(
@@ -56,17 +55,4 @@ class PortfolioRepository(
5655
}
5756
}
5857
}
59-
60-
suspend fun getPageData(): PageData {
61-
return when (dataStore.getPageType()) {
62-
PageType.HOME -> PageData.Home(
63-
getPortfolioData(),
64-
BlogListDataStore().getBlogListData()
65-
)
66-
PageType.MD -> PageData.Md(getPortfolioData(), dataStore.getData())
67-
PageType.PROJECTS -> PageData.Projects(getPortfolioData())
68-
PageType.BACKGROUND -> PageData.Background(getPortfolioData())
69-
PageType.ABOUT_ME -> PageData.AboutMe(getPortfolioData())
70-
}
71-
}
7258
}

project-files/Portfolio/shared/src/commonMain/kotlin/io/github/amanshuraikwar/portfolio/markdown/BlogListDataItem.kt renamed to project-files/Portfolio/shared/src/commonMain/kotlin/io/github/amanshuraikwar/portfolio/blog/BlogListDataItem.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.github.amanshuraikwar.portfolio.markdown
1+
package io.github.amanshuraikwar.portfolio.blog
22

33
data class BlogListDataItem(
44
val title: String,

project-files/Portfolio/shared/src/commonMain/kotlin/io/github/amanshuraikwar/portfolio/markdown/MdNode.kt renamed to project-files/Portfolio/shared/src/commonMain/kotlin/io/github/amanshuraikwar/portfolio/model/MdNode.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.github.amanshuraikwar.portfolio.markdown
1+
package io.github.amanshuraikwar.portfolio.model
22

33
sealed class MdNode {
44
data class H1(val text: String): MdNode()

project-files/Portfolio/shared/src/commonMain/kotlin/io/github/amanshuraikwar/portfolio/PageData.kt renamed to project-files/Portfolio/shared/src/commonMain/kotlin/io/github/amanshuraikwar/portfolio/model/PageData.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
package io.github.amanshuraikwar.portfolio
1+
package io.github.amanshuraikwar.portfolio.model
22

3-
import io.github.amanshuraikwar.portfolio.markdown.BlogListDataItem
4-
import io.github.amanshuraikwar.portfolio.markdown.MdNode
5-
import io.github.amanshuraikwar.portfolio.model.PortfolioData
3+
import io.github.amanshuraikwar.portfolio.blog.BlogListDataItem
64

75
sealed class PageData {
86
data class Home(

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
package io.github.amanshuraikwar.portfolio.theme
44

55
import com.russhwolf.settings.Settings
6+
import io.github.amanshuraikwar.portfolio.Factory
67
import io.github.amanshuraikwar.portfolio.theme.model.ThemeColorsData
78
import io.github.amanshuraikwar.portfolio.theme.model.ThemeData
89
import io.github.amanshuraikwar.portfolio.theme.network.ThemeApi
@@ -18,8 +19,10 @@ import kotlinx.serialization.encodeToString
1819
import kotlinx.serialization.json.Json
1920

2021
class ThemeRepository(
21-
private val themeApi: ThemeApi,
22-
private val settings: Settings,
22+
private val themeApi: ThemeApi = ThemeApi(
23+
Factory.createHttpClient(enableNetworkLogs = true)
24+
),
25+
private val settings: Settings = Settings(),
2326
private val defaultThemeColorsName: String = DEFAULT_THEME_COLORS_NAME,
2427
private val defaultThemeData: ThemeData = DEFAULT_THEME_DATA,
2528
) {

project-files/Portfolio/shared/src/commonMain/kotlin/io/github/amanshuraikwar/portfolio/BlogListDataStore.kt renamed to project-files/Portfolio/shared/src/jsMain/kotlin/io/github/amanshuraikwar/portfolio/GeneratedBlogListDataStore.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
package io.github.amanshuraikwar.portfolio
22

3-
import io.github.amanshuraikwar.portfolio.markdown.BlogListDataItem
3+
import io.github.amanshuraikwar.portfolio.blog.BlogListDataItem
44

55
/**
66
* Note: generated by buildWebsite.kts, do not edit!
77
*/
8-
class BlogListDataStore {
8+
class GeneratedBlogListDataStore {
99

1010
fun getBlogListData(): List<BlogListDataItem> {
1111
return listOf(
1212
BlogListDataItem(
1313
title = "My Portfolio",
14-
date = "December 25, 2021",
15-
firstParagraph = "This is my portfolio. It is a KMM project which runs on Web, Android, iOS. The business logic is written in Kotlin. The Web app is written in Kotlin, built using Jetpack Compose for Web. The Android app is written in Kotlin, built using Jetpack Compose. The iOS app UI is written in Swift, built using Swift UI and it uses the KMM shared module for business logic.",
14+
date = "December 27, 2021",
15+
firstParagraph = "This is my portfolio. It is a KMM project which currently supports Web, Android & iOS clients coming soon. The Web app is written in Kotlin, built using Jetpack Compose for Web and it has a KMM shared module for business logic.",
1616
link = "https://amanshuraikwar.github.io/portfolio",
1717
),
1818
BlogListDataItem(

project-files/Portfolio/shared/src/commonMain/kotlin/io/github/amanshuraikwar/portfolio/GeneratedDataStore.kt renamed to project-files/Portfolio/shared/src/jsMain/kotlin/io/github/amanshuraikwar/portfolio/GeneratedWebPageBuildDataStore.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package io.github.amanshuraikwar.portfolio
22

3-
import io.github.amanshuraikwar.portfolio.markdown.MdNode
3+
import io.github.amanshuraikwar.portfolio.model.MdNode
44

55
/**
66
* Note: generated by buildWebsite.kts, do not edit!
77
*/
8-
class GeneratedDataStore : DataStore {
8+
class GeneratedWebPageBuildDataStore : WebPageBuildDataStore {
99

1010
override fun getPageType(): PageType {
1111
return PageType.HOME

project-files/Portfolio/shared/src/commonMain/kotlin/io/github/amanshuraikwar/portfolio/PageType.kt renamed to project-files/Portfolio/shared/src/jsMain/kotlin/io/github/amanshuraikwar/portfolio/PageType.kt

File renamed without changes.

0 commit comments

Comments
 (0)