diff --git a/packages/babel-plugin-relay/__tests__/__snapshots__/BabelPluginRelay-compat-haste-test.js.snap b/packages/babel-plugin-relay/__tests__/__snapshots__/BabelPluginRelay-compat-haste-test.js.snap index 6c19d9d9e4835..d4cf6132c1a0c 100644 --- a/packages/babel-plugin-relay/__tests__/__snapshots__/BabelPluginRelay-compat-haste-test.js.snap +++ b/packages/babel-plugin-relay/__tests__/__snapshots__/BabelPluginRelay-compat-haste-test.js.snap @@ -577,7 +577,7 @@ module.exports = RelayCompatContainer.createContainer(CompatProfile, { ~~~~~~~~~~ OUTPUT ~~~~~~~~~~ ERROR: -Error: BabelPluginRelay: Expected exactly one fragment in the graphql tag referenced by the property user. +Error: BabelPluginRelay: Expected exactly one definition per graphql tag. `; exports[`matches expected output: error_unexpected-fragment.txt 1`] = ` @@ -612,7 +612,7 @@ const CompatCommentCreateMutation = graphql\` ~~~~~~~~~~ OUTPUT ~~~~~~~~~~ ERROR: -Error: BabelPluginRelay: Expected exactly one operation (query, mutation, or subscription) per graphql tag. +Error: BabelPluginRelay: Expected exactly one definition per graphql tag. `; exports[`matches expected output: error_unexpected-operation.txt 1`] = ` @@ -642,7 +642,7 @@ module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql\` ~~~~~~~~~~ OUTPUT ~~~~~~~~~~ ERROR: -Error: BabelPluginRelay: Expected only fragments within this graphql tag. +Error: BabelPluginRelay: Expected exactly one definition per graphql tag. `; exports[`matches expected output: export-refetch-container.txt 1`] = ` @@ -1526,115 +1526,6 @@ module.exports = RelayCompatContainer.createContainer(CompatProfile, { }); `; -exports[`matches expected output: no-object-many-fragments.txt 1`] = ` -~~~~~~~~~~ INPUT ~~~~~~~~~~ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ - -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql\` - fragment CompatProfile_user on User { - name - } - - fragment CompatProfile_viewer on User { - name - } -\`); - -~~~~~~~~~~ OUTPUT ~~~~~~~~~~ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); - -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, { - user: { - modern: function () { - return require("CompatProfile_user.graphql"); - }, - classic: function (RelayQL_GENERATED) { - return { - kind: "FragmentDefinition", - argumentDefinitions: [], - node: function () { - return { - children: [{ - fieldName: "name", - kind: "Field", - metadata: {}, - type: "String" - }, { - fieldName: "id", - kind: "Field", - metadata: { - isGenerated: true, - isRequisite: true - }, - type: "ID" - }], - id: RelayQL_GENERATED.__id(), - kind: "Fragment", - metadata: {}, - name: "CompatProfile_user", - type: "User" - }; - }() - }; - } - }, - viewer: { - modern: function () { - return require("CompatProfile_viewer.graphql"); - }, - classic: function (RelayQL_GENERATED) { - return { - kind: "FragmentDefinition", - argumentDefinitions: [], - node: function () { - return { - children: [{ - fieldName: "name", - kind: "Field", - metadata: {}, - type: "String" - }, { - fieldName: "id", - kind: "Field", - metadata: { - isGenerated: true, - isRequisite: true - }, - type: "ID" - }], - id: RelayQL_GENERATED.__id(), - kind: "Fragment", - metadata: {}, - name: "CompatProfile_viewer", - type: "User" - }; - }() - }; - } - } -}); -`; - exports[`matches expected output: query.txt 1`] = ` ~~~~~~~~~~ INPUT ~~~~~~~~~~ /** @@ -1826,115 +1717,6 @@ module.exports = RelayCompatContainer.createContainer(CompatProfile, { }); `; -exports[`matches expected output: simple-named-with-many-fragments.txt 1`] = ` -~~~~~~~~~~ INPUT ~~~~~~~~~~ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ - -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql\` - fragment CompatProfile on User { - name - } - - fragment CompatProfile_viewer on User { - name - } -\`); - -~~~~~~~~~~ OUTPUT ~~~~~~~~~~ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); - -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, { - data: { - modern: function () { - return require("CompatProfile.graphql"); - }, - classic: function (RelayQL_GENERATED) { - return { - kind: "FragmentDefinition", - argumentDefinitions: [], - node: function () { - return { - children: [{ - fieldName: "name", - kind: "Field", - metadata: {}, - type: "String" - }, { - fieldName: "id", - kind: "Field", - metadata: { - isGenerated: true, - isRequisite: true - }, - type: "ID" - }], - id: RelayQL_GENERATED.__id(), - kind: "Fragment", - metadata: {}, - name: "CompatProfile", - type: "User" - }; - }() - }; - } - }, - viewer: { - modern: function () { - return require("CompatProfile_viewer.graphql"); - }, - classic: function (RelayQL_GENERATED) { - return { - kind: "FragmentDefinition", - argumentDefinitions: [], - node: function () { - return { - children: [{ - fieldName: "name", - kind: "Field", - metadata: {}, - type: "String" - }, { - fieldName: "id", - kind: "Field", - metadata: { - isGenerated: true, - isRequisite: true - }, - type: "ID" - }], - id: RelayQL_GENERATED.__id(), - kind: "Fragment", - metadata: {}, - name: "CompatProfile_viewer", - type: "User" - }; - }() - }; - } - } -}); -`; - exports[`matches expected output: within-class-reference.txt 1`] = ` ~~~~~~~~~~ INPUT ~~~~~~~~~~ /** diff --git a/packages/babel-plugin-relay/__tests__/__snapshots__/BabelPluginRelay-compat-test.js.snap b/packages/babel-plugin-relay/__tests__/__snapshots__/BabelPluginRelay-compat-test.js.snap index 587010e183b55..c394f7d9ee101 100644 --- a/packages/babel-plugin-relay/__tests__/__snapshots__/BabelPluginRelay-compat-test.js.snap +++ b/packages/babel-plugin-relay/__tests__/__snapshots__/BabelPluginRelay-compat-test.js.snap @@ -632,7 +632,7 @@ module.exports = RelayCompatContainer.createContainer(CompatProfile, { ~~~~~~~~~~ OUTPUT ~~~~~~~~~~ ERROR: -Error: BabelPluginRelay: Expected exactly one fragment in the graphql tag referenced by the property user. +Error: BabelPluginRelay: Expected exactly one definition per graphql tag. `; exports[`matches expected output: error_unexpected-fragment.txt 1`] = ` @@ -667,7 +667,7 @@ const CompatCommentCreateMutation = graphql\` ~~~~~~~~~~ OUTPUT ~~~~~~~~~~ ERROR: -Error: BabelPluginRelay: Expected exactly one operation (query, mutation, or subscription) per graphql tag. +Error: BabelPluginRelay: Expected exactly one definition per graphql tag. `; exports[`matches expected output: error_unexpected-operation.txt 1`] = ` @@ -697,7 +697,7 @@ module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql\` ~~~~~~~~~~ OUTPUT ~~~~~~~~~~ ERROR: -Error: BabelPluginRelay: Expected only fragments within this graphql tag. +Error: BabelPluginRelay: Expected exactly one definition per graphql tag. `; exports[`matches expected output: export-refetch-container.txt 1`] = ` @@ -1581,115 +1581,6 @@ module.exports = RelayCompatContainer.createContainer(CompatProfile, { }); `; -exports[`matches expected output: no-object-many-fragments.txt 1`] = ` -~~~~~~~~~~ INPUT ~~~~~~~~~~ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ - -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql\` - fragment CompatProfile_user on User { - name - } - - fragment CompatProfile_viewer on User { - name - } -\`); - -~~~~~~~~~~ OUTPUT ~~~~~~~~~~ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); - -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, { - user: { - modern: function () { - return require("./__generated__/CompatProfile_user.graphql"); - }, - classic: function (RelayQL_GENERATED) { - return { - kind: "FragmentDefinition", - argumentDefinitions: [], - node: function () { - return { - children: [{ - fieldName: "name", - kind: "Field", - metadata: {}, - type: "String" - }, { - fieldName: "id", - kind: "Field", - metadata: { - isGenerated: true, - isRequisite: true - }, - type: "ID" - }], - id: RelayQL_GENERATED.__id(), - kind: "Fragment", - metadata: {}, - name: "CompatProfile_user", - type: "User" - }; - }() - }; - } - }, - viewer: { - modern: function () { - return require("./__generated__/CompatProfile_viewer.graphql"); - }, - classic: function (RelayQL_GENERATED) { - return { - kind: "FragmentDefinition", - argumentDefinitions: [], - node: function () { - return { - children: [{ - fieldName: "name", - kind: "Field", - metadata: {}, - type: "String" - }, { - fieldName: "id", - kind: "Field", - metadata: { - isGenerated: true, - isRequisite: true - }, - type: "ID" - }], - id: RelayQL_GENERATED.__id(), - kind: "Fragment", - metadata: {}, - name: "CompatProfile_viewer", - type: "User" - }; - }() - }; - } - } -}); -`; - exports[`matches expected output: query.txt 1`] = ` ~~~~~~~~~~ INPUT ~~~~~~~~~~ /** @@ -1881,115 +1772,6 @@ module.exports = RelayCompatContainer.createContainer(CompatProfile, { }); `; -exports[`matches expected output: simple-named-with-many-fragments.txt 1`] = ` -~~~~~~~~~~ INPUT ~~~~~~~~~~ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ - -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql\` - fragment CompatProfile on User { - name - } - - fragment CompatProfile_viewer on User { - name - } -\`); - -~~~~~~~~~~ OUTPUT ~~~~~~~~~~ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); - -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, { - data: { - modern: function () { - return require("./__generated__/CompatProfile.graphql"); - }, - classic: function (RelayQL_GENERATED) { - return { - kind: "FragmentDefinition", - argumentDefinitions: [], - node: function () { - return { - children: [{ - fieldName: "name", - kind: "Field", - metadata: {}, - type: "String" - }, { - fieldName: "id", - kind: "Field", - metadata: { - isGenerated: true, - isRequisite: true - }, - type: "ID" - }], - id: RelayQL_GENERATED.__id(), - kind: "Fragment", - metadata: {}, - name: "CompatProfile", - type: "User" - }; - }() - }; - } - }, - viewer: { - modern: function () { - return require("./__generated__/CompatProfile_viewer.graphql"); - }, - classic: function (RelayQL_GENERATED) { - return { - kind: "FragmentDefinition", - argumentDefinitions: [], - node: function () { - return { - children: [{ - fieldName: "name", - kind: "Field", - metadata: {}, - type: "String" - }, { - fieldName: "id", - kind: "Field", - metadata: { - isGenerated: true, - isRequisite: true - }, - type: "ID" - }], - id: RelayQL_GENERATED.__id(), - kind: "Fragment", - metadata: {}, - name: "CompatProfile_viewer", - type: "User" - }; - }() - }; - } - } -}); -`; - exports[`matches expected output: unmaskDirectiveCaller.txt 1`] = ` ~~~~~~~~~~ INPUT ~~~~~~~~~~ /** @@ -2229,285 +2011,6 @@ module.exports = { }; `; -exports[`matches expected output: unmaskDirectiveSharedModule.txt 1`] = ` -~~~~~~~~~~ INPUT ~~~~~~~~~~ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ - -'use strict'; - -const graphql = require('graphql'); - -module.exports = { - viewer1: graphql\` - fragment CompatUtil_viewer1 on Viewer { - actor { - id - name - } - } - \`, - viewer2: graphql\` - fragment CompatUtil_viewer2 on Viewer { - actor { - id - } - } - \`, -}; - -~~~~~~~~~~ OUTPUT ~~~~~~~~~~ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ -'use strict'; - -const graphql = require('graphql'); - -module.exports = { - viewer1: { - modern: function () { - return require("./__generated__/CompatUtil_viewer1.graphql"); - }, - classic: function (RelayQL_GENERATED) { - return { - kind: "FragmentDefinition", - argumentDefinitions: [], - node: function () { - return { - children: [{ - children: [{ - fieldName: "id", - kind: "Field", - metadata: { - isRequisite: true - }, - type: "ID" - }, { - fieldName: "name", - kind: "Field", - metadata: {}, - type: "String" - }, { - fieldName: "__typename", - kind: "Field", - metadata: { - isGenerated: true, - isRequisite: true - }, - type: "String" - }], - fieldName: "actor", - kind: "Field", - metadata: { - canHaveSubselections: true, - inferredRootCallName: "node", - inferredPrimaryKey: "id", - isAbstract: true - }, - type: "Actor" - }], - id: RelayQL_GENERATED.__id(), - kind: "Fragment", - metadata: {}, - name: "CompatUtil_viewer1", - type: "Viewer" - }; - }() - }; - } - }, - viewer2: { - modern: function () { - return require("./__generated__/CompatUtil_viewer2.graphql"); - }, - classic: function (RelayQL_GENERATED) { - return { - kind: "FragmentDefinition", - argumentDefinitions: [], - node: function () { - return { - children: [{ - children: [{ - fieldName: "id", - kind: "Field", - metadata: { - isRequisite: true - }, - type: "ID" - }, { - fieldName: "__typename", - kind: "Field", - metadata: { - isGenerated: true, - isRequisite: true - }, - type: "String" - }], - fieldName: "actor", - kind: "Field", - metadata: { - canHaveSubselections: true, - inferredRootCallName: "node", - inferredPrimaryKey: "id", - isAbstract: true - }, - type: "Actor" - }], - id: RelayQL_GENERATED.__id(), - kind: "Fragment", - metadata: {}, - name: "CompatUtil_viewer2", - type: "Viewer" - }; - }() - }; - } - } -}; -`; - -exports[`matches expected output: unmaskDirectiveSharedModule-2.text 1`] = ` -~~~~~~~~~~ INPUT ~~~~~~~~~~ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ - -'use strict'; - -const graphql = require('graphql'); - -module.exports = graphql\` - fragment CompatUtil_viewer1 on Viewer { - actor { - id - name - } - } - - fragment CompatUtil_viewer2 on Viewer { - actor { - id - } - } -\`; - -~~~~~~~~~~ OUTPUT ~~~~~~~~~~ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ -'use strict'; - -const graphql = require('graphql'); - -module.exports = { - viewer1: { - modern: function () { - return require("./__generated__/CompatUtil_viewer1.graphql"); - }, - classic: function (RelayQL_GENERATED) { - return { - kind: "FragmentDefinition", - argumentDefinitions: [], - node: function () { - return { - children: [{ - children: [{ - fieldName: "id", - kind: "Field", - metadata: { - isRequisite: true - }, - type: "ID" - }, { - fieldName: "name", - kind: "Field", - metadata: {}, - type: "String" - }, { - fieldName: "__typename", - kind: "Field", - metadata: { - isGenerated: true, - isRequisite: true - }, - type: "String" - }], - fieldName: "actor", - kind: "Field", - metadata: { - canHaveSubselections: true, - inferredRootCallName: "node", - inferredPrimaryKey: "id", - isAbstract: true - }, - type: "Actor" - }], - id: RelayQL_GENERATED.__id(), - kind: "Fragment", - metadata: {}, - name: "CompatUtil_viewer1", - type: "Viewer" - }; - }() - }; - } - }, - viewer2: { - modern: function () { - return require("./__generated__/CompatUtil_viewer2.graphql"); - }, - classic: function (RelayQL_GENERATED) { - return { - kind: "FragmentDefinition", - argumentDefinitions: [], - node: function () { - return { - children: [{ - children: [{ - fieldName: "id", - kind: "Field", - metadata: { - isRequisite: true - }, - type: "ID" - }, { - fieldName: "__typename", - kind: "Field", - metadata: { - isGenerated: true, - isRequisite: true - }, - type: "String" - }], - fieldName: "actor", - kind: "Field", - metadata: { - canHaveSubselections: true, - inferredRootCallName: "node", - inferredPrimaryKey: "id", - isAbstract: true - }, - type: "Actor" - }], - id: RelayQL_GENERATED.__id(), - kind: "Fragment", - metadata: {}, - name: "CompatUtil_viewer2", - type: "Viewer" - }; - }() - }; - } - } -}; -`; - exports[`matches expected output: unmaskDirectiveWithArguments.txt 1`] = ` ~~~~~~~~~~ INPUT ~~~~~~~~~~ /** diff --git a/packages/babel-plugin-relay/__tests__/__snapshots__/BabelPluginRelay-modern-artifact-directory-test.js.snap b/packages/babel-plugin-relay/__tests__/__snapshots__/BabelPluginRelay-modern-artifact-directory-test.js.snap index ec3404f2c7367..fef6d4e23cab6 100644 --- a/packages/babel-plugin-relay/__tests__/__snapshots__/BabelPluginRelay-modern-artifact-directory-test.js.snap +++ b/packages/babel-plugin-relay/__tests__/__snapshots__/BabelPluginRelay-modern-artifact-directory-test.js.snap @@ -240,7 +240,7 @@ module.exports = RelayCompatContainer.createContainer(CompatProfile, { ~~~~~~~~~~ OUTPUT ~~~~~~~~~~ ERROR: -Error: BabelPluginRelay: Expected exactly one fragment in the graphql tag referenced by the property user. +Error: BabelPluginRelay: Expected exactly one definition per graphql tag. `; exports[`matches expected output: error_unexpected-fragment.txt 1`] = ` @@ -276,7 +276,7 @@ const CompatCommentCreateMutation = graphql\` ~~~~~~~~~~ OUTPUT ~~~~~~~~~~ ERROR: -Error: BabelPluginRelay: Expected exactly one operation (query, mutation, or subscription) per graphql tag. +Error: BabelPluginRelay: Expected exactly one definition per graphql tag. `; exports[`matches expected output: error_unexpected-operation.txt 1`] = ` @@ -307,7 +307,7 @@ module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql\` ~~~~~~~~~~ OUTPUT ~~~~~~~~~~ ERROR: -Error: BabelPluginRelay: Expected only fragments within this graphql tag. +Error: BabelPluginRelay: Expected exactly one definition per graphql tag. `; exports[`matches expected output: export-refetch-container.txt 1`] = ` @@ -697,55 +697,6 @@ module.exports = RelayCompatContainer.createContainer(CompatProfile, { }); `; -exports[`matches expected output: no-object-many-fragments.txt 1`] = ` -~~~~~~~~~~ INPUT ~~~~~~~~~~ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - * @providesModule CompatProfile - */ - -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql\` - fragment CompatProfile_user on User { - name - } - - fragment CompatProfile_viewer on User { - name - } -\`); - -~~~~~~~~~~ OUTPUT ~~~~~~~~~~ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - * @providesModule CompatProfile - */ -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); - -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, { - user: function () { - return require("../test/artifacts/CompatProfile_user.graphql"); - }, - viewer: function () { - return require("../test/artifacts/CompatProfile_viewer.graphql"); - } -}); -`; - exports[`matches expected output: query.txt 1`] = ` ~~~~~~~~~~ INPUT ~~~~~~~~~~ /** @@ -830,55 +781,6 @@ module.exports = RelayCompatContainer.createContainer(CompatProfile, { }); `; -exports[`matches expected output: simple-named-with-many-fragments.txt 1`] = ` -~~~~~~~~~~ INPUT ~~~~~~~~~~ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - * @providesModule CompatProfile - */ - -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql\` - fragment CompatProfile on User { - name - } - - fragment CompatProfile_viewer on User { - name - } -\`); - -~~~~~~~~~~ OUTPUT ~~~~~~~~~~ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - * @providesModule CompatProfile - */ -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); - -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, { - data: function () { - return require("../test/artifacts/CompatProfile.graphql"); - }, - viewer: function () { - return require("../test/artifacts/CompatProfile_viewer.graphql"); - } -}); -`; - exports[`matches expected output: within-class-reference.txt 1`] = ` ~~~~~~~~~~ INPUT ~~~~~~~~~~ /** diff --git a/packages/babel-plugin-relay/__tests__/__snapshots__/BabelPluginRelay-modern-haste-test.js.snap b/packages/babel-plugin-relay/__tests__/__snapshots__/BabelPluginRelay-modern-haste-test.js.snap index 5d6604d022a59..58b7531acce0a 100644 --- a/packages/babel-plugin-relay/__tests__/__snapshots__/BabelPluginRelay-modern-haste-test.js.snap +++ b/packages/babel-plugin-relay/__tests__/__snapshots__/BabelPluginRelay-modern-haste-test.js.snap @@ -232,7 +232,7 @@ module.exports = RelayCompatContainer.createContainer(CompatProfile, { ~~~~~~~~~~ OUTPUT ~~~~~~~~~~ ERROR: -Error: BabelPluginRelay: Expected exactly one fragment in the graphql tag referenced by the property user. +Error: BabelPluginRelay: Expected exactly one definition per graphql tag. `; exports[`matches expected output: error_unexpected-fragment.txt 1`] = ` @@ -267,7 +267,7 @@ const CompatCommentCreateMutation = graphql\` ~~~~~~~~~~ OUTPUT ~~~~~~~~~~ ERROR: -Error: BabelPluginRelay: Expected exactly one operation (query, mutation, or subscription) per graphql tag. +Error: BabelPluginRelay: Expected exactly one definition per graphql tag. `; exports[`matches expected output: error_unexpected-operation.txt 1`] = ` @@ -297,7 +297,7 @@ module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql\` ~~~~~~~~~~ OUTPUT ~~~~~~~~~~ ERROR: -Error: BabelPluginRelay: Expected only fragments within this graphql tag. +Error: BabelPluginRelay: Expected exactly one definition per graphql tag. `; exports[`matches expected output: export-refetch-container.txt 1`] = ` @@ -671,53 +671,6 @@ module.exports = RelayCompatContainer.createContainer(CompatProfile, { }); `; -exports[`matches expected output: no-object-many-fragments.txt 1`] = ` -~~~~~~~~~~ INPUT ~~~~~~~~~~ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ - -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql\` - fragment CompatProfile_user on User { - name - } - - fragment CompatProfile_viewer on User { - name - } -\`); - -~~~~~~~~~~ OUTPUT ~~~~~~~~~~ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); - -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, { - user: function () { - return require("CompatProfile_user.graphql"); - }, - viewer: function () { - return require("CompatProfile_viewer.graphql"); - } -}); -`; - exports[`matches expected output: query.txt 1`] = ` ~~~~~~~~~~ INPUT ~~~~~~~~~~ /** @@ -798,53 +751,6 @@ module.exports = RelayCompatContainer.createContainer(CompatProfile, { }); `; -exports[`matches expected output: simple-named-with-many-fragments.txt 1`] = ` -~~~~~~~~~~ INPUT ~~~~~~~~~~ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ - -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql\` - fragment CompatProfile on User { - name - } - - fragment CompatProfile_viewer on User { - name - } -\`); - -~~~~~~~~~~ OUTPUT ~~~~~~~~~~ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); - -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, { - data: function () { - return require("CompatProfile.graphql"); - }, - viewer: function () { - return require("CompatProfile_viewer.graphql"); - } -}); -`; - exports[`matches expected output: within-class-reference.txt 1`] = ` ~~~~~~~~~~ INPUT ~~~~~~~~~~ /** diff --git a/packages/babel-plugin-relay/__tests__/__snapshots__/BabelPluginRelay-modern-test.js.snap b/packages/babel-plugin-relay/__tests__/__snapshots__/BabelPluginRelay-modern-test.js.snap index c8bccd5b8947d..d675181a11f4e 100644 --- a/packages/babel-plugin-relay/__tests__/__snapshots__/BabelPluginRelay-modern-test.js.snap +++ b/packages/babel-plugin-relay/__tests__/__snapshots__/BabelPluginRelay-modern-test.js.snap @@ -232,7 +232,7 @@ module.exports = RelayCompatContainer.createContainer(CompatProfile, { ~~~~~~~~~~ OUTPUT ~~~~~~~~~~ ERROR: -Error: BabelPluginRelay: Expected exactly one fragment in the graphql tag referenced by the property user. +Error: BabelPluginRelay: Expected exactly one definition per graphql tag. `; exports[`matches expected output: error_unexpected-fragment.txt 1`] = ` @@ -267,7 +267,7 @@ const CompatCommentCreateMutation = graphql\` ~~~~~~~~~~ OUTPUT ~~~~~~~~~~ ERROR: -Error: BabelPluginRelay: Expected exactly one operation (query, mutation, or subscription) per graphql tag. +Error: BabelPluginRelay: Expected exactly one definition per graphql tag. `; exports[`matches expected output: error_unexpected-operation.txt 1`] = ` @@ -297,7 +297,7 @@ module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql\` ~~~~~~~~~~ OUTPUT ~~~~~~~~~~ ERROR: -Error: BabelPluginRelay: Expected only fragments within this graphql tag. +Error: BabelPluginRelay: Expected exactly one definition per graphql tag. `; exports[`matches expected output: export-refetch-container.txt 1`] = ` @@ -671,53 +671,6 @@ module.exports = RelayCompatContainer.createContainer(CompatProfile, { }); `; -exports[`matches expected output: no-object-many-fragments.txt 1`] = ` -~~~~~~~~~~ INPUT ~~~~~~~~~~ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ - -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql\` - fragment CompatProfile_user on User { - name - } - - fragment CompatProfile_viewer on User { - name - } -\`); - -~~~~~~~~~~ OUTPUT ~~~~~~~~~~ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); - -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, { - user: function () { - return require("./__generated__/CompatProfile_user.graphql"); - }, - viewer: function () { - return require("./__generated__/CompatProfile_viewer.graphql"); - } -}); -`; - exports[`matches expected output: query.txt 1`] = ` ~~~~~~~~~~ INPUT ~~~~~~~~~~ /** @@ -798,53 +751,6 @@ module.exports = RelayCompatContainer.createContainer(CompatProfile, { }); `; -exports[`matches expected output: simple-named-with-many-fragments.txt 1`] = ` -~~~~~~~~~~ INPUT ~~~~~~~~~~ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ - -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql\` - fragment CompatProfile on User { - name - } - - fragment CompatProfile_viewer on User { - name - } -\`); - -~~~~~~~~~~ OUTPUT ~~~~~~~~~~ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); - -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, { - data: function () { - return require("./__generated__/CompatProfile.graphql"); - }, - viewer: function () { - return require("./__generated__/CompatProfile_viewer.graphql"); - } -}); -`; - exports[`matches expected output: within-class-reference.txt 1`] = ` ~~~~~~~~~~ INPUT ~~~~~~~~~~ /** diff --git a/packages/babel-plugin-relay/__tests__/fixtures-compat-haste/no-object-many-fragments.txt b/packages/babel-plugin-relay/__tests__/fixtures-compat-haste/no-object-many-fragments.txt deleted file mode 100644 index 16219c8f457b2..0000000000000 --- a/packages/babel-plugin-relay/__tests__/fixtures-compat-haste/no-object-many-fragments.txt +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ - -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql` - fragment CompatProfile_user on User { - name - } - - fragment CompatProfile_viewer on User { - name - } -`); diff --git a/packages/babel-plugin-relay/__tests__/fixtures-compat-haste/simple-named-with-many-fragments.txt b/packages/babel-plugin-relay/__tests__/fixtures-compat-haste/simple-named-with-many-fragments.txt deleted file mode 100644 index 7d43688964ff3..0000000000000 --- a/packages/babel-plugin-relay/__tests__/fixtures-compat-haste/simple-named-with-many-fragments.txt +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ - -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql` - fragment CompatProfile on User { - name - } - - fragment CompatProfile_viewer on User { - name - } -`); diff --git a/packages/babel-plugin-relay/__tests__/fixtures-compat/no-object-many-fragments.txt b/packages/babel-plugin-relay/__tests__/fixtures-compat/no-object-many-fragments.txt deleted file mode 100644 index 16219c8f457b2..0000000000000 --- a/packages/babel-plugin-relay/__tests__/fixtures-compat/no-object-many-fragments.txt +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ - -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql` - fragment CompatProfile_user on User { - name - } - - fragment CompatProfile_viewer on User { - name - } -`); diff --git a/packages/babel-plugin-relay/__tests__/fixtures-compat/simple-named-with-many-fragments.txt b/packages/babel-plugin-relay/__tests__/fixtures-compat/simple-named-with-many-fragments.txt deleted file mode 100644 index 7d43688964ff3..0000000000000 --- a/packages/babel-plugin-relay/__tests__/fixtures-compat/simple-named-with-many-fragments.txt +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ - -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql` - fragment CompatProfile on User { - name - } - - fragment CompatProfile_viewer on User { - name - } -`); diff --git a/packages/babel-plugin-relay/__tests__/fixtures-compat/unmaskDirectiveSharedModule-2.text b/packages/babel-plugin-relay/__tests__/fixtures-compat/unmaskDirectiveSharedModule-2.text deleted file mode 100644 index ec89a779b1de4..0000000000000 --- a/packages/babel-plugin-relay/__tests__/fixtures-compat/unmaskDirectiveSharedModule-2.text +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ - -'use strict'; - -const graphql = require('graphql'); - -module.exports = graphql` - fragment CompatUtil_viewer1 on Viewer { - actor { - id - name - } - } - - fragment CompatUtil_viewer2 on Viewer { - actor { - id - } - } -`; diff --git a/packages/babel-plugin-relay/__tests__/fixtures-compat/unmaskDirectiveSharedModule.txt b/packages/babel-plugin-relay/__tests__/fixtures-compat/unmaskDirectiveSharedModule.txt deleted file mode 100644 index c2ae4b08ddeff..0000000000000 --- a/packages/babel-plugin-relay/__tests__/fixtures-compat/unmaskDirectiveSharedModule.txt +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ - -'use strict'; - -const graphql = require('graphql'); - -module.exports = { - viewer1: graphql` - fragment CompatUtil_viewer1 on Viewer { - actor { - id - name - } - } - `, - viewer2: graphql` - fragment CompatUtil_viewer2 on Viewer { - actor { - id - } - } - `, -}; diff --git a/packages/babel-plugin-relay/__tests__/fixtures-modern-artifact-directory/no-object-many-fragments.txt b/packages/babel-plugin-relay/__tests__/fixtures-modern-artifact-directory/no-object-many-fragments.txt deleted file mode 100644 index 0659758e8078a..0000000000000 --- a/packages/babel-plugin-relay/__tests__/fixtures-modern-artifact-directory/no-object-many-fragments.txt +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - * @providesModule CompatProfile - */ - -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql` - fragment CompatProfile_user on User { - name - } - - fragment CompatProfile_viewer on User { - name - } -`); diff --git a/packages/babel-plugin-relay/__tests__/fixtures-modern-artifact-directory/simple-named-with-many-fragments.txt b/packages/babel-plugin-relay/__tests__/fixtures-modern-artifact-directory/simple-named-with-many-fragments.txt deleted file mode 100644 index cc8084534506e..0000000000000 --- a/packages/babel-plugin-relay/__tests__/fixtures-modern-artifact-directory/simple-named-with-many-fragments.txt +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - * @providesModule CompatProfile - */ - -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql` - fragment CompatProfile on User { - name - } - - fragment CompatProfile_viewer on User { - name - } -`); diff --git a/packages/babel-plugin-relay/__tests__/fixtures-modern-haste/no-object-many-fragments.txt b/packages/babel-plugin-relay/__tests__/fixtures-modern-haste/no-object-many-fragments.txt deleted file mode 100644 index 16219c8f457b2..0000000000000 --- a/packages/babel-plugin-relay/__tests__/fixtures-modern-haste/no-object-many-fragments.txt +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ - -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql` - fragment CompatProfile_user on User { - name - } - - fragment CompatProfile_viewer on User { - name - } -`); diff --git a/packages/babel-plugin-relay/__tests__/fixtures-modern-haste/simple-named-with-many-fragments.txt b/packages/babel-plugin-relay/__tests__/fixtures-modern-haste/simple-named-with-many-fragments.txt deleted file mode 100644 index 7d43688964ff3..0000000000000 --- a/packages/babel-plugin-relay/__tests__/fixtures-modern-haste/simple-named-with-many-fragments.txt +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ - -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql` - fragment CompatProfile on User { - name - } - - fragment CompatProfile_viewer on User { - name - } -`); diff --git a/packages/babel-plugin-relay/__tests__/fixtures-modern/no-object-many-fragments.txt b/packages/babel-plugin-relay/__tests__/fixtures-modern/no-object-many-fragments.txt deleted file mode 100644 index 16219c8f457b2..0000000000000 --- a/packages/babel-plugin-relay/__tests__/fixtures-modern/no-object-many-fragments.txt +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ - -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql` - fragment CompatProfile_user on User { - name - } - - fragment CompatProfile_viewer on User { - name - } -`); diff --git a/packages/babel-plugin-relay/__tests__/fixtures-modern/simple-named-with-many-fragments.txt b/packages/babel-plugin-relay/__tests__/fixtures-modern/simple-named-with-many-fragments.txt deleted file mode 100644 index 7d43688964ff3..0000000000000 --- a/packages/babel-plugin-relay/__tests__/fixtures-modern/simple-named-with-many-fragments.txt +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Copyright 2004-present Facebook. All Rights Reserved. - * - */ - -'use strict'; - -const RelayCompatContainer = require('RelayCompatContainer'); -const graphql = require('graphql'); - -const CompatProfile = () => null; - -module.exports = RelayCompatContainer.createContainer(CompatProfile, graphql` - fragment CompatProfile on User { - name - } - - fragment CompatProfile_viewer on User { - name - } -`); diff --git a/packages/babel-plugin-relay/compileGraphQLTag.js b/packages/babel-plugin-relay/compileGraphQLTag.js index 78b62406fcfd3..459bfd67f47c4 100644 --- a/packages/babel-plugin-relay/compileGraphQLTag.js +++ b/packages/babel-plugin-relay/compileGraphQLTag.js @@ -28,53 +28,29 @@ function compileGraphQLTag( state: BabelState, ast: DocumentNode, ): void { - const mainDefinition = ast.definitions[0]; - - if (mainDefinition.kind === 'FragmentDefinition') { - const objPropName = getAssignedObjectPropertyName(t, path); - if (objPropName) { - if (ast.definitions.length !== 1) { - throw new Error( - 'BabelPluginRelay: Expected exactly one fragment in the ' + - `graphql tag referenced by the property ${objPropName}.`, - ); - } - return replaceMemoized( - t, - path, - createAST(t, state, path, mainDefinition), - ); - } - - const nodeMap = {}; - for (const definition of ast.definitions) { - if (definition.kind !== 'FragmentDefinition') { - throw new Error( - 'BabelPluginRelay: Expected only fragments within this ' + - 'graphql tag.', - ); + if (ast.definitions.length !== 1) { + throw new Error( + 'BabelPluginRelay: Expected exactly one definition per graphql tag.', + ); + } + const definition = ast.definitions[0]; + switch (definition.kind) { + case 'FragmentDefinition': + const objPropName = getAssignedObjectPropertyName(t, path); + if (objPropName) { + return replaceMemoized(t, path, createAST(t, state, path, definition)); } - + const nodeMap = {}; const [, propName] = getFragmentNameParts(definition.name.value); nodeMap[propName] = createAST(t, state, path, definition); - } - return replaceMemoized(t, path, createObject(t, nodeMap)); - } - - if (mainDefinition.kind === 'OperationDefinition') { - if (ast.definitions.length !== 1) { - throw new Error( - 'BabelPluginRelay: Expected exactly one operation ' + - '(query, mutation, or subscription) per graphql tag.', - ); - } - return replaceMemoized(t, path, createAST(t, state, path, mainDefinition)); + return replaceMemoized(t, path, createObject(t, nodeMap)); + case 'OperationDefinition': + return replaceMemoized(t, path, createAST(t, state, path, definition)); } - throw new Error( 'BabelPluginRelay: Expected a fragment, mutation, query, or ' + 'subscription, got `' + - mainDefinition.kind + + definition.kind + '`.', ); }