use wasm_bindgen::prelude::*;
use wasm_bindgen::JsCast;
use wasm_bindgen_futures::{JsFuture};
use web_sys::{Request, RequestInit, RequestMode, Response};
pub async fn fetch_text(url: &str) -> Result<JsValue, JsValue> {
let mut opts = RequestInit::new();
opts.method("GET");
opts.mode(RequestMode::Cors);
let request = Request::new_with_str_and_init( url, &opts, ).unwrap();
request
.headers()
.set("Accept", "*")
.unwrap();
let window = web_sys::window().unwrap();
let request_promise = window.fetch_with_request(&request);
let resp_value = JsFuture::from(request_promise).await?;
let resp: Response = resp_value.dyn_into().unwrap();
JsFuture::from(resp.text()?).await
}
pub async fn fetch_json(url: &str) -> Result<JsValue, JsValue> {
let mut opts = RequestInit::new();
opts.method("GET");
opts.mode(RequestMode::Cors);
let request = Request::new_with_str_and_init(url, &opts)?;
request
.headers()
.set("Accept", "application/vnd.github.v3+json")?;
let window = web_sys::window().unwrap();
let resp_value = JsFuture::from(window.fetch_with_request(&request)).await?;
let resp: Response = resp_value.dyn_into().unwrap();
JsFuture::from(resp.json()?).await
}