Abhinav
05/04/2025, 7:13 AMactual suspend fun provideDbDriver(): SqlDriver {
val worker = createWorker()
val driver: SqlDriver = WebWorkerDriver(worker)
createSchema(driver)
return driver
}
internal fun createWorker(): Worker =
js("""new Worker(new URL("sqldelight-sqlite-wasm-worker/sqlitewasm.worker.js", import.meta.url))""")
suspend fun createSchema(driver: SqlDriver) {
AppDB.Schema.create(driver).await()
val currentDBVersion : Long? = getString(LocalStorageKeys.WASM_DB_VERSION)?.toLongOrNull()
if (currentDBVersion != null && currentDBVersion != AppDB.Schema.version) {
AppDB.Schema.migrate(driver,currentDBVersion,AppDB.Schema.version, AfterVersion(1) {
saveString(LocalStorageKeys.WASM_DB_VERSION, "2")
}).await()
} else {
saveString(LocalStorageKeys.WASM_DB_VERSION,AppDB.Schema.version.toString())
}
}