From 980145d0bcf179552e4b3eed0ff28fba17150c7e Mon Sep 17 00:00:00 2001 From: Aleksha Date: Thu, 4 Jul 2024 22:30:35 +0300 Subject: [PATCH] Tags for features (#15) Tags for features --- gradle/libs.versions.toml | 2 +- processor/build.gradle | 2 +- .../compose/essentials/buildtool/gradle/GradleProcessor.kt | 4 ++++ .../compose/essentials/design/material3/Material3Processor.kt | 3 +++ .../multiplatform/compose/essentials/di/koin/KoinProcessor.kt | 3 +++ .../compose/essentials/navigation/jetpack/JetpackProcessor.kt | 3 +++ .../compose/essentials/toolkit/compose/ComposeProcessor.kt | 3 +++ .../platform/client/android/AndroidPlatformProcessor.kt | 3 +++ .../compose/platform/client/ios/IOSPlatformProcessor.kt | 3 +++ .../compose/platform/client/js/JsPlatformProcessor.kt | 3 +++ .../compose/platform/client/jvm/JvmPlatformProcessor.kt | 3 +++ .../compose/platform/server/ktor/KtorBackendProcessor.kt | 3 +++ 12 files changed, 33 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 309575e0..b187eeb7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -kotli = "0.5.1" +kotli = "0.5.2" kotlin = "1.9.23" kotlinxCoroutines = "1.8.0" logback = "1.5.6" diff --git a/processor/build.gradle b/processor/build.gradle index a1cd5357..936a8862 100644 --- a/processor/build.gradle +++ b/processor/build.gradle @@ -1,4 +1,4 @@ apply from: "${project.rootDir}/gradle/kotlin/processor.gradle" group = 'com.kotlitecture.kotli' -version = '0.5.1' \ No newline at end of file +version = '0.5.2' \ No newline at end of file diff --git a/processor/src/main/kotlin/kotli/template/multiplatform/compose/essentials/buildtool/gradle/GradleProcessor.kt b/processor/src/main/kotlin/kotli/template/multiplatform/compose/essentials/buildtool/gradle/GradleProcessor.kt index 421ee1fd..bbe439c1 100644 --- a/processor/src/main/kotlin/kotli/template/multiplatform/compose/essentials/buildtool/gradle/GradleProcessor.kt +++ b/processor/src/main/kotlin/kotli/template/multiplatform/compose/essentials/buildtool/gradle/GradleProcessor.kt @@ -1,7 +1,10 @@ package kotli.template.multiplatform.compose.essentials.buildtool.gradle import kotli.engine.BaseFeatureProcessor +import kotli.engine.FeatureTag import kotli.engine.TemplateState +import kotli.engine.model.FeatureTags +import kotli.template.multiplatform.compose.Tags import kotlin.time.Duration.Companion.hours object GradleProcessor : BaseFeatureProcessor() { @@ -9,6 +12,7 @@ object GradleProcessor : BaseFeatureProcessor() { const val ID = "essentials.buildtool.gradle" override fun getId(): String = ID + override fun getTags(): List = listOf(FeatureTags.Client, FeatureTags.Server) override fun getWebUrl(state: TemplateState): String = "https://gradle.org/" override fun getIntegrationUrl(state: TemplateState): String = "https://docs.gradle.org/current/samples/sample_building_kotlin_applications.html" diff --git a/processor/src/main/kotlin/kotli/template/multiplatform/compose/essentials/design/material3/Material3Processor.kt b/processor/src/main/kotlin/kotli/template/multiplatform/compose/essentials/design/material3/Material3Processor.kt index 3f1636d8..74e18946 100644 --- a/processor/src/main/kotlin/kotli/template/multiplatform/compose/essentials/design/material3/Material3Processor.kt +++ b/processor/src/main/kotlin/kotli/template/multiplatform/compose/essentials/design/material3/Material3Processor.kt @@ -2,7 +2,9 @@ package kotli.template.multiplatform.compose.essentials.design.material3 import kotli.engine.BaseFeatureProcessor import kotli.engine.FeatureProcessor +import kotli.engine.FeatureTag import kotli.engine.TemplateState +import kotli.engine.model.FeatureTags import kotlin.time.Duration.Companion.hours object Material3Processor : BaseFeatureProcessor() { @@ -10,6 +12,7 @@ object Material3Processor : BaseFeatureProcessor() { const val ID = "essentials.design.material3" override fun getId(): String = ID + override fun getTags(): List = listOf(FeatureTags.Client) override fun getWebUrl(state: TemplateState): String = "https://m3.material.io/" override fun getIntegrationUrl(state: TemplateState): String = "https://m3.material.io/develop" override fun getIntegrationEstimate(state: TemplateState): Long = 4.hours.inWholeMilliseconds diff --git a/processor/src/main/kotlin/kotli/template/multiplatform/compose/essentials/di/koin/KoinProcessor.kt b/processor/src/main/kotlin/kotli/template/multiplatform/compose/essentials/di/koin/KoinProcessor.kt index cf52392f..a29326fd 100644 --- a/processor/src/main/kotlin/kotli/template/multiplatform/compose/essentials/di/koin/KoinProcessor.kt +++ b/processor/src/main/kotlin/kotli/template/multiplatform/compose/essentials/di/koin/KoinProcessor.kt @@ -1,7 +1,9 @@ package kotli.template.multiplatform.compose.essentials.di.koin import kotli.engine.BaseFeatureProcessor +import kotli.engine.FeatureTag import kotli.engine.TemplateState +import kotli.engine.model.FeatureTags import kotlin.time.Duration.Companion.hours object KoinProcessor : BaseFeatureProcessor() { @@ -9,6 +11,7 @@ object KoinProcessor : BaseFeatureProcessor() { const val ID = "essentials.di.koin" override fun getId(): String = ID + override fun getTags(): List = listOf(FeatureTags.Client, FeatureTags.Server) override fun getWebUrl(state: TemplateState): String = "https://insert-koin.io" override fun getIntegrationUrl(state: TemplateState): String = "https://insert-koin.io/docs/reference/koin-mp/kmp" diff --git a/processor/src/main/kotlin/kotli/template/multiplatform/compose/essentials/navigation/jetpack/JetpackProcessor.kt b/processor/src/main/kotlin/kotli/template/multiplatform/compose/essentials/navigation/jetpack/JetpackProcessor.kt index 0349394a..6661f6fd 100644 --- a/processor/src/main/kotlin/kotli/template/multiplatform/compose/essentials/navigation/jetpack/JetpackProcessor.kt +++ b/processor/src/main/kotlin/kotli/template/multiplatform/compose/essentials/navigation/jetpack/JetpackProcessor.kt @@ -1,7 +1,9 @@ package kotli.template.multiplatform.compose.essentials.navigation.jetpack import kotli.engine.BaseFeatureProcessor +import kotli.engine.FeatureTag import kotli.engine.TemplateState +import kotli.engine.model.FeatureTags import kotlin.time.Duration.Companion.hours object JetpackProcessor : BaseFeatureProcessor() { @@ -9,6 +11,7 @@ object JetpackProcessor : BaseFeatureProcessor() { const val ID = "essentials.navigation.jetpack" override fun getId(): String = ID + override fun getTags(): List = listOf(FeatureTags.Client) override fun getWebUrl(state: TemplateState): String = "https://developer.android.com/guide/navigation" override fun getIntegrationUrl(state: TemplateState): String = "https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-navigation-routing.html" override fun getIntegrationEstimate(state: TemplateState): Long = 4.hours.inWholeMilliseconds diff --git a/processor/src/main/kotlin/kotli/template/multiplatform/compose/essentials/toolkit/compose/ComposeProcessor.kt b/processor/src/main/kotlin/kotli/template/multiplatform/compose/essentials/toolkit/compose/ComposeProcessor.kt index aa79907f..96fc2707 100644 --- a/processor/src/main/kotlin/kotli/template/multiplatform/compose/essentials/toolkit/compose/ComposeProcessor.kt +++ b/processor/src/main/kotlin/kotli/template/multiplatform/compose/essentials/toolkit/compose/ComposeProcessor.kt @@ -1,7 +1,9 @@ package kotli.template.multiplatform.compose.essentials.toolkit.compose import kotli.engine.BaseFeatureProcessor +import kotli.engine.FeatureTag import kotli.engine.TemplateState +import kotli.engine.model.FeatureTags import kotlin.time.Duration.Companion.hours object ComposeProcessor : BaseFeatureProcessor() { @@ -9,6 +11,7 @@ object ComposeProcessor : BaseFeatureProcessor() { const val ID = "essentials.toolkit.compose" override fun getId(): String = ID + override fun getTags(): List = listOf(FeatureTags.Client) override fun getWebUrl(state: TemplateState): String = "https://www.jetbrains.com/lp/compose-multiplatform/" override fun getIntegrationUrl(state: TemplateState): String = "https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-multiplatform-getting-started.html" override fun getIntegrationEstimate(state: TemplateState): Long = 8.hours.inWholeMilliseconds diff --git a/processor/src/main/kotlin/kotli/template/multiplatform/compose/platform/client/android/AndroidPlatformProcessor.kt b/processor/src/main/kotlin/kotli/template/multiplatform/compose/platform/client/android/AndroidPlatformProcessor.kt index 49fcaa9d..6f508432 100644 --- a/processor/src/main/kotlin/kotli/template/multiplatform/compose/platform/client/android/AndroidPlatformProcessor.kt +++ b/processor/src/main/kotlin/kotli/template/multiplatform/compose/platform/client/android/AndroidPlatformProcessor.kt @@ -1,6 +1,8 @@ package kotli.template.multiplatform.compose.platform.client.android +import kotli.engine.FeatureTag import kotli.engine.TemplateState +import kotli.engine.model.FeatureTags import kotli.engine.template.VersionCatalogRules import kotli.engine.template.rule.RemoveFile import kotli.engine.template.rule.RemoveMarkedLine @@ -12,6 +14,7 @@ object AndroidPlatformProcessor : PlatformProcessor() { const val ID = "platform.android" override fun getId(): String = ID + override fun getTags(): List = listOf(FeatureTags.Client, FeatureTags.Android) override fun doRemove(state: TemplateState) { super.doRemove(state) diff --git a/processor/src/main/kotlin/kotli/template/multiplatform/compose/platform/client/ios/IOSPlatformProcessor.kt b/processor/src/main/kotlin/kotli/template/multiplatform/compose/platform/client/ios/IOSPlatformProcessor.kt index 15b57a5f..d4147d99 100644 --- a/processor/src/main/kotlin/kotli/template/multiplatform/compose/platform/client/ios/IOSPlatformProcessor.kt +++ b/processor/src/main/kotlin/kotli/template/multiplatform/compose/platform/client/ios/IOSPlatformProcessor.kt @@ -1,6 +1,8 @@ package kotli.template.multiplatform.compose.platform.client.ios +import kotli.engine.FeatureTag import kotli.engine.TemplateState +import kotli.engine.model.FeatureTags import kotli.engine.template.VersionCatalogRules import kotli.engine.template.rule.RemoveFile import kotli.engine.template.rule.RemoveMarkedLine @@ -12,6 +14,7 @@ object IOSPlatformProcessor : PlatformProcessor() { const val ID = "platform.ios" override fun getId(): String = ID + override fun getTags(): List = listOf(FeatureTags.Client, FeatureTags.IOS) override fun doRemove(state: TemplateState) { super.doRemove(state) diff --git a/processor/src/main/kotlin/kotli/template/multiplatform/compose/platform/client/js/JsPlatformProcessor.kt b/processor/src/main/kotlin/kotli/template/multiplatform/compose/platform/client/js/JsPlatformProcessor.kt index 0c4fa8db..d7e07fb5 100644 --- a/processor/src/main/kotlin/kotli/template/multiplatform/compose/platform/client/js/JsPlatformProcessor.kt +++ b/processor/src/main/kotlin/kotli/template/multiplatform/compose/platform/client/js/JsPlatformProcessor.kt @@ -1,6 +1,8 @@ package kotli.template.multiplatform.compose.platform.client.js +import kotli.engine.FeatureTag import kotli.engine.TemplateState +import kotli.engine.model.FeatureTags import kotli.engine.template.rule.CleanupMarkedBlock import kotli.engine.template.rule.RemoveFile import kotli.engine.template.rule.RemoveMarkedBlock @@ -12,6 +14,7 @@ object JsPlatformProcessor : PlatformProcessor() { const val ID = "platform.js" override fun getId(): String = ID + override fun getTags(): List = listOf(FeatureTags.Client, FeatureTags.Web) override fun doApply(state: TemplateState) { super.doApply(state) diff --git a/processor/src/main/kotlin/kotli/template/multiplatform/compose/platform/client/jvm/JvmPlatformProcessor.kt b/processor/src/main/kotlin/kotli/template/multiplatform/compose/platform/client/jvm/JvmPlatformProcessor.kt index 256466ad..7c5fd6e8 100644 --- a/processor/src/main/kotlin/kotli/template/multiplatform/compose/platform/client/jvm/JvmPlatformProcessor.kt +++ b/processor/src/main/kotlin/kotli/template/multiplatform/compose/platform/client/jvm/JvmPlatformProcessor.kt @@ -1,6 +1,8 @@ package kotli.template.multiplatform.compose.platform.client.jvm +import kotli.engine.FeatureTag import kotli.engine.TemplateState +import kotli.engine.model.FeatureTags import kotli.engine.template.rule.RemoveFile import kotli.template.multiplatform.compose.Rules import kotli.template.multiplatform.compose.platform.PlatformProcessor @@ -10,6 +12,7 @@ object JvmPlatformProcessor : PlatformProcessor() { const val ID = "platform.jvm" override fun getId(): String = ID + override fun getTags(): List = listOf(FeatureTags.Client, FeatureTags.Desktop) override fun doRemove(state: TemplateState) { super.doRemove(state) diff --git a/processor/src/main/kotlin/kotli/template/multiplatform/compose/platform/server/ktor/KtorBackendProcessor.kt b/processor/src/main/kotlin/kotli/template/multiplatform/compose/platform/server/ktor/KtorBackendProcessor.kt index d6e5f123..2bb2c2c7 100644 --- a/processor/src/main/kotlin/kotli/template/multiplatform/compose/platform/server/ktor/KtorBackendProcessor.kt +++ b/processor/src/main/kotlin/kotli/template/multiplatform/compose/platform/server/ktor/KtorBackendProcessor.kt @@ -1,7 +1,9 @@ package kotli.template.multiplatform.compose.platform.server.ktor import kotli.engine.FeatureProcessor +import kotli.engine.FeatureTag import kotli.engine.TemplateState +import kotli.engine.model.FeatureTags import kotli.engine.template.VersionCatalogRules import kotli.engine.template.rule.RemoveFile import kotli.engine.template.rule.RemoveMarkedLine @@ -16,6 +18,7 @@ object KtorBackendProcessor : PlatformProcessor() { const val ID = "platform.server.ktor" override fun getId(): String = ID + override fun getTags(): List = listOf(FeatureTags.Server) override fun getWebUrl(state: TemplateState): String = "https://ktor.io" override fun getIntegrationUrl(state: TemplateState): String = "https://ktor.io/docs/server-create-a-new-project.html" override fun getIntegrationEstimate(state: TemplateState): Long = 1.hours.inWholeMilliseconds