Skip to content

Commit 853634d

Browse files
committed
added handler for Nothing
1 parent a02ba29 commit 853634d

File tree

2 files changed

+34
-1
lines changed

2 files changed

+34
-1
lines changed

src/main/kotlin/com/papsign/ktor/openapigen/model/schema/SchemaModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ sealed class SchemaModel<T>: DataModel {
4242
) : SchemaModel<T>()
4343

4444
data class SchemaModelLitteral<T>(
45-
var type: DataType,
45+
var type: DataType? = null,
4646
var format: DataFormat? = null,
4747
var nullable: Boolean = false,
4848
var minimum: T? = null,
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.papsign.ktor.openapigen.schema.builder.provider
2+
3+
import com.papsign.ktor.openapigen.OpenAPIGen
4+
import com.papsign.ktor.openapigen.OpenAPIGenModuleExtension
5+
import com.papsign.ktor.openapigen.getKType
6+
import com.papsign.ktor.openapigen.model.schema.DataType
7+
import com.papsign.ktor.openapigen.model.schema.SchemaModel
8+
import com.papsign.ktor.openapigen.modules.ModuleProvider
9+
import com.papsign.ktor.openapigen.schema.builder.FinalSchemaBuilder
10+
import com.papsign.ktor.openapigen.schema.builder.SchemaBuilder
11+
import kotlin.reflect.KType
12+
import kotlin.reflect.full.createType
13+
import kotlin.reflect.jvm.jvmErasure
14+
15+
object NothingSchemaProvider: SchemaBuilderProviderModule, OpenAPIGenModuleExtension {
16+
17+
private object Builder: SchemaBuilder {
18+
override val superType: KType = Nothing::class.createType()
19+
20+
override fun build(
21+
type: KType,
22+
builder: FinalSchemaBuilder,
23+
finalize: (SchemaModel<*>) -> SchemaModel<*>
24+
): SchemaModel<*> {
25+
checkType(type)
26+
return finalize(SchemaModel.SchemaModelLitteral<Any?>(nullable = true))
27+
}
28+
}
29+
30+
override fun provide(apiGen: OpenAPIGen, provider: ModuleProvider<*>): List<SchemaBuilder> {
31+
return listOf(Builder)
32+
}
33+
}

0 commit comments

Comments
 (0)