mhallin / graphql_ppx

GraphQL PPX rewriter for Bucklescript/ReasonML
BSD 3-Clause "New" or "Revised" License
320 stars 42 forks source link

Get the query's name (string) for usage in Apollo's `refetchQueries` #83

Open elnygren opened 5 years ago

elnygren commented 5 years ago

Could graphql_ppx generate a let binding that contains the GraphQL query's name?

example input

module FooBarGQL = [%graphql
  {|
  query fooBarDingDong {
    foo { bar }
  }
|}
];

output:

module FooBarGQL = {
  /* all the usual fields  generated by graphql_ppx */
  let ppx_printed_query = "...";
  let query = ppx_printed_query;
  let parse = value...;
  // ...etc...

  /* new field */
  let queryName = "fooBarDingDong"
}

This would be nice as now we have to do refetchQueries=[| "fooBarDingDong" |] https://github.com/apollographql/reason-apollo#mutation

baransu commented 5 years ago

reason-apollo-hooks uses the approach with passing both query and variables as it's supported by Apollo. Probably a good idea to submit PR to reason-apollo to support such a way of passing refetchQueries