fql-parser

Crates.iofql-parser
lib.rsfql-parser
version0.2.8
sourcesrc
created_at2022-02-14 15:35:29.156183
updated_at2022-07-19 03:14:03.604948
descriptionA parser for the Fauna Query Language (FQL).
homepagehttps://docs.fauna.com/fauna/current/api/fql/
repositoryhttps://github.com/fauna-labs/fql-parser
max_upload_size
id532272
size38,575
Paul Paterson (ptpaterson)

documentation

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
Commit count: 0

cargo fmt