-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbuild.gradle.kts
81 lines (71 loc) · 2.26 KB
/
build.gradle.kts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import corp.tbm.cleanwizard.gradle.api.config.CleanWizardDataClassGenerationPattern
import corp.tbm.cleanwizard.gradle.api.config.CleanWizardDependencyInjectionFramework
import corp.tbm.cleanwizard.gradle.api.config.CleanWizardUseCaseFunctionType
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.json.JsonNamingStrategy
plugins {
alias(libs.plugins.java)
alias(libs.plugins.kotlin.jvm) apply false
alias(libs.plugins.kotlin.serialization) apply false
alias(libs.plugins.google.devtools.ksp) apply false
alias(libs.plugins.cleanwizard.core)
alias(libs.plugins.cleanwizard.multimodule) apply false
alias(libs.plugins.vanniktech.maven.publish) apply false
}
buildscript {
dependencies {
classpath(libs.kotlin.gradle.plugin)
}
}
java {
toolchain {
withSourcesJar()
}
}
`clean-wizard` {
jsonSerializer {
kotlinXSerialization {
json {
encodeDefaults = true
prettyPrint = true
explicitNulls = false
@OptIn(ExperimentalSerializationApi::class)
namingStrategy = JsonNamingStrategy.KebabCase
}
}
}
dataClassGenerationPattern = CleanWizardDataClassGenerationPattern.LAYER
dependencyInjection {
kodein {
useSimpleFunctions = true
binding = CleanWizardDependencyInjectionFramework.Kodein.KodeinBinding.Multiton()
}
}
data {
classSuffix = "DTO"
packageName = "dtos"
toDomainMapFunctionName = "toModel"
interfaceMapper {
className = "DTOMapper"
pathToModuleToGenerateInterfaceMapper = projects.workloads.core.dependencyProject.name
}
}
domain {
classSuffix = "Domain"
packageName = "models"
toDTOMapFunctionName = "fromDomain"
toUIMapFunctionName = "toUI"
useCase {
packageName = "useCase"
useCaseFunctionType = CleanWizardUseCaseFunctionType.CustomFunctionName("execute")
classSuffix = "UseCase"
}
}
presentation {
moduleName = "ui"
classSuffix = "Ui"
packageName = "uis"
shouldGenerate = true
toDomainMapFunctionName = "fromUI"
}
}