From 44b5da8ade9add618411af339a212ec3d2cbf378 Mon Sep 17 00:00:00 2001 From: adanoff Date: Mon, 12 Jun 2017 17:16:17 -0700 Subject: [PATCH] Add `graphql.experimental` parsing for react-relay (#2116) --- src/multiparser.js | 10 +++++++--- .../__snapshots__/jsfmt.spec.js.snap | 18 ++++++++++++++++++ tests/multiparser_js_graphql/react-relay.js | 8 ++++++++ 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/multiparser.js b/src/multiparser.js index 7567889b..3a8339db 100644 --- a/src/multiparser.js +++ b/src/multiparser.js @@ -94,6 +94,7 @@ function fromBabylonFlowOrTypeScript(path) { /* * react-relay and graphql-tag * graphql`...` + * graphql.experimental`...` * gql`...` */ if ( @@ -103,9 +104,12 @@ function fromBabylonFlowOrTypeScript(path) { // ((parentParent.tag.type === "MemberExpression" && // parentParent.tag.object.name === "Relay" && // parentParent.tag.property.name === "QL") || - (parentParent.tag.type === "Identifier" && - (parentParent.tag.name === "gql" || - parentParent.tag.name === "graphql")) + ((parentParent.tag.type === "MemberExpression" && + parentParent.tag.object.name === "graphql" && + parentParent.tag.property.name === "experimental") || + (parentParent.tag.type === "Identifier" && + (parentParent.tag.name === "gql" || + parentParent.tag.name === "graphql"))) ) { return { options: { parser: "graphql" }, diff --git a/tests/multiparser_js_graphql/__snapshots__/jsfmt.spec.js.snap b/tests/multiparser_js_graphql/__snapshots__/jsfmt.spec.js.snap index 5a3a1d50..3719f9e4 100644 --- a/tests/multiparser_js_graphql/__snapshots__/jsfmt.spec.js.snap +++ b/tests/multiparser_js_graphql/__snapshots__/jsfmt.spec.js.snap @@ -36,6 +36,14 @@ graphql\` ) { markReadNotification(data: $input ) { notification {seenState} } } \`; + +graphql.experimental\` + mutation MarkReadNotificationMutation( + $input + : MarkReadNotificationData! + ) +{ markReadNotification(data: $input ) { notification {seenState} } } +\`; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ const { graphql } = require("react-relay"); @@ -49,4 +57,14 @@ graphql\` } \`; +graphql.experimental\` + mutation MarkReadNotificationMutation($input: MarkReadNotificationData!) { + markReadNotification(data: $input) { + notification { + seenState + } + } + } +\`; + `; diff --git a/tests/multiparser_js_graphql/react-relay.js b/tests/multiparser_js_graphql/react-relay.js index 3e16f0cc..6cc85ccf 100644 --- a/tests/multiparser_js_graphql/react-relay.js +++ b/tests/multiparser_js_graphql/react-relay.js @@ -7,3 +7,11 @@ graphql` ) { markReadNotification(data: $input ) { notification {seenState} } } `; + +graphql.experimental` + mutation MarkReadNotificationMutation( + $input + : MarkReadNotificationData! + ) +{ markReadNotification(data: $input ) { notification {seenState} } } +`;