fql-parser 0.2.8

A parser for the Fauna Query Language (FQL).
Documentation

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