// Copyright 2019-2023 Tauri Programme within The Commons Conservancy // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT //! [![](https://github.com/tauri-apps/plugins-workspace/raw/v2/plugins/http/banner.png)](https://github.com/tauri-apps/plugins-workspace/tree/v2/plugins/http) //! //! Access the HTTP client written in Rust. pub use reqwest; use tauri::{ plugin::{Builder, TauriPlugin}, AppHandle, Manager, Runtime, }; pub use error::{Error, Result}; mod commands; mod error; mod scope; struct Http { #[allow(dead_code)] app: AppHandle, } trait HttpExt { fn http(&self) -> &Http; } impl> HttpExt for T { fn http(&self) -> &Http { self.state::>().inner() } } pub fn init() -> TauriPlugin { Builder::::new("http") .js_init_script(include_str!("api-iife.js").to_string()) .invoke_handler(tauri::generate_handler![ commands::fetch, commands::fetch_cancel, commands::fetch_send, commands::fetch_read_body, ]) .setup(|app, _api| { app.manage(Http { app: app.clone() }); Ok(()) }) .build() }