rora_javascript_adapter/
lib.rs1use std::collections::HashMap;
7use wasm_bindgen::prelude::*;
8
9
10#[wasm_bindgen]
11pub struct JsRequest {
33 #[wasm_bindgen(skip)]
34 pub uri: String,
35 #[wasm_bindgen(skip)]
36 pub method: String,
37 #[wasm_bindgen(skip)]
38 pub body: Option<String>,
39
40 #[wasm_bindgen(skip)]
41 pub headers: HashMap<String, String>,
42}
43
44#[wasm_bindgen]
45impl JsRequest {
46 #[wasm_bindgen(constructor)]
47 pub fn new(uri: String, method: String) -> JsRequest {
48 JsRequest {
49 uri: uri.into(),
50 method: method.into(),
51 body: None,
52 headers: Default::default(),
53 }
54 }
55
56 #[wasm_bindgen(getter)]
57 pub fn uri(&self) -> String {
58 self.uri.to_string()
59 }
60
61 #[wasm_bindgen(getter)]
62 pub fn method(&self) -> String {
63 self.method.to_string()
64 }
65
66 #[wasm_bindgen(getter)]
67 pub fn body(&self) -> String {
68 self.body.clone().unwrap().to_string()
69 }
70
71 #[wasm_bindgen(setter)]
72 pub fn set_body(&mut self, body: String) {
73 self.body = Some(body);
74 }
75
76 #[wasm_bindgen(getter)]
77 pub fn headers(&self) -> JsValue {
78 JsValue::from_serde(&self.headers).unwrap()
79 }
80
81 pub fn headers_append(&mut self, key: String, value: String) {
82 self.headers.insert(key, value);
83 }
84}
85
86#[wasm_bindgen]
102pub struct JsResponse {
103 #[wasm_bindgen(skip)]
104 pub status_code: String,
105 #[wasm_bindgen(skip)]
106 pub headers: HashMap<String, String>,
107 #[wasm_bindgen(skip)]
108 pub body: Option<String>,
109}
110
111
112#[wasm_bindgen]
113impl JsResponse {
114 #[wasm_bindgen(constructor)]
115 pub fn new() -> JsResponse {
116 JsResponse {
117 status_code: "".to_string(),
118 headers: Default::default(),
119 body: None,
120 }
121 }
122
123 #[wasm_bindgen(getter)]
124 pub fn status_code(&self) -> String {
125 self.status_code.to_string()
126 }
127
128 #[wasm_bindgen(getter)]
129 pub fn body(&self) -> Option<String> {
130 self.body.clone()
131 }
132
133 #[wasm_bindgen(getter)]
134 pub fn headers(&self) -> JsValue {
135 JsValue::from_serde(&self.headers).unwrap()
136 }
137}