graphql / graphql-playground

🎮 GraphQL IDE for better development workflows (GraphQL Subscriptions, interactive docs & collaboration)
MIT License
8.77k stars 734 forks source link

Plugin Architecture #235

Open schickling opened 6 years ago

schickling commented 6 years ago

GraphQL Playground is turning more and more into a GraphQL development platform (similar to VSCode). To better handle the increasing demand for customization and new features, I suggest introducing a plugin system to GraphQL Playground.

Goals

Inspiration: https://code.visualstudio.com/docs/editor/extension-gallery

Plugins

Existing functionality that should be rewritten as plugins or ideas for new plugins

Open Questions

n1ru4l commented 6 years ago

Maybe apollo-link could be a very helpful part of the plugin architecture 🤔. Each plugin could provide its link and graphql-playground could compose those.

E.g. The "tracing-extractor-link" (https://github.com/n1ru4l/graphiql-apollo-tracing/blob/master/src/tracing-link.js) extracts the tracing information from the payload and notifies listeners with that data.

Related #195

huv1k commented 6 years ago

I would like to work on it, do we want have plugins similar to hyper? Or more to vscode?

jbhoosreddy commented 6 years ago

We're planning on using GraphQL for an internal debugging service. One of the ideas (@mheiber) is to have shareable codepens, and a list of most recent pens, and pin named pens in the UI. A plugin architecture would really help here.

@schickling Is there a plan for doing this work in the horizon? We're discussing whether we have to fork our own version or push things upstream if maintainers are open to PR. Edit: I see it's in 2.0 milestone so that's probably a good sign. Would be great to know a timeline. Thanks.