@fauna-labs/fql-parser
v0.2.8
Published
A parser for the Fauna Query Language (FQL).
Downloads
20
Readme
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