1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Copyright Fauna, Inc.
// SPDX-License-Identifier: MIT-0

mod fql;
use crate::fql::parser::parse_expr;
use crate::fql::serializer::serialize_expr;

use wasm_bindgen::prelude::*;

#[macro_use]
extern crate pest_derive;

#[wasm_bindgen]
pub fn serialize_fql_query(query: &str) -> Result<String, JsError> {
    let ast_result = parse_expr(query);

    match ast_result {
      Ok(ast) => Ok(serialize_expr(&ast)),
      Err(err) => Err(JsError::new(&format!("{}", err)))
    }
}