Socket
Socket
Sign inDemoInstall

graphqlite

Package Overview
Dependencies
1
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    graphqlite

An experimental implementation of Facebook's GraphQL


Version published
Maintainers
1
Install size
84.5 kB
Created

Readme

Source

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.

Keywords

FAQs

Last updated on 18 May 2015

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc