Hello I am getting an error with SQLDelight Browse...
# squarelibraries
m
Hello I am getting an error with SQLDelight Browser WASM: WebWorkerException: {"message":"Uncaught SyntaxError: Unexpected token '<'","type":"error"}isTrusted,true overrideMethod@ The build.gradle.kts:
Copy code
kotlin {
   @OptIn(ExperimentalWasmDsl::class)
   wasmJs("store") {
      browser {
         commonWebpackConfig {
            outputFileName = "store.js"
         }
      }
      binaries.executable()
   }
storeMain.dependencies {
   // DB Web worker
   implementation(libs.web.worker.driver)
   implementation(devNpm("copy-webpack-plugin", "9.1.0"))
   implementation(npm("@cashapp/sqldelight-sqljs-worker", "2.1.0"))
   implementation(npm("sql.js", "1.8.0"))
}
}
sqldelight {
   databases {
      create("Database") {
         packageName.set("ar.com.cancerbero")
         deriveSchemaFromMigrations.set(true)
         verifyMigrations.set(true)
         generateAsync.set(true)
      }
   }
}
the webpack.config.d/sqljs.js seems to be working...
Copy code
config.resolve = {
   fallback: {
      fs: false,
      path: false,
      crypto: false,
   }
};

const CopyWebpackPlugin = require('copy-webpack-plugin');
config.plugins.push(
   new CopyWebpackPlugin({
      patterns: [
         '../../node_modules/sql.js/dist/sql-wasm.wasm'
      ]
   })
);
the provideDbDriver:
Copy code
private val workerScriptUrl: String = js("""new URL("@cashapp/sqldelight-sqljs-worker/sqljs.worker.js", import.meta.url)""")

actual suspend fun provideDbDriver(
   schema: SqlSchema<QueryResult.AsyncValue<Unit>>
): SqlDriver {
   return WebWorkerDriver(
      Worker(workerScriptUrl)
   ).also { schema.create(it).await() }
}
The initialization logic:
Copy code
object StoreApp {
   val scope = CoroutineScope(Dispatchers.Default)

   private var database: Database? = null

   init {
      scope.launch {
         val driver = provideDbDriver(Database.Schema)
         database = createDatabase(driver)
      }
   }
}
This error appears at first moment, with no use... So LATER when i try to do something like: it crashes:
Copy code
db!!.key_valuesQueries.selectValue("selectedStoreId").asFlow().mapToOneOrNull(Dispatchers.Default),
because of null pointer exception... The Database,kt in commonMain:
Copy code
expect suspend fun provideDbDriver(
   schema: SqlSchema<QueryResult.AsyncValue<Unit>>
): SqlDriver

fun createDatabase(driver: SqlDriver): Database {
   return Database(driver)

   // Do more work with the database (see below).
}