Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/annihil/ugql
🚀GraphQL.js over HTTP with uWebSockets.js
https://github.com/annihil/ugql
graphql graphql-js graphql-server node node-module nodejs npm-package uwebsockets
Last synced: 7 days ago
JSON representation
🚀GraphQL.js over HTTP with uWebSockets.js
- Host: GitHub
- URL: https://github.com/annihil/ugql
- Owner: Annihil
- Created: 2019-05-07T01:01:15.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-05-19T23:50:37.000Z (over 5 years ago)
- Last Synced: 2024-11-08T07:04:45.979Z (7 days ago)
- Topics: graphql, graphql-js, graphql-server, node, node-module, nodejs, npm-package, uwebsockets
- Language: JavaScript
- Homepage:
- Size: 8.79 KB
- Stars: 27
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# µGQL
[![npm](https://img.shields.io/npm/v/ugql.svg?style=flat-square)](https://www.npmjs.com/package/ugql)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)
[![package dependencies](https://img.shields.io/david/Annihil/ugql.svg?style=flat-square)](https://david-dm.org/Annihil/ugql)
![](https://img.shields.io/badge/benchmark-150x%20express--graphql-blueviolet.svg?style=flat-square)
Leveraging [GraphQL-js](https://github.com/graphql/graphql-js) with [µWebSockets.js](https://github.com/uNetworking/uWebSockets.js)## Installation
`npm i ugql` or `yarn add ugql`
## Usage
Create an `app.mjs` file with the following content:
```js
import uWS from 'uWebSockets.js';
import gql from 'graphql';
import ugql from 'ugql';const { buildSchema } = gql;
const app = uWS.App();
const ugraphql = ugql(app, async (res, req) => ({})/* middleware */, true /* cors */);const schema = buildSchema(`
type Query {
hello: String
}
`);const root = {
hello: () => 'Hello world'
};ugraphql(schema, root);
app.listen(9001, token => token ? console.log('µGQL running on port 9001') : console.log('µGQL failed to run: port already in use'));
```Then run
```sh
node --experimental-modules app.mjs
```Quick test, in a developer console
```js
fetch('http://localhost:9001/graphql', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ query: "{ hello }" })
})
.then(r => r.json())
.then(console.log);
```You should see
```js
Object { hello: "Hello world!" }
```# Supported request's types
- GET with query parameter
- POST with content-type
- application/json
- application/x-www-form-urlencoded
- application/graphql