tauri_typegen/
lib.rs

1// Core library modules for the CLI tool
2pub mod analysis;
3pub mod build;
4pub mod commands;
5mod error;
6pub mod generators;
7pub mod interface;
8pub mod models;
9
10// Legacy compatibility (deprecated)
11#[deprecated(since = "0.2.0", note = "Use interface::config instead")]
12pub mod cli {
13    pub use crate::interface::config::*;
14    pub use crate::interface::generate_from_config;
15}
16
17pub use error::{Error, Result};
18pub use models::*;
19
20// Convenience re-exports for common use cases
21pub use interface::config::GenerateConfig;
22pub use interface::generate_from_config;
23pub use interface::output::{Logger, ProgressReporter};
24
25// Build system integration
26pub use build::BuildSystem;
27
28// Tauri plugin initialization
29use tauri::{
30    plugin::{Builder, TauriPlugin},
31    Runtime,
32};
33
34/// Initializes the typegen plugin for Tauri.
35///
36/// This allows the plugin's commands (ping, analyze_commands, generate_models)
37/// to be invoked from the frontend via the Tauri IPC.
38///
39/// # Example
40///
41/// ```rust,ignore
42/// tauri::Builder::default()
43///     .plugin(tauri_typegen::init())
44///     .run(tauri::generate_context!())
45///     .expect("error while running tauri application");
46/// ```
47pub fn init<R: Runtime>() -> TauriPlugin<R> {
48    Builder::new("typegen")
49        .invoke_handler(tauri::generate_handler![
50            commands::ping,
51            commands::analyze_commands,
52            commands::generate_models
53        ])
54        .build()
55}