rmosolgo / graphiql-rails

Mount the GraphiQL query editor in a Rails app
MIT License
447 stars 137 forks source link

onEditQuery is undefined #70

Closed raysuelzer closed 3 years ago

raysuelzer commented 5 years ago

There is an error in the javascript when config.query_params is set to true that causes the interface to not load.

This line references onEditQuery which is not defined because the definition occurs within a different function scope.

https://github.com/rmosolgo/graphiql-rails/blob/a3e2b7e758030da7d88209b2a45dd327b309e8fd/app/assets/javascripts/graphiql/rails/graphiql_show.js#L82

image

duffyjp commented 4 years ago

I got that when I did a deploy to production. Quite the surprize.

Tasks: TOP => assets:precompile
(See full trace by running task with --trace)

Caused by:
SSHKit::Command::Failed: rake exit status: 1
rake aborted!
Uglifier::Error: In strict mode code, functions can only be declared at top level or immediately within another function.
--
 49819           JSON.stringify(JSON.parse(parameters.variables), null, 2);
 49820       } catch (e) {
 49821         // Do nothing, we want to display the invalid JSON as a string, rather
 49822         // than present an error.
 49823       }
 49824     }
 49825     // When the query and variables string is edited, update the URL bar so
 49826     // that it can be easily shared
    =>     function onEditQuery(newQuery) {
 49828       parameters.query = newQuery;
 49829       updateURL();
 49830     }
 49831     function onEditVariables(newVariables) {
 49832       parameters.variables = newVariables;
 49833       updateURL();
 49834     }
 49835     function updateURL() {
==

There is an old closed issue, #44 with a workaround I can confirm does NOT work. It will deploy, but have a JS error and break your whole site.

Screen Shot 2019-12-30 at 9 05 47 AM