1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
use wasm_bindgen::prelude::*;
use fql_deserialize as des;
use fql_serialize as se;
#[wasm_bindgen]
pub fn serialize_fql(query: &str) -> Result<String, JsError> {
se::serialize_fql(query).map_err(|err| JsError::new(&format!("{}", err)))
}
#[wasm_bindgen]
pub fn parse_fauna_response(response: &str) -> Result<String, JsError> {
des::parse_fauna_response(response).map_err(|err| JsError::new(&format!("{}", err)))
}
#[wasm_bindgen]
pub fn parse_expr(expr: &str) -> Result<String, JsError> {
des::parse_expr(expr).map_err(|err| JsError::new(&format!("{}", err)))
}
#[wasm_bindgen]
pub fn to_fql_string(json: &str) -> Result<String, JsError> {
des::to_fql_string(json).map_err(|err| JsError::new(&format!("{}", err)))
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn parse_fauna_response_works() {
let response = r#"{
"resource": {
"@query":{
"api_version": "4",
"lambda": [],
"expr": true
}
}
}"#;
let transformed = parse_fauna_response(response.into())
.map_err(|_| ())
.unwrap();
let expected = r#"{"resource":"Query(Lambda([],true))"}"#;
assert_eq!(transformed, expected)
}
#[test]
fn parse_expr_works() {
let expr = r#"{
"@query":{
"api_version": "4",
"lambda": [],
"expr": true
}
}"#;
let transformed = parse_expr(expr.into()).map_err(|_| ()).unwrap();
let expected = r#""Query(Lambda([],true))""#;
assert_eq!(transformed, expected)
}
#[test]
fn to_fql_string_works() {
let fql = r#"{
"query":{
"lambda": [],
"expr": true
}
}"#;
let transformed = to_fql_string(fql.into()).map_err(|_| ()).unwrap();
let expected = r#"Query(Lambda([],true))"#;
assert_eq!(transformed, expected)
}
}