Repository

GraphQL for the V language

Current state

Work in progress.

  • Language Parser (lexer, parser implementation)
  • Fixtures are covered 100% (GH, Simple)
  • Integration tests
  • Schema execute
  • Publish to VPM
  • Documentation

Usage

Parsing a .graphql definition file

You can parse any string/file using the .parse function. It returns a DocumentNode with al the definitions that were parsed, in a tree structure.

import luizfonseca.graphql
import os

fn main() {
    // For files
    file := os.read_file('path-to-file.graphql')

    // For string inputs
    // input := 'query {
    // myQuery(id: 1) {
    //  name
    //  age
    // }
    //}'

    // max_tokens: number of tokens to parse.
    // Increasing this means supporting longer queries/schema definitions
    doc := graphql.parse(file, graphql.ParserOptions{ max_tokens: 25_000 })

    dump(doc.token_count)
    dump(doc.definitions)
}

Links

Notes

  • This package is inspired by the work of the GraphQL.js package and as such is not yet perfected for the V lang.

Contributing

  • Feedbacks/PRs are welcome, but keep in mind this is still a work in progress .

Credits

About

GraphQL language parser package. For more information see the GraphQL spec: https://graphql.org/ The library is inspired by the GraphQL.js package.

0
7
1 year ago

Author

luizfonseca