Skip to content

Commit

Permalink
Don't generate empty query files (#3300)
Browse files Browse the repository at this point in the history
Co-authored-by: hfhbd <hfhbd@users.noreply.github.com>
  • Loading branch information
hfhbd and hfhbd authored Jun 12, 2022
1 parent 1995f1c commit 06a8f7f
Show file tree
Hide file tree
Showing 6 changed files with 11 additions and 44 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ internal class DatabaseGenerator(
invokeReturn.add("%N", dbParameter)

moduleFolders.flatMap { it.queryFiles() }
.filterNot { it.isEmpty() }
.sortedBy { it.name }
.forEach { file ->
// queries property added to QueryWrapper type:
Expand Down Expand Up @@ -166,6 +167,7 @@ internal class DatabaseGenerator(
}

sourceFolders.flatMap { it.queryFiles() }
.filterNot { it.isEmpty() }
.sortedBy { it.name }
.forEach { file ->
var adapters = ""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ class QueriesTypeGenerator(
private val dialect: SqlDelightDialect,
) {
private val generateAsync = file.generateAsync

/**
* Generate the full queries object - done once per file, containing all labeled select and
* mutator queries.
Expand All @@ -29,7 +30,11 @@ class QueriesTypeGenerator(
* transactions: ThreadLocal<Transacter.Transaction>
* ) : TransacterImpl(driver, transactions)
*/
fun generateType(packageName: String): TypeSpec {
fun generateType(packageName: String): TypeSpec? {
if (file.isEmpty()) {
return null
}

val driverType = if (generateAsync) dialect.asyncRuntimeTypes.driverType else dialect.runtimeTypes.driverType

val type = TypeSpec.classBuilder(file.queriesType.simpleName)
Expand Down Expand Up @@ -94,3 +99,5 @@ class QueriesTypeGenerator(
}
}
}

internal fun SqlDelightQueriesFile.isEmpty() = namedQueries.isEmpty() && namedMutators.isEmpty() && namedExecutes.isEmpty()
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ object SqlDelightCompiler {
) {
val packageName = file.packageName ?: return
val queriesType = QueriesTypeGenerator(module, file, dialect)
.generateType(packageName)
.generateType(packageName) ?: return

val fileSpec = FileSpec.builder(packageName, file.queriesName.capitalize())
.addType(queriesType)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,6 @@ class QueriesTypeTest {
|import app.cash.sqldelight.db.QueryResult
|import app.cash.sqldelight.db.SqlDriver
|import app.cash.sqldelight.db.SqlSchema
|import com.example.DataQueries
|import com.example.TestDatabase
|import kotlin.Int
|import kotlin.Unit
Expand All @@ -248,8 +247,6 @@ class QueriesTypeTest {
|private class TestDatabaseImpl(
| driver: SqlDriver,
|) : TransacterImpl(driver), TestDatabase {
| public override val dataQueries: DataQueries = DataQueries(driver)
|
| public object Schema : SqlSchema {
| public override val version: Int
| get() = 1
Expand All @@ -273,21 +270,6 @@ class QueriesTypeTest {
|}
|""".trimMargin()
)

val dataQueries = File(result.outputDirectory, "com/example/DataQueries.kt")
assertThat(result.compilerOutput).containsKey(dataQueries)
assertThat(result.compilerOutput[dataQueries].toString()).isEqualTo(
"""
|package com.example
|
|import app.cash.sqldelight.TransacterImpl
|import app.cash.sqldelight.db.SqlDriver
|
|public class DataQueries(
| private val driver: SqlDriver,
|) : TransacterImpl(driver)
|""".trimMargin()
)
}

@Test fun `queries file is generated properly via compilation1a`() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ class QueryWrapperTest {
|import app.cash.sqldelight.db.SqlDriver
|import app.cash.sqldelight.db.SqlSchema
|import com.example.TestDatabase
|import com.example.TestQueries
|import kotlin.Int
|import kotlin.Unit
|import kotlin.reflect.KClass
Expand All @@ -53,8 +52,6 @@ class QueryWrapperTest {
|private class TestDatabaseImpl(
| driver: SqlDriver,
|) : TransacterImpl(driver), TestDatabase {
| public override val testQueries: TestQueries = TestQueries(driver)
|
| public object Schema : SqlSchema {
| public override val version: Int
| get() = 1
Expand Down Expand Up @@ -206,7 +203,6 @@ class QueryWrapperTest {
|import app.cash.sqldelight.db.SqlSchema
|import app.cash.sqldelight.driver.jdbc.JdbcDriver
|import com.example.TestDatabase
|import com.example.TestQueries
|import kotlin.Int
|import kotlin.Unit
|import kotlin.reflect.KClass
Expand All @@ -220,8 +216,6 @@ class QueryWrapperTest {
|private class TestDatabaseImpl(
| driver: JdbcDriver,
|) : TransacterImpl(driver), TestDatabase {
| public override val testQueries: TestQueries = TestQueries(driver)
|
| public object Schema : SqlSchema {
| public override val version: Int
| get() = 1
Expand Down Expand Up @@ -301,7 +295,6 @@ class QueryWrapperTest {
|import app.cash.sqldelight.db.SqlDriver
|import app.cash.sqldelight.db.SqlSchema
|import com.example.TestDatabase
|import com.example.TestQueries
|import kotlin.Int
|import kotlin.Unit
|import kotlin.reflect.KClass
Expand All @@ -315,8 +308,6 @@ class QueryWrapperTest {
|private class TestDatabaseImpl(
| driver: SqlDriver,
|) : TransacterImpl(driver), TestDatabase {
| public override val testQueries: TestQueries = TestQueries(driver)
|
| public object Schema : SqlSchema {
| public override val version: Int
| get() = 1
Expand Down Expand Up @@ -389,7 +380,6 @@ class QueryWrapperTest {
|import app.cash.sqldelight.db.SqlSchema
|import app.cash.sqldelight.driver.jdbc.JdbcDriver
|import com.example.TestDatabase
|import com.example.TestQueries
|import kotlin.Int
|import kotlin.Unit
|import kotlin.reflect.KClass
Expand All @@ -403,8 +393,6 @@ class QueryWrapperTest {
|private class TestDatabaseImpl(
| driver: JdbcDriver,
|) : TransacterImpl(driver), TestDatabase {
| public override val testQueries: TestQueries = TestQueries(driver)
|
| public object Schema : SqlSchema {
| public override val version: Int
| get() = 1
Expand Down Expand Up @@ -474,7 +462,6 @@ class QueryWrapperTest {
|import app.cash.sqldelight.db.SqlDriver
|import app.cash.sqldelight.db.SqlSchema
|import com.example.TestDatabase
|import com.example.TestQueries
|import kotlin.Int
|import kotlin.Unit
|import kotlin.reflect.KClass
Expand All @@ -488,8 +475,6 @@ class QueryWrapperTest {
|private class TestDatabaseImpl(
| driver: SqlDriver,
|) : TransacterImpl(driver), TestDatabase {
| public override val testQueries: TestQueries = TestQueries(driver)
|
| public object Schema : SqlSchema {
| public override val version: Int
| get() = 1
Expand Down Expand Up @@ -550,7 +535,6 @@ class QueryWrapperTest {
|import app.cash.sqldelight.db.SqlDriver
|import app.cash.sqldelight.db.SqlSchema
|import com.example.TestDatabase
|import com.example.TestQueries
|import kotlin.Int
|import kotlin.Unit
|import kotlin.reflect.KClass
Expand All @@ -564,8 +548,6 @@ class QueryWrapperTest {
|private class TestDatabaseImpl(
| driver: SqlDriver,
|) : TransacterImpl(driver), TestDatabase {
| public override val testQueries: TestQueries = TestQueries(driver)
|
| public object Schema : SqlSchema {
| public override val version: Int
| get() = 1
Expand Down Expand Up @@ -644,7 +626,6 @@ class QueryWrapperTest {
|import app.cash.sqldelight.db.SqlDriver
|import app.cash.sqldelight.db.SqlSchema
|import com.example.TestDatabase
|import com.example.TestQueries
|import kotlin.Int
|import kotlin.Unit
|import kotlin.reflect.KClass
Expand All @@ -658,8 +639,6 @@ class QueryWrapperTest {
|private class TestDatabaseImpl(
| driver: SqlDriver,
|) : TransacterImpl(driver), TestDatabase {
| public override val testQueries: TestQueries = TestQueries(driver)
|
| public object Schema : SqlSchema {
| public override val version: Int
| get() = 3
Expand Down Expand Up @@ -740,7 +719,6 @@ class QueryWrapperTest {
|import app.cash.sqldelight.db.SqlDriver
|import app.cash.sqldelight.db.SqlSchema
|import com.example.TestDatabase
|import com.example.TestQueries
|import kotlin.Int
|import kotlin.Unit
|import kotlin.reflect.KClass
Expand All @@ -755,8 +733,6 @@ class QueryWrapperTest {
|private class TestDatabaseImpl(
| driver: SqlDriver,
|) : TransacterImpl(driver), TestDatabase {
| public override val testQueries: TestQueries = TestQueries(driver)
|
| public object Schema : SqlSchema {
| public override val version: Int
| get() = 1
Expand Down

0 comments on commit 06a8f7f

Please sign in to comment.