tauri_plugin_libsql/
lib.rs1use tauri::{
2 plugin::{Builder, TauriPlugin},
3 Manager, Runtime,
4};
5
6pub use models::*;
7
8#[cfg(desktop)]
9mod desktop;
10#[cfg(mobile)]
11mod mobile;
12
13mod commands;
14mod decode;
15mod error;
16mod models;
17mod wrapper;
18
19pub use error::{Error, Result};
20pub use wrapper::DbInstances;
21
22pub use desktop::Config;
24pub fn init<R: Runtime>() -> TauriPlugin<R> {
26 init_with_config(Config::default())
27}
28
29pub fn init_with_config<R: Runtime>(config: Config) -> TauriPlugin<R> {
31 Builder::new("libsql")
32 .invoke_handler(tauri::generate_handler![
33 commands::load,
34 commands::execute,
35 commands::batch,
36 commands::select,
37 commands::sync,
38 commands::close,
39 commands::ping,
40 commands::get_config
41 ])
42 .setup(move |app, _api| {
43 #[cfg(mobile)]
44 let libsql = mobile::init(app, _api, config.clone())?;
45 #[cfg(desktop)]
46 let libsql = desktop::init(app, _api, config)?;
47
48 app.manage(libsql);
49 app.manage(DbInstances::default());
50
51 Ok(())
52 })
53 .build()
54}