To get started with Tauri Specta, use the Builder to register commands and events, then export the bindings to a file. You must also register the invoke_handler and call mount_events during the Tauri app setup for the bindings to function correctly.
TypeScript Export Example
use tauri_specta::{collect_commands, collect_events, Builder};
use specta_typescript::Typescript;
let mut builder = Builder::new()
.commands(collect_commands![])
.events(collect_events![]);
#[cfg(debug_assertions)]
builder
.export(Typescript::default(), "../src/bindings.ts")
.expect("Failed to export typescript bindings");
tauri::Builder::default()
.invoke_handler(builder.invoke_handler()) // Required for commands to work
.setup(move |app| {
builder.mount_events(app); // Required for events to work
Ok(())
})
.run(tauri::test::mock_context(tauri::test::noop_assets()))
.expect("error while running tauri application");
JSDoc Export Example
use tauri_specta::{collect_commands,collect_events,Builder};
use specta_typescript::JSDoc;
let mut builder = Builder::new()
.commands(collect_commands![])
.events(collect_events![]);
// exporting to JsDoc
#[cfg(debug_assertions)]
builder
.export(JSDoc::default(), "../src/bindings.js")
.expect("Failed to export jsdoc bindings");
tauri::Builder::default()
.invoke_handler(builder.invoke_handler()) // Required for commands to work
.setup(move |app| {
builder.mount_events(app); // Required for events to work
Ok(())
})
.run(tauri::test::mock_context(tauri::test::noop_assets()))
.expect("error while running tauri application");
use tauri_specta::{collect_commands, collect_events, Builder};
use specta_typescript::Typescript;
let mut builder = Builder::new()
.commands(collect_commands![])
.events(collect_events![]);
#[cfg(debug_assertions)]
builder
.export(Typescript::default(), "../src/bindings.ts")
.expect("Failed to export typescript bindings");
tauri::Builder::default()
.invoke_handler(builder.invoke_handler())
.setup(move |app| {
builder.mount_events(app);
Ok(())
})
.run(tauri::test::mock_context(tauri::test::noop_assets()))
.expect("error while running tauri application");