Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/madjam002/graphqlite
A Javascript Parser for Facebook's GraphQL. NO LONGER MAINTAINED - USE graphql-js
https://github.com/madjam002/graphqlite
Last synced: 26 days ago
JSON representation
A Javascript Parser for Facebook's GraphQL. NO LONGER MAINTAINED - USE graphql-js
- Host: GitHub
- URL: https://github.com/madjam002/graphqlite
- Owner: madjam002
- License: mit
- Created: 2015-03-14T18:28:18.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2015-05-18T09:24:48.000Z (over 9 years ago)
- Last Synced: 2024-11-11T20:54:18.031Z (about 1 month ago)
- Language: JavaScript
- Homepage:
- Size: 197 KB
- Stars: 27
- Watchers: 4
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
GraphQLite [![NPM](https://img.shields.io/npm/v/graphqlite.svg?style=flat)](https://npmjs.org/package/graphqlite) ![Downloads](https://img.shields.io/npm/dm/graphqlite.svg?style=flat)
=======GraphQLite is a Javascript Parser for Facebook's GraphQL.
(see http://facebook.github.io/react/blog/2015/05/01/graphql-introduction.html)
## Installation
```sh
$ npm install graphqlite
```## Usage
GraphQLite exposes a simple API for parsing GraphQL (example uses ES6 multi-line strings).
```javascript
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:
```javascript
[{
"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:
```javascript
var graphql = require('graphqlite')var EventQuery = graphql`
Event {
name,
location
}
`var UserQuery = graphql`
User {
name,
profilePic
}
`var FinalQuery = graphql`
Viewer {
endpoint,
feed(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](https://raw.githubusercontent.com/madjam002/graphqlite/master/LICENSE).