#tauri #tauri-app #declaration

tauri-named-invoke

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.

1 stable release

1.0.4 Apr 12, 2024
1.0.3 Apr 10, 2024

#9 in #declaration

MIT license

7KB

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>;
}

Dependencies

~2.2–3MB
~55K SLoC