Comments (9)
It's not quite true that without a schema nothing works. You can at least still use the editor with syntax highlighting and you can still send queries (we just won't validate them first). For that reason I'd rather not red-box the whole screen, but certainly outputting a clear error in the right pane is a good idea.
Our current behavior of silently continuing or printing a JS error with stack trace is clearly lacking though.
From first-principles, GraphiQL's role is to be a valuable tool for exploring and testing queries against a GraphQL server. I believe that should include diagnosing a broken server. So GraphiQL should do it's best to report with clarity why a server's introspection result is considered broken (relevant code here: https://github.com/graphql/graphql-js/blob/master/src/utilities/buildClientSchema.js)
This has obviously not been a priority for Facebook because our server is never broken like this, but it's understandable that someone could encounter a broken server and having clearer messaging about how to fix it is high value.
from graphiql.
I'll get either a simple dialog or info button on the top bar to expose errors to begin the effort
from graphiql.
@asiandrummer @leebyron what about displaying a redbox error (like on React Native), since without a schema, nothing works:
from graphiql.
With this method, I feel like you could bubble up fatal errors from the lower components and display this as well.
from graphiql.
Even logging something to the console can be helpful, in my case it was an incompatible field definition between an interface and an implementation type.
from graphiql.
👍 this would be great. @skevy has a working version of this for the electron wrapped version of GraphiQL.
from graphiql.
Having an error in the right pane I think is a good idea initially, but if a user runs a query that pane will show new data (Unable to fetch or whatever).
I've been thinking it might be nice to signal a potential problem by decorating the "play"/run-query button, similar to how the prettify button hanges hue when there's syntax issues. Once the user hovers over execute query button, we can show a message underneath by using the tooltip. Obviously if a query returns results/200 we can remove any decoration.
I can try and tackle this over the next few days if this sounds like a decent approach @leebyron
from graphiql.
At present, when I receive an error from the server when working with subscriptions it would show up as:
[object Object]
The only way I could find the error was by locating the web sockets frames. Not very optimal.
Perhaps this is my server implementation not throwing errors correctly though...
Also, perhaps this is a different bug...
from graphiql.
@vjpr yeah that seems like a different issue. The error is handled from this code and it's basically a String casted error.stack.
On the other hand, I'm closing this issue due to inactivity. I like the decorating solution, so if someone wants to tackle that then I'm willing to collaborate to get it committed. @vjpr feel free to open an issue for another issue if you're still having problems please.
from graphiql.
Related Issues (20)
- [lsp-server] 🐞 Pending response rejected since connection got disposed HOT 4
- [lsp-server] 🐞 Adding whitespaces\newlines causes autocompletion to move up a level HOT 5
- Don't export react with cdn bundle
- [graphiql] <title>MDUxRUVCM0Y3QjQwNzgwMDZDNjczQTMxMEIyRkZEMEIwMDI4MjhGMUQ0NkI4RjI5RTREMjE4QzhBM0FDNDdBOA==
- [lsp-server] Support go to definition for implementation first graphql setups HOT 1
- vscode-graphql-syntax javascript - line between graphql( and ` character breaks syntax highlighting HOT 2
- [graphiql] Grafana Embedded GraphiQL Editor CodeMirror info tooltips links navigate away from page HOT 4
- [graphiql] Fragment variables not supported HOT 4
- [graphiql] Default Value not accepted in Variable
- [graphiql] bump markdown-it for SNYK-JS-MARKDOWNIT-6483324 HOT 1
- [graphiql] cm6-graphql | Cannot use import statement outside a module | import { getTokenAtPosition, getTypeInfo, getAutocompleteSuggestions, getDiagnostics } from 'graphql-language-service';
- [graphiql] Upgrade to @graphiql/react breaks unit tests
- [graphiql] Cannot edit query name from explorer plugin
- [lsp-server] <title> Sending request for data to server
- [graphiql] <title>pluginapi
- [lsp-server] 🐞 Constant syntax errors if a file is named `exports.graphqls` HOT 1
- [lsp-server] Support JS/TS files as schema files HOT 4
- [lsp-server] 🐞 JS/TS files should only be checked when included in `documents` config glob HOT 2
- [graphiql] Graphiql editor information is scoped to the origin
- [lsp-server] Add configuration to disable/enable for certain files. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from graphiql.