kysely-dialect-tauri
v2.0.1
Published
Kysely Tauri dialect, using @tauri-apps/plugin-sql
Maintainers
Readme
kysely-dialect-tauri
kysely dialect for Tauri, using official sql plugin
Currently only supports SQLite
Install
bun add kysely kysely-dialect-tauri @tauri-apps/plugin-sqlUsage
import { appDataDir } from '@tauri-apps/api/path'
import Database from '@tauri-apps/plugin-sql'
import { Kysely } from 'kysely'
const kysely = new Kysely<DB>({
dialect: new TauriSqliteDialect({
database: async (prefix) => Database.load(`${prefix}${await appDataDir()}test.db`),
}),
})You can also pass the Database.load(...) promise directly:
const kysely = new Kysely<DB>({
dialect: new TauriSqliteDialect({
database: Database.load('sqlite:test.db'),
}),
})Raw SQL is conservatively treated as a write unless you classify row-returning statements:
const kysely = new Kysely<DB>({
dialect: new TauriSqliteDialect({
database: Database.load('sqlite:test.db'),
isQuery: (sql) => sql === 'select 1 as value',
}),
})Classify any additional row-returning raw statements you rely on, including PRAGMAs or dialect-specific statements.
Config
export interface TauriSqliteDialectConfig {
database: Promisable<TauriSqlDB> | ((prefix: 'sqlite:') => Promisable<TauriSqlDB>)
isQuery?: IGenericSqliteExecutor['isQuery']
/**
* Called once when the first query is executed.
*
* This is a Kysely specific feature and does not come from the `better-sqlite3` module.
*/
onCreateConnection?: (connection: DatabaseConnection) => Promisable<void>
}