graphqlx
A GraphQL client written in OCaml and JavaScript
Last updated a year ago by tahnik .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install graphqlx 
SYNC missed versions from official npm registry.

GraphQLx - A JavaScript Client Library for GraphQL


This JavaScript library uses a unique combination OCaml and JavaScript in order to achieve better performance and maintainance.

The tools used to build is library are:

  • ocamllex
  • menhir
  • ocamlbuild
  • bucklescript
  • webpack

How to use

The package is available as npm package. To install the package, run the following command:

npm install --save graphqlx

then import in your JavaScript file;

// es6
import { fetch, parse, validate } from 'graphqlx';

// commonJS
const { fetch, parse, validate } = require('graphqlx');

The library exposes 3 different functions:

  • fetch(endpoint: string, query: string, headers: object)
  • parse(query: string, pretty_print: boolean)
  • validate(query: string)

Here are some examples:

fetch

let query = `{
  me {
    name
  }
}`;

let endpoint = "https://api.example.com";

fetch(endpoint, query);

If need to add a header to the request:

let query = `{
  me {
    name
  }
}`;

let endpoint = "https://api.example.com";

let config = { Authorization: "bearer SOME_TOKEN" };

fetch(endpoint, query, config);

parse

This function parses the query.

let query = `{
  me {
    name
  }
}`;

parse(query);

You can add a optional boolean argument in parse() to print out the AST tree.

let query = `{
  me {
    name
  }
}`;

parse(query, true);

validate

This function parses and validates the query.

let query = `{
  me {
    name
  }
}`;

validate(query);

Contribute

This project can only be developed in linux. Here are the instructions for debian based distros:

Prerequisite

sudo apt install build-essentials

Dependencies

  • ocaml: sudo apt install ocaml
  • opam: sudo apt install opam
  • menhir: opam install menhir
  • nodejs: Follow the instruction from NodeJS website.

Once you have everything installed, make a pull request and I will have a look :)

LICENSE

MIT

Current Tags

  • 1.2.4                                ...           latest (a year ago)

11 Versions

  • 1.2.4                                ...           a year ago
  • 1.2.3                                ...           a year ago
  • 1.2.2                                ...           a year ago
  • 1.2.1                                ...           a year ago
  • 1.2.0                                ...           a year ago
  • 1.1.0                                ...           a year ago
  • 1.0.4                                ...           a year ago
  • 1.0.3                                ...           a year ago
  • 1.0.2                                ...           a year ago
  • 1.0.1                                ...           a year ago
  • 1.0.0                                ...           a year ago
Maintainers (1)
Downloads
Today 0
This Week 1
This Month 3
Last Day 1
Last Week 2
Last Month 11
Dependencies (1)
Dev Dependencies (11)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |