This repository contains unofficial patterns, sample code, or tools to help developers build more effectively with Fauna. All Fauna Labs repositories are provided “as-is” and without support. By using this repository or its contents, you agree that this repository may never be officially supported and moved to the Fauna organization.
FQL parser
This is a Rust crate and NPM package that parses raw FQL queries into the wire protocol format.
Usage
Rust
To use the parser, add the following to your Cargo.toml
:
[dependencies]
fql-parser = "0.2.0"
Then, in your code, import the crate:
use crate::fql_parser;
fn main() {
/* ... */
}
The se
module contains the function to serialize FQL strings to JSON
let fql = "Add(2, 2)";
let json = fql_parser::se::serialize_fql_query(fql);
println!("{}", json);
{"add":[2,2]}
The des
module contains functions to deserialize JSON into special Fauna types or FQL strings
let json = r#"{
"@ref": {
"id":"101",
"collection": {
"@ref":{
"id": "things",
"collection": {
"@ref": { "id": "collections"}
}
}
}
}
}"#;
let fql = fql_parser::des::to_fql_string(json);
println!("{}", fql);
Ref(Collection("things"),"101")
JavaScript/TypeScript
TODO
Building and publishing the crate
Rust
cargo build
# Publish to https://crates.io/crates/fql-parser
cargo publish
NPM
make build
npm publish