Crates.io | tauri-named-invoke |
lib.rs | tauri-named-invoke |
version | 1.0.4 |
source | src |
created_at | 2024-04-10 13:07:26.552547 |
updated_at | 2024-04-12 03:50:12.161852 |
description | A small utility that generates a typescript declaration file for the invoke function from functions found in code by Tauri commands. Thanks to this, there is no mistaking the name of the command. |
homepage | |
repository | https://github.com/Ertanic/tauri-typed-invoke |
max_upload_size | |
id | 1203547 |
size | 7,542 |
tauri-named-invoke
is a small utility that generates a typescript declaration file for the invoke
function from functions found in code by Tauri commands.
Thanks to this, there is no mistaking the name of the command.
main.rs:
fn main() {
tauri::Builder::default()
.invoke_handler(generate_handler![get_weather, get_config])
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
#[tauri::command]
fn get_weather() -> String {
"sunny".to_string()
}
// or
use tauri::command;
#[command]
fn get_config() -> String {
"config".to_string()
}
build.rs:
fn main() {
tauri_named_invoke::build("ui").unwrap();
tauri_build::build();
}
The file will be generated at the following path:
project root
├── ui
│ └── invoke.d.ts
├── src
│ └── main.rs
└── Cargo.toml
The generated file will contain:
import * as tauri from '@tauri-apps/api/tauri';
declare module '@tauri-apps/api' {
type Commands =
'get_weather'
| 'get_config';
function invoke<T>(cmd: Commands, args?: InvokeArgs): Promise<T>;
}