Skip to content

Commit

Permalink
Tags for features (#15)
Browse files Browse the repository at this point in the history
Tags for features
  • Loading branch information
kotlitecture authored Jul 4, 2024
1 parent 7cf1286 commit 980145d
Show file tree
Hide file tree
Showing 12 changed files with 33 additions and 2 deletions.
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
2 changes: 1 addition & 1 deletion processor/build.gradle
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apply from: "${project.rootDir}/gradle/kotlin/processor.gradle"

group = 'com.kotlitecture.kotli'
version = '0.5.1'
version = '0.5.2'
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
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() {

const val ID = "essentials.buildtool.gradle"

override fun getId(): String = ID
override fun getTags(): List<FeatureTag> = 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"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,17 @@ 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() {

const val ID = "essentials.design.material3"

override fun getId(): String = ID
override fun getTags(): List<FeatureTag> = 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
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
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() {

const val ID = "essentials.di.koin"

override fun getId(): String = ID
override fun getTags(): List<FeatureTag> = 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"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
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() {

const val ID = "essentials.navigation.jetpack"

override fun getId(): String = ID
override fun getTags(): List<FeatureTag> = 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
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
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() {

const val ID = "essentials.toolkit.compose"

override fun getId(): String = ID
override fun getTags(): List<FeatureTag> = 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
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -12,6 +14,7 @@ object AndroidPlatformProcessor : PlatformProcessor() {
const val ID = "platform.android"

override fun getId(): String = ID
override fun getTags(): List<FeatureTag> = listOf(FeatureTags.Client, FeatureTags.Android)

override fun doRemove(state: TemplateState) {
super.doRemove(state)
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -12,6 +14,7 @@ object IOSPlatformProcessor : PlatformProcessor() {
const val ID = "platform.ios"

override fun getId(): String = ID
override fun getTags(): List<FeatureTag> = listOf(FeatureTags.Client, FeatureTags.IOS)

override fun doRemove(state: TemplateState) {
super.doRemove(state)
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -12,6 +14,7 @@ object JsPlatformProcessor : PlatformProcessor() {
const val ID = "platform.js"

override fun getId(): String = ID
override fun getTags(): List<FeatureTag> = listOf(FeatureTags.Client, FeatureTags.Web)

override fun doApply(state: TemplateState) {
super.doApply(state)
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -10,6 +12,7 @@ object JvmPlatformProcessor : PlatformProcessor() {
const val ID = "platform.jvm"

override fun getId(): String = ID
override fun getTags(): List<FeatureTag> = listOf(FeatureTags.Client, FeatureTags.Desktop)

override fun doRemove(state: TemplateState) {
super.doRemove(state)
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -16,6 +18,7 @@ object KtorBackendProcessor : PlatformProcessor() {
const val ID = "platform.server.ktor"

override fun getId(): String = ID
override fun getTags(): List<FeatureTag> = 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
Expand Down

0 comments on commit 980145d

Please sign in to comment.