Skip to content
GraphiQL & the GraphQL LSP Reference Ecosystem for building browser & IDE tools.
TypeScript JavaScript CSS Other
Branch: master
Clone or download

Latest commit

yoshiakis and acao fix: make list type and non-nullable type available (#902)
Co-authored-by: Rikki <rikki.schulte@gmail.com>
Co-authored-by: Yoshiakis <yoshisukeda@yahoo.com>
Latest commit cea837f May 31, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows ci: remove branch cleanup action (#1471) Apr 9, 2020
examples chore(release): publish May 28, 2020
packages fix: make list type and non-nullable type available (#902) May 31, 2020
resources improvement: always target es5 except for node May 28, 2020
working-group Add Harshith to May WG (#1529) May 14, 2020
.browserslistrc chore: esm for all packages Nov 30, 2019
.codecov.yml chore(dev-deps): upgrade babel, jest, eslint (#1470) Apr 9, 2020
.editorconfig Removed newline character from end of file Jan 28, 2020
.eslintignore chore: eslintignore updates (#1539) May 19, 2020
.eslintrc.js chore: fixed minor platform specific test failures and lint err… (#1480) Apr 10, 2020
.flowconfig feat: upgrade to graphql@15.0.0 for #1191 (#1204) Apr 5, 2020
.gitattributes Update .gitattributes Jan 28, 2020
.gitignore feat: monaco-graphql docs, api, improvements (#1521) May 16, 2020
.mailmap merge in graphql-language-service Jun 5, 2019
.npmignore fix: ignore tsbuild cache to reduce npm size May 28, 2020
.nvmrc ci: fix netlify build issues with babel (#1473) Apr 9, 2020
.prettierrc chore(dev-deps): upgrade babel, jest, eslint (#1470) Apr 9, 2020
CHANGELOG.md chore: apply prettier to more files (#1213) Jan 12, 2020
CONTRIBUTING.md Typo Fix (#1429) Mar 15, 2020
DEVELOPMENT.md ci: force build (#1476) Apr 10, 2020
LICENSE Change copyright to GraphQL Contributors, License to MIT Jun 18, 2019
README.md docs: remove copy/paste artifact (#1556) May 27, 2020
RELEASING.md chore: add jest-eslint-plugin, cleanup tests, docs and api site for L… Dec 31, 2019
babel.config.js fix: graphiql@1.0.0-alpha.7 has broken reference to vscode types (#1479) Apr 10, 2020
commitlint.config.js chore: apply prettier to more files (#1213) Jan 12, 2020
cypress.json chore: don't ignore scripts in CI Oct 26, 2019
jest.config.js feat: Monaco Mode - Phase 2 - Mode & Worker (#1459) Apr 15, 2020
lerna.json chore: improve documentation & examples (#1061) Dec 15, 2019
netlify.toml feat: monaco-graphql docs, api, improvements (#1521) May 16, 2020
package.json improvement: repurpose graphql-language-service for LSP DX (#1535) May 19, 2020
tsconfig.json chore: esm for all packages Nov 30, 2019
typedoc.json feat: monaco-graphql docs, api, improvements (#1521) May 16, 2020
yarn.lock improvement: repurpose graphql-language-service for LSP DX (#1535) May 19, 2020

README.md

GraphQL IDE Monorepo

Looking for the GraphiQL Docs?: This is the root of the monorepo! The full GraphiQL docs are located at packages/graphiql

Build Status Discord Code Coverage GitHub top language GitHub language count Snyk Vulnerabilities for GitHub Repo LGTM Grade LGTM Alerts CII Best Practices

Overview

GraphiQL is the reference implementation of this monorepo, GraphQL IDE, an official project under the GraphQL Foundation. The code uses the permissive MIT license.

Whether you want a simple GraphiQL IDE instance for your server, or a more advanced web or desktop GraphQL IDE experience for your framework or plugin, or you want to build an IDE extension or plugin, you've come to the right place!

The purpose of this monorepo is to give the GraphQL Community:

  • a solid, to-specification official language service (see: API Docs)
  • a comprehensive LSP server and CLI service for use with IDEs
  • a codemirror mode
  • a monaco mode (in the works)
  • an example of how to use this ecosystem with GraphiQL.
  • examples of how to implement or extend GraphiQL.

GraphiQL

Breaking Changes & Improvements: several interfaces are being dropped for new ones are arriving for GraphiQL 1.0.0! Read more in this issue

NPM jsDelivr hits (npm) npm downloads Snyk Vulnerabilities for npm package npm bundle size (version) npm bundle size (version)

https://raw.githubusercontent.com/graphql/graphiql/master/packages/graphiql/resources/graphiql.jpg

/ˈɡrafək(ə)l/ A graphical interactive in-browser GraphQL IDE. Try the live demo. We also have a demo using our latest netlify build for the master branch.

The GraphiQL IDE, implemented in React, currently using GraphQL mode for CodeMirror & GraphQL Language Service.

Learn more about GraphiQL in packages/graphiql/README.md

How To Setup/Implement GraphiQL

Edit graphiql-example

(This example shows that GraphiQL works with create-react-app without requiring additional configuration)

The full GraphiQL Readme explains some of the ways to implement GraphiQL, and we also have the examples directory as well!

CodeMirror GraphQL

NPM jsDelivr hits (npm) npm downloads Snyk Vulnerabilities for npm package

https://raw.githubusercontent.com/graphql/graphiql/master/packages/codemirror-graphql/resources/example.gifg

Provides CodeMirror with a parser mode for GraphQL along with a live linter and typeahead hinter powered by your GraphQL Schema

GraphQL Language Service

NPM npm downloads Snyk Vulnerabilities for npm package

Provides a command-line interface for running GraphQL Language Service Server for various IDEs.

GraphQL Language Service Server

NPM npm downloads Snyk Vulnerabilities for npm package

An almost fully LSP compliant server process backing the GraphQL Language Service.

GraphQL Language Service Interface

NPM jsDelivr hits (npm) npm downloads Snyk Vulnerabilities for npm package

Runtime agnostic Language Service used by GraphQL mode for CodeMirror and GraphQL Language Service Server

GraphQL Language Service Parser

NPM npm downloads Snyk Vulnerabilities for npm package

An online immutable parser for GraphQL, designed to be used as part of syntax-highlighting and code intelligence tools such as for the GraphQL Language Service and codemirror-graphql.

GraphQL Language Service Types

NPM npm downloads

Flow and Typescript type definitions for the GraphQL Language Service.

GraphQL Language Service Utilities

NPM npm downloads Snyk Vulnerabilities for npm package

Utilities to support the GraphQL Language Service.

Development

To get setup for local development of this monorepo, refer to DEVELOPMENT.md

Contributing

This is an open source project, and we welcome contributions. Please see CONTRIBUTING.md for details on how to contribute.

Initiatives

Lots of activity lately! These things are in progress currently:

  • making web and IDE services 100% LSP specification complete
  • a monaco editor mode
  • extensions and themes to make GraphiQL a multipurpose tool for building GraphQL IDEs

Fielding Proposals!

The door is open for proposals for the new GraphiQL Plugin API, and other ideas on how to make the rest of the IDE ecosystem more performant, scaleable, interoperable and extensible. Feel free to open a PR to create a document in the /proposals/ directory. Eventually we hope to move these to a repo that serves this purpose.

Community

  • Discord Discord - Most discussion outside of github happens on our Discord Server
  • Twitter - @GraphiQL and #GraphiQL
  • GitHub - Create feature requests, discussions issues and bugs above
  • Working Group - Yes, you're invited! Monthly planning/decision making meetings, and working sessions every two weeks on zoom! Learn more.
You can’t perform that action at this time.