Skip to content

Commit 9df7b82

Browse files
committed
Small improvements
1 parent c882977 commit 9df7b82

File tree

4 files changed

+21
-9
lines changed

4 files changed

+21
-9
lines changed

KSP/src/main/kotlin/io/github/jan/supabase/ksp/SelectableSymbolProcessor.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ class SelectableSymbolProcessor(
3030
private val options: Map<String, String>
3131
) : SymbolProcessor {
3232

33-
val packageName = options["packageName"] ?: "io.github.jan.supabase.postgrest"
34-
val fileName = options["fileName"] ?: "PostgrestColumns"
33+
val packageName = options["selectablePackageName"] ?: "io.github.jan.supabase.postgrest"
34+
val fileName = options["selectableFileName"] ?: "PostgrestColumns"
3535

3636
override fun process(resolver: Resolver): List<KSAnnotated> {
3737
val symbols = resolver.getSymbolsWithAnnotation(Selectable::class.java.name).filterIsInstance<KSClassDeclaration>()

Postgrest/src/commonMain/kotlin/io/github/jan/supabase/postgrest/ColumnRegistry.kt

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,26 @@ package io.github.jan.supabase.postgrest
33
import io.github.jan.supabase.annotations.SupabaseInternal
44
import kotlin.reflect.KClass
55

6+
@OptIn(ExperimentalSubclassOptIn::class)
67
@SupabaseInternal
7-
class ColumnRegistry(
8+
@SubclassOptInRequired(SupabaseInternal::class)
9+
interface ColumnRegistry {
10+
11+
fun <T : Any> getColumns(kClass: KClass<T>): String
12+
13+
fun registerColumns(name: String, columns: String)
14+
15+
}
16+
17+
@SupabaseInternal
18+
class MapColumnRegistry(
819
private val map: MutableMap<String, String> = mutableMapOf()
9-
) {
20+
): ColumnRegistry {
1021

11-
fun <T : Any> getColumns(kClass: KClass<T>): String = map[kClass.simpleName] ?: error("No columns registered for $kClass")
22+
override fun <T : Any> getColumns(kClass: KClass<T>): String = map[kClass.simpleName] ?: error("No columns registered for $kClass")
1223

13-
fun registerColumns(qualifiedName: String, columns: String) {
14-
map[qualifiedName] = columns
24+
override fun registerColumns(name: String, columns: String) {
25+
map[name] = columns
1526
}
1627

1728
}

Postgrest/src/commonMain/kotlin/io/github/jan/supabase/postgrest/Postgrest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ interface Postgrest : MainPlugin<Postgrest.Config>, CustomSerializationPlugin {
102102
data class Config(
103103
var defaultSchema: String = "public",
104104
var propertyConversionMethod: PropertyConversionMethod = PropertyConversionMethod.CAMEL_CASE_TO_SNAKE_CASE,
105-
@property:SupabaseInternal var columnRegistry: ColumnRegistry = ColumnRegistry()
105+
@property:SupabaseInternal var columnRegistry: ColumnRegistry = MapColumnRegistry()
106106
): MainConfig(), CustomSerializationConfig {
107107

108108
override var serializer: SupabaseSerializer? = null

Postgrest/src/commonTest/kotlin/Utils.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
import io.github.jan.supabase.annotations.SupabaseInternal
22
import io.github.jan.supabase.postgrest.ColumnRegistry
3+
import io.github.jan.supabase.postgrest.MapColumnRegistry
34
import io.github.jan.supabase.postgrest.PropertyConversionMethod
45
import io.github.jan.supabase.postgrest.query.PostgrestRequestBuilder
56

67
@SupabaseInternal
78
inline fun postgrestRequest(
89
propertyConversionMethod: PropertyConversionMethod = PropertyConversionMethod.CAMEL_CASE_TO_SNAKE_CASE,
9-
columnRegistry: ColumnRegistry = ColumnRegistry(),
10+
columnRegistry: ColumnRegistry = MapColumnRegistry(),
1011
block: PostgrestRequestBuilder.() -> Unit
1112
): PostgrestRequestBuilder {
1213
val filter = PostgrestRequestBuilder(propertyConversionMethod, columnRegistry)

0 commit comments

Comments
 (0)