Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@devs-studio/kmp-js

devsstudio202ISC1.0.12TypeScript support: included

JS libraries for KMP

js, kmp, idb, indexeddb

readme

This page is based on [SQL.js Web Worker]: https://sqldelight.github.io/sqldelight/2.0.2/js_sqlite/sqljs_worker/. Follow the instructions in that page before do this.

SQL.js Web Worker

To include the SQL.js worker in your project, first add a dependency on the worker package along with a dependency on SQL.js.

kotlin {
  sourceSets.jsMain.dependencies {
    implementation(npm("@devs-studio/kmp-js", "1.0.0"))
    implementation(npm("sql.js", "1.8.0"))
  }
}

The SQL.js package includes a WebAssembly binary that must be copied into your application's output. In your project, add an additional Webpack configuration file to configure the copying of the binary to your assembled project.

`js title="webpack.config.d/sqljs-config.js" // {project}/webpack.config.d/sqljs.js 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' ] }) );


## Using the Worker

The worker script is called `sqljs-custom.worker.js` and can be referenced in code like this:

```kotlin
val driver = WebWorkerDriver(
  Worker(
    js("""new URL("@devs-studio/kmp-js/dist/sqldelight/sqljs-custom.worker.js", import.meta.url)""")
  )
)

See "Using a Web Worker" for more details.