- Notifications
You must be signed in to change notification settings - Fork1.8k
GraphiQL & the GraphQL LSP Reference Ecosystem for building browser & IDE tools.
License
graphql/graphiql
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Security Notice: All versions of
graphiql
<1.4.7
are vulnerable to anXSS attack in cases where the GraphQL server to which the GraphiQL web appconnects is not trusted. Learn morein the graphiqlsecurity
docs directory
Looking for theGraphiQL Docs?: This is theroot of the monorepo! The full GraphiQL docs are located at
packages/graphiql
GraphiQL is the reference implementation of this monorepo, GraphQL IDE, anofficial project under the GraphQL Foundation. The code uses the permissive MITlicense.
Whether you want a simple GraphiQL IDE instance for your server, or a moreadvanced web or desktop GraphQL IDE experience for your framework or plugin, oryou 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 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.
/ˈɡrafək(ə)l/ A graphical interactive in-browser GraphQL IDE.Try the live demo. We also havea demo using our latest netlify build forthemain
branch.
The GraphiQL IDE, implemented in React, currently usingGraphQL mode for CodeMirror &GraphQL Language Service.
Learn more aboutGraphiQL inpackages/graphiql/README.md
Provides monaco editor with a powerful, schema-driven graphql language mode.Uses thegraphql-language-service
directly.
See thewebpack example for a plainjavascript demo using GitHub API
Provides CodeMirror 5 with a parser mode for GraphQL along with a live linter andtypeahead hinter powered by your GraphQL Schema. Uses thegraphql-language-service
.
Provides CodeMirror 6 with a full-featured language mode for GraphQL. Uses thegraphql-language-service
.
Provides language services forgraphql-language-service-server
codemirror-graphql
andmonaco-graphql
. Previously published separately asthe now-retiredgraphql-language-service-interface
,graphql-language-service-parser
,graphql-language-service-utils
andgraphql-language-service-types
.
Provides language services for LSP-based IDE extensions using thegraphql-language-service
An example implementation ofgraphql-language-service-server
for Visual StudioCode. Availableon the marketplace.OVSX fix is pending.
A new syntax highlighting-only extension for vscode to be used by other vscodeextensions.
An extension for vscode-graphql that allows inline query execution.
Provides a CLI for the language service server.
Many of these packages need to work in multiple environments.
By default, all typescript packages targetes6
.
graphql-language-service-server
andgraphql-language-service-cli
are madefor the node runtime, so they targetes2017
codemirror-graphql
and thegraphiql
browser bundle use the.browserslistrc
, which targets modern browsers to keepbundle size small and keep the language services performant where async/await isused, and especially to avoid the requirement ofregenerator-runtime
orspecial babel configuration.
last 2 versionsFirefox ESRnot deadnot IE 11not ios 10maintained node versions
To be clear, we donot support Internet Explorer or older versions ofevergreen browsers.
To get setup for local development of this monorepo, refer toDEVELOPMENT.md
This is an open source project, and we welcome contributions. Please seeCONTRIBUTING.md for details on how to contribute.
This repository is managed by EasyCLA. Project participants must sign the freeGraphQL Specification Membership agreementbefore making a contribution. You only need to do this one time, and it can besigned byindividual contributors ortheiremployers.
To initiate the signature process please open a PR against this repo. TheEasyCLA bot will block the merge if we still need a membership agreement fromyou.
Please note that EasyCLA is configured to accept commits from certain GitHubbots. These are approved on an exception basis once we are confident that anycontent they create is either unlikely to consist of copyrightable content orelse was written by someone who has already signed the CLA (e.g., a projectmaintainer). The bots that have currently been approved as exceptions are:
- github-actions (exclusively for the
changesets
Action)
You can finddetailed information here.If you have issues, please emailoperations@graphql.org.
Maintainers of this repository regularly review PRs and issues and help advancethe GraphiQL roadmap
Without these amazing past maintainers, where would we be?!
- @leebyron - original author of all libraries
- @asiandrummer - original creator ofGraphiQL
- @wincent - early co-author and maintainer
- @lostplan - maintained the language serviceecosystem until about 2017
- @IvanGoncharov - maintainer andtransitional mentor to @acao and others
- @orta - has helped with so many parts of theproject over the years, and provided the original redesign!
- @divyenduz - the original creator of
vscode-graphql
, and contributor to much of the ecosystem. Thanks Divy!
Maintainers who are currently active (to varying degrees, please contact us viaour discord channels!):
- @imolorhe
- @yoshiakis
- @urigo
- @timsuchanek
- @thomasheyenbrock
- @n1ru4l
- @acao
- @stonexer
- @dimaMachina
- @dotansimha
- @saihaj
- @jonathanawesome
- @cshaver
Thank you graphql community for all the help & support! I did it all for you,and I couldn't have done it without you ❤️ - @acao
The door is open for proposals for the new GraphiQL Plugin API, and other ideason how to make the rest of the IDE ecosystem more performant, scalable,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 servesthis purpose.
- Discord
-Most discussion outside of GitHub happens on the GraphQLDiscord Server
- Twitter -@GraphiQL and#GraphiQL
- GitHub - Create feature requests, discussions issues and bugs above
- Working Group - Yes, you're invited! Monthly planning/decision makingmeetings, and working sessions every two weeks on zoom!Learn more.
About
GraphiQL & the GraphQL LSP Reference Ecosystem for building browser & IDE tools.
Topics
Resources
License
Security policy
Uh oh!
There was an error while loading.Please reload this page.