This message was deleted.
# squarelibraries
s
This message was deleted.
👀 1
y
1. Dependencies (
build.gradle.kts
)
Copy code
wasmJsMain.dependencies {  
    implementation(libs.ktor.client.js)  
    implementation(libs.sqldelight.web.driver)  
    implementation(npm("@cashapp/sqldelight-sqljs-worker", "2.1.0"))  
    implementation(npm("sql.js", libs.versions.sqlJs.get()))  
    implementation(devNpm("copy-webpack-plugin", libs.versions.webPackPlugin.get()))  
}
2. Webpack Configurations ( project-root/webpack.config.d/) a. config.js
Copy code
const TerserPlugin = require("terser-webpack-plugin");  
config.optimization = config.optimization || {};  
config.optimization.minimize = true;  
config.optimization.minimizer = [  
  new TerserPlugin({  
    terserOptions: {  
      mangle: true,  
      compress: false,  
      output: { beautify: false }  
    }  
  })  
];
b. sqljs-config.js
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'  
    ]  
  })  
);
3. Worker Initialization (Kotlin)
Copy code
private fun getWorkerUrl(): String =  
  js("new URL('@cashapp/sqldelight-sqljs-worker/sqljs.worker.js', import.meta.url).href")  

actual val platformModule = module {  
  single {  
    val workerUrl = getWorkerUrl()  
    val driver = WebWorkerDriver(Worker(workerUrl))  
    LlmsDatabaseWrapper(driver, LlmsDatabase(driver))  
  }  
}