#[cfg(test)] mod test_fixtures; mod audio; mod cleanup; mod commands; mod error; mod ext; mod folder; mod frontmatter; mod json; mod path; mod scan; mod session; mod session_content; mod types; pub use types::*; pub use error::{Error, Result}; pub use ext::*; pub use path::is_uuid; pub use session::find_session_dir; const PLUGIN_NAME: &str = "fs-sync"; fn make_specta_builder() -> tauri_specta::Builder { tauri_specta::Builder::::new() .plugin_name(PLUGIN_NAME) .commands(tauri_specta::collect_commands![ commands::deserialize, commands::write_json_batch::, commands::write_document_batch::, commands::read_document_batch, commands::list_folders::, commands::move_session::, commands::create_folder::, commands::rename_folder::, commands::delete_folder::, commands::cleanup_orphan::, commands::audio_exist::, commands::audio_delete::, commands::audio_import::, commands::audio_path::, commands::session_dir::, commands::load_session_content::, commands::delete_session_folder::, commands::scan_and_read::, commands::chat_dir::, commands::entity_dir::, commands::attachment_save::, commands::attachment_list::, commands::attachment_remove::, ]) .error_handling(tauri_specta::ErrorHandlingMode::Result) } pub fn init() -> tauri::plugin::TauriPlugin { let specta_builder = make_specta_builder(); tauri::plugin::Builder::new(PLUGIN_NAME) .invoke_handler(specta_builder.invoke_handler()) .build() } #[cfg(test)] mod test { use super::*; #[test] fn export_types() { const OUTPUT_FILE: &str = "./js/bindings.gen.ts"; make_specta_builder::() .export( specta_typescript::Typescript::default() .formatter(specta_typescript::formatter::prettier) .bigint(specta_typescript::BigIntExportBehavior::Number), OUTPUT_FILE, ) .unwrap(); let content = std::fs::read_to_string(OUTPUT_FILE).unwrap(); std::fs::write(OUTPUT_FILE, format!("// @ts-nocheck\n{content}")).unwrap(); } }