graphqlite

1.3.0 • Public • Published

GraphQLite NPM Downloads

GraphQLite is a Javascript Parser for Facebook's GraphQL.

(see http://facebook.github.io/react/blog/2015/05/01/graphql-introduction.html)

Installation

$ npm install graphqlite

Usage

GraphQLite exposes a simple API for parsing GraphQL (example uses ES6 multi-line strings).

var graphql = require('graphqlite')
 
var output = graphql.parse(`
  node(id: 123) {
    id,
    name,
    birthdate {
      month,
      day,
    },
    friends(first: 1) {
      cursor,
      edges {
        node {
          name
        }
      }
    }
  }
 
  filter(name: "test string parameter") {
 
  }
`)
 
var backToString = graphql.stringify(output)
var pretty = graphql.stringify(output, true)

In the above example, output will be:

[{
  "type": "node",
  "params": {
    "id": 123
  },
  "fields": {
    "id": true,
    "name": true,
    "birthdate": {
      "fields": {
        "month": true,
        "day": true
      }
    },
    "friends": {
      "params": {
        "first": 1
      },
      "fields": {
        "cursor": true,
        "edges": {
          "fields": {
            "node": {
              "fields": {
                "name": true
              }
            }
          }
        }
      }
    }
  }
}, {
  "type": "filter",
  "params": {
    "name": "test string parameter"
  }
}]

stringify takes the output from parse and generates a GraphQL string. If no second parameter is provided, the output will be minified. If the second parameter is true, the output will be prettified.

ES6 Templates

GraphQLite can also be used with ES6 template strings, like follows:

var graphql = require('graphqlite')
 
var EventQuery = graphql`
  Event {
    name,
    location
  }
`
 
var UserQuery = graphql`
  User {
    name,
    profilePic
  }
`
 
var FinalQuery = graphql`
  Viewer {
    endpoint,
    feed(first: <first>) {
      id
    },
 
    ${EventQuery},
    ${UserQuery}
  }
`
 

This allows queries to be composed. FinalQuery in the above example will be a composed GraphQL string.

Roadmap

Facebook will be releasing a GraphQL module in the future, but I didn't know what to expect from this so I created this basic one as an experiment. Therefore this module could become obsolete in the future.

License

Licensed under the MIT License.

View the full license here.

Readme

Keywords

Package Sidebar

Install

npm i graphqlite

Weekly Downloads

5

Version

1.3.0

License

MIT

Last publish

Collaborators

  • madjam002