Package-level declarations

Types

Link copied to clipboard
data class ClassData(val name: String, val packageName: String, val functions: List<FunctionData>, val imports: List<String>, val superClasses: List<KSTypeReference> = emptyList(), val properties: List<KSPropertyDeclaration> = emptyList(), val modifiers: List<KModifier> = emptyList(), val ksFile: KSFile)
Link copied to clipboard
data class FunctionData(val name: String, val returnType: ReturnTypeData, val isSuspend: Boolean = false, val parameterDataList: List<ParameterData>, val annotations: List<FunctionAnnotation> = emptyList(), val httpMethodAnnotation: HttpMethodAnnotation)
Link copied to clipboard
data class KtorfitClass(val name: String, val packageName: String, val objectName: String)
Link copied to clipboard
Link copied to clipboard
data class ParameterData(val name: String, val type: ReturnTypeData, val annotations: List<ParameterAnnotation> = emptyList())
Link copied to clipboard
data class ReturnTypeData(val name: String, val qualifiedName: String, val parameterType: KSTypeReference?)

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard
fun TypeSpec.Builder.addKtorfitSuperInterface(superClasses: List<KSTypeReference>): TypeSpec.Builder

Support for extending multiple interfaces, is done with Kotlin delegation. Ktorfit interfaces can only extend other Ktorfit interfaces, so there will be a generated implementation for each interface that we can use.

Link copied to clipboard
fun KSValueParameter.createParameterData(logger: KSPLogger): ParameterData
Link copied to clipboard
fun ClassData.getImplClassFileSource(resolver: Resolver): String

Transform a ClassData to a FileSpec for KotlinPoet

Link copied to clipboard
fun KSClassDeclaration.toClassData(logger: KSPLogger): ClassData

Convert a KSClassDeclaration to ClassData

Link copied to clipboard
fun KSFunctionDeclaration.toFunctionData(logger: KSPLogger): FunctionData