tauri-named-invoke

Crates.iotauri-named-invoke
lib.rstauri-named-invoke
version1.0.4
sourcesrc
created_at2024-04-10 13:07:26.552547
updated_at2024-04-12 03:50:12.161852
descriptionA 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
repositoryhttps://github.com/Ertanic/tauri-typed-invoke
max_upload_size
id1203547
size7,542
Эдуард (Ertanic)

documentation

README

About

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.

Example

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>;
}
Commit count: 10

cargo fmt