i am trying out sqldelight on web with the async webworker stuff

i am getting weird error messages

IllegalStateException: The driver used with SQLDelight is asynchronous, so SQLDelight should be configured for
asynchronous usage:

sqldelight {
  databases {
    MyDatabase {
      generateAsync = true
    }
  }
}

even though it is configured for it..

sqldelight {
    databases {
        create("MyDatabase") {
            packageName.set("com.example.projectname")
            generateAsync.set(true)
        }

    }
}

sqldelight = "2.0.1" web-worker-driver = { module = "app.cash.sqldelight:web-worker-driver", version.ref = "sqldelight" }

        jsMain.dependencies {
            implementation(compose.html.core)

            implementation(libs.ktor.client.js)

            implementation(libs.web.worker.driver)
            implementation(devNpm("copy-webpack-plugin", "9.1.0"))
            implementation(npm("@cashapp/sqldelight-sqljs-worker", "2.0.0"))
            implementation(npm("sql.js", "1.8.0"))
        }
actual class DatabaseDriverFactory {
    private val mutex = Mutex()
    actual suspend fun createDriver(): SqlDriver {
        @Suppress("UnsafeCastFromDynamic")
        val driver = WebWorkerDriver(
            Worker(js("""new URL("@cashapp/sqldelight-sqljs-worker/sqljs.worker.js", import.meta.url)""")),
        )
        mutex.withLock {
            MyDatabase.Schema.awaitCreate(driver)
            return driver
        }
    }
}

this is kmp project

0

There are 0 best solutions below