kysely-dialect-tauri
Version:
Kysely Tauri dialect, using @tauri-apps/plugin-sql
34 lines (31 loc) • 1.1 kB
JavaScript
import { GenericSqliteDialect, buildQueryFn, parseBigInt } from 'kysely-generic-sqlite';
// src/index.ts
var TauriSqliteDialect = class extends GenericSqliteDialect {
/**
* SQLite dialect for Tauri, using [official sql plugin](https://github.com/tauri-apps/plugins-workspace/tree/dev/plugins/sql)
*/
constructor(config) {
const { database, onCreateConnection } = config;
super(
async () => {
const db = typeof database === "function" ? await database("sqlite:") : database;
return {
db,
query: buildQueryFn({
all: async (sql, parameters) => await db.select(sql, parameters),
run: async (sql, parameters) => {
const { rowsAffected, lastInsertId } = await db.execute(sql, parameters);
return {
numAffectedRows: parseBigInt(rowsAffected),
insertId: parseBigInt(lastInsertId)
};
}
}),
close: async () => await db.close()
};
},
onCreateConnection
);
}
};
export { TauriSqliteDialect };