chore: update documentation

This commit is contained in:
Lucas Nogueira
2026-09-22 11:30:47 -03:00
parent d869c162a7
commit a87a3c7d44
104 changed files with 4875 additions and 222 deletions
+4
View File
@@ -4,8 +4,11 @@
use serde::{Serialize, Serializer};
/// Errors that can be returned from the CLI plugin's commands.
#[derive(Debug, thiserror::Error)]
pub enum Error {
/// Parsing the process arguments against the CLI definition in `tauri.conf.json` failed,
/// e.g. because a required argument is missing or an unknown flag was passed.
#[error("failed to parse arguments: {0}")]
ParseCli(#[from] clap::Error),
}
@@ -19,4 +22,5 @@ impl Serialize for Error {
}
}
/// Alias for a [`std::result::Result`] with the error type [`Error`].
pub type Result<T> = std::result::Result<T, Error>;
+10
View File
@@ -25,19 +25,27 @@ use config::{Arg, Config};
pub use error::{Error, Result};
pub use parser::{ArgData, Matches, SubcommandMatches};
/// Access to the CLI APIs, managed by the app once the plugin is initialized.
pub struct Cli<R: Runtime>(PluginApi<R, Config>);
impl<R: Runtime> Cli<R> {
/// Parses the arguments the current process was started with against the CLI definition
/// configured under `plugins.cli` in `tauri.conf.json` and returns the resolved
/// [`parser::Matches`]. Errors if the arguments do not satisfy the CLI definition.
pub fn matches(&self) -> Result<parser::Matches> {
parser::get_matches(self.0.config(), self.0.app().package_info(), None)
}
/// Same as [`Self::matches`], but parses the given `args` instead of the current process'
/// arguments. Errors if `args` does not satisfy the CLI definition.
pub fn matches_from(&self, args: Vec<String>) -> Result<parser::Matches> {
parser::get_matches(self.0.config(), self.0.app().package_info(), Some(args))
}
}
/// Extension trait to access the CLI APIs.
pub trait CliExt<R: Runtime> {
/// Returns the [`Cli`] instance managed by the app.
fn cli(&self) -> &Cli<R>;
}
@@ -52,6 +60,8 @@ fn cli_matches<R: Runtime>(_app: AppHandle<R>, cli: State<'_, Cli<R>>) -> Result
cli.matches()
}
/// Initializes the plugin, reading the CLI definition from the `plugins.cli` object in
/// `tauri.conf.json`.
pub fn init<R: Runtime>() -> TauriPlugin<R, Config> {
Builder::new("cli")
.invoke_handler(tauri::generate_handler![cli_matches])