All Downloads are FREE. Search and download functionalities are using the official Maven repository.

tech.skot.tools.starter.model.Model.kt Maven / Gradle / Ivy

package tech.skot.tools.starter.model

import com.squareup.kotlinpoet.ClassName
import com.squareup.kotlinpoet.FileSpec
import com.squareup.kotlinpoet.FunSpec
import com.squareup.kotlinpoet.KModifier
import tech.skot.tools.starter.BuildGradleGenerator
import tech.skot.tools.starter.ModuleGenerator
import tech.skot.tools.starter.StarterGenerator

fun StarterGenerator.model(){
    ModuleGenerator("model", configuration, rootDir).apply {
        buildGradle {
            plugin(BuildGradleGenerator.Plugin.Kotlin("multiplatform"))
            plugin(BuildGradleGenerator.Plugin.Id("tech.skot.model"))
        }

        androidPackage = configuration.appPackage+".model"
        androidPermission("INTERNET")
        androidPermission("ACCESS_NETWORK_STATE")
        androidPermission("ACCESS_WIFI_STATE")
        androidPermission("WRITE_EXTERNAL_STORAGE")
        androidPermission("READ_EXTERNAL_STORAGE")
        androidPermission("WAKE_LOCK")

        mainPackage = configuration.appPackage

        val startModel = ClassName("${configuration.appPackage}.di", "startModel")
        FileSpec.builder(startModel.packageName, startModel.simpleName)
            .addFunction(
                FunSpec.builder(startModel.simpleName)
                    .addModifiers(KModifier.SUSPEND)
                    .build()
            )
            .build()
            .writeTo(rootDir.resolve("$name/src/commonMain/kotlin"))

    }.generate()
    modules.add("model")




}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy