vika-cli 1.4.0

Generate TypeScript types, Zod schemas, and Fetch-based API clients from OpenAPI/Swagger specifications
Documentation
use clap::Parser;

#[tokio::main]
async fn main() {
    tracing_subscriber::fmt::init();

    let cli = vika_cli::cli::Cli::parse();

    match cli.command {
        vika_cli::cli::Commands::Init => {
            if let Err(e) = vika_cli::commands::init::run().await {
                eprintln!("Error: {}", e);
                std::process::exit(1);
            }
        }
        vika_cli::cli::Commands::Add => {
            if let Err(e) = vika_cli::commands::add::run().await {
                eprintln!("Error: {}", e);
                std::process::exit(1);
            }
        }
        vika_cli::cli::Commands::Generate {
            spec,
            all_specs,
            spec_name,
            verbose,
            cache,
            backup,
            force,
            react_query,
            swr,
        } => {
            if let Err(e) = vika_cli::commands::generate::run(
                spec,
                all_specs,
                spec_name,
                verbose,
                cache,
                backup,
                force,
                react_query,
                swr,
            )
            .await
            {
                eprintln!("Error: {}", e);
                std::process::exit(1);
            }
        }
        vika_cli::cli::Commands::Update => {
            if let Err(e) = vika_cli::commands::update::run().await {
                eprintln!("Error: {}", e);
                std::process::exit(1);
            }
        }
        vika_cli::cli::Commands::Inspect {
            spec,
            all_specs,
            spec_name,
            module,
            schemas,
            graph,
            json,
        } => {
            if let Err(e) = vika_cli::commands::inspect::run(
                spec, all_specs, spec_name, module, schemas, graph, json,
            )
            .await
            {
                eprintln!("Error: {}", e);
                std::process::exit(1);
            }
        }
        vika_cli::cli::Commands::Templates { command } => match command {
            vika_cli::cli::TemplateCommands::List => {
                if let Err(e) = vika_cli::commands::templates::list() {
                    eprintln!("Error: {}", e);
                    std::process::exit(1);
                }
            }
            vika_cli::cli::TemplateCommands::Init => {
                if let Err(e) = vika_cli::commands::templates::init() {
                    eprintln!("Error: {}", e);
                    std::process::exit(1);
                }
            }
        },
    }
}