KQLite

  • Typesafe Kotlin SQLite API
  • Kotlin Multiplatform
  • Typesafe Cursor Iterator
  • Result Callback Flow
  • No Plugin - No generated code
Get Started ➜
val ct = TblContact.type AS "contact_type"
val adults: Flow<List<Contact>> =
    TblContact
        .select(
            TblContact.id,
            TblContact.firstName,
            TblContact.birthDate,
            ct,
        ).where {  it: TblContact 
            (it.birthDate LTE DATE().now().years(-18)) AND
                    (it.deleted NOT_EQ true)
        }
        .groupBy(ct)
        .orderBy(TblContact.firstName, Sort.DESC)
        .limit(10)
        .execute()
        .asCallbackFlow()
        .mapToList {  it: KQLiteCursor 
            //val firstName = it[TblContact.firstName]
            TblContact.mapper(it)
        }