@@ -51,8 +51,8 @@ fragment FragmentSpread on Node {
51
51
fragment ConcreateTypes on Viewer {
52
52
actor {
53
53
__typename
54
- id
55
54
... on Page {
55
+ id
56
56
... PageFragment
57
57
}
58
58
... on User {
@@ -94,11 +94,12 @@ export type ConcreateTypes$ref = typeof _ConcreateTypes$ref;
94
94
export type ConcreateTypes = {
95
95
readonly actor : ({
96
96
readonly __typename: string ;
97
- readonly id : string ;
97
+ readonly id ? : string ;
98
98
readonly name ?: string | null ;
99
99
readonly " $fragmentRefs" : PageFragment$ref ;
100
100
} & ({
101
101
readonly __typename: " Page" ;
102
+ readonly id : string ;
102
103
readonly " $fragmentRefs" : PageFragment$ref ;
103
104
} | {
104
105
readonly __typename: " User" ;
@@ -370,9 +371,15 @@ declare const _NameRendererFragment$ref: unique symbol;
370
371
export type NameRendererFragment$ref = typeof _NameRendererFragment$ref;
371
372
export type NameRendererFragment = {
372
373
readonly id : string ;
373
- readonly nameRenderer : {
374
- readonly " $fragmentRefs" : PlainUserNameRenderer_name$ref & MarkdownUserNameRenderer_name$ref ;
375
- } | null ;
374
+ readonly nameRenderer : ({
375
+ readonly __module_component?: any | null;
376
+ } & ({
377
+ readonly __module_component: any | null ;
378
+ } | {
379
+ /* This will never be '% other', but we need some
380
+ value in case none of the concrete values match.*/
381
+ readonly __typename: " %other" ;
382
+ })) | null ;
376
383
readonly " $refType" : NameRendererFragment$ref ;
377
384
} ;
378
385
@@ -433,9 +440,15 @@ export type NameRendererQueryVariables = {
433
440
} ;
434
441
export type NameRendererQueryResponse = {
435
442
readonly me : {
436
- readonly nameRenderer: {
437
- readonly " $fragmentRefs" : PlainUserNameRenderer_name$ref & MarkdownUserNameRenderer_name$ref ;
438
- } | null ;
443
+ readonly nameRenderer: ({
444
+ readonly __module_component?: any | null;
445
+ } & ({
446
+ readonly __module_component: any | null ;
447
+ } | {
448
+ /* This will never be '% other', but we need some
449
+ value in case none of the concrete values match.*/
450
+ readonly __typename: " %other" ;
451
+ })) | null ;
439
452
} | null ;
440
453
} ;
441
454
export type NameRendererQuery = {
@@ -725,6 +738,92 @@ export type ScalarField = {
725
738
726
739
`;
727
740
741
+ exports[`TypeScriptGenerator with a single artifact directory matches expected output: typename-inside-with-overlapping-fields.graphql 1`] = `
742
+ ~~~~~~~~~~ INPUT ~~~~~~~~~~
743
+ fragment TypenameInsideWithOverlappingFields on Viewer {
744
+ actor {
745
+ __typename
746
+ ... on Page {
747
+ id
748
+ name
749
+ }
750
+ ... on User {
751
+ id
752
+ name
753
+ profile_picture {
754
+ uri
755
+ }
756
+ }
757
+ }
758
+ }
759
+
760
+ ~~~~~~~~~~ OUTPUT ~~~~~~~~~~
761
+ declare const _TypenameInsideWithOverlappingFields$ref: unique symbol;
762
+ export type TypenameInsideWithOverlappingFields$ref = typeof _TypenameInsideWithOverlappingFields$ref;
763
+ export type TypenameInsideWithOverlappingFields = {
764
+ readonly actor : ({
765
+ readonly __typename: string ;
766
+ readonly id ?: string ;
767
+ readonly name ?: string | null ;
768
+ readonly profile_picture ?: {
769
+ readonly uri: string | null ;
770
+ } | null ;
771
+ } & ({
772
+ readonly __typename: " Page" ;
773
+ readonly id : string ;
774
+ readonly name : string | null ;
775
+ } | {
776
+ readonly __typename: " User" ;
777
+ readonly profile_picture : {
778
+ readonly uri: string | null ;
779
+ } | null ;
780
+ } | {
781
+ /* This will never be '% other', but we need some
782
+ value in case none of the concrete values match.*/
783
+ readonly __typename: " %other" ;
784
+ })) | null ;
785
+ readonly " $refType" : TypenameInsideWithOverlappingFields$ref ;
786
+ } ;
787
+
788
+ `;
789
+
790
+ exports[`TypeScriptGenerator with a single artifact directory matches expected output: typename-inside-with-overlapping-fields-full.graphql 1`] = `
791
+ ~~~~~~~~~~ INPUT ~~~~~~~~~~
792
+ fragment TypenameInsideWithOverlappingFieldsFull on Viewer {
793
+ actor {
794
+ __typename
795
+ ... on Page {
796
+ id
797
+ name
798
+ }
799
+ ... on User {
800
+ id
801
+ name
802
+ profile_picture {
803
+ uri
804
+ }
805
+ }
806
+ ... on ExtraUser {
807
+ id
808
+ name
809
+ }
810
+ }
811
+ }
812
+
813
+ ~~~~~~~~~~ OUTPUT ~~~~~~~~~~
814
+ THROWN EXCEPTION:
815
+
816
+ Error: RelayParser: Encountered 1 error(s):
817
+ - Unknown type: 'ExtraUser'.
818
+
819
+ GraphQL request (15:12)
820
+ 14: }
821
+ 15: ... on ExtraUser {
822
+ ^
823
+ 16 : id
824
+
825
+ ` ;
826
+
728
827
exports[` TypeScriptGenerator with a single artifact directory matches expected output : typename - on - union .graphql 1 ` ] = `
729
828
~~~~~~~~~~ INPUT ~~~~~~~~~~
730
829
fragment TypenameInside on Actor {
@@ -1086,8 +1185,8 @@ fragment FragmentSpread on Node {
1086
1185
fragment ConcreateTypes on Viewer {
1087
1186
actor {
1088
1187
__typename
1089
- id
1090
1188
... on Page {
1189
+ id
1091
1190
... PageFragment
1092
1191
}
1093
1192
... on User {
@@ -1127,11 +1226,12 @@ export type ConcreateTypes$ref = any;
1127
1226
export type ConcreateTypes = {
1128
1227
readonly actor : ({
1129
1228
readonly __typename: string ;
1130
- readonly id : string ;
1229
+ readonly id ? : string ;
1131
1230
readonly name ?: string | null ;
1132
1231
readonly " $fragmentRefs" : PageFragment$ref ;
1133
1232
} & ({
1134
1233
readonly __typename: " Page" ;
1234
+ readonly id : string ;
1135
1235
readonly " $fragmentRefs" : PageFragment$ref ;
1136
1236
} | {
1137
1237
readonly __typename: " User" ;
@@ -1397,9 +1497,15 @@ type PlainUserNameRenderer_name$ref = any;
1397
1497
export type NameRendererFragment$ref = any;
1398
1498
export type NameRendererFragment = {
1399
1499
readonly id : string ;
1400
- readonly nameRenderer : {
1401
- readonly " $fragmentRefs" : PlainUserNameRenderer_name$ref & MarkdownUserNameRenderer_name$ref ;
1402
- } | null ;
1500
+ readonly nameRenderer : ({
1501
+ readonly __module_component?: any | null;
1502
+ } & ({
1503
+ readonly __module_component: any | null ;
1504
+ } | {
1505
+ /* This will never be '% other', but we need some
1506
+ value in case none of the concrete values match.*/
1507
+ readonly __typename: " %other" ;
1508
+ })) | null ;
1403
1509
readonly " $refType" : NameRendererFragment$ref ;
1404
1510
} ;
1405
1511
@@ -1458,9 +1564,15 @@ export type NameRendererQueryVariables = {
1458
1564
} ;
1459
1565
export type NameRendererQueryResponse = {
1460
1566
readonly me : {
1461
- readonly nameRenderer: {
1462
- readonly " $fragmentRefs" : PlainUserNameRenderer_name$ref & MarkdownUserNameRenderer_name$ref ;
1463
- } | null ;
1567
+ readonly nameRenderer: ({
1568
+ readonly __module_component?: any | null;
1569
+ } & ({
1570
+ readonly __module_component: any | null ;
1571
+ } | {
1572
+ /* This will never be '% other', but we need some
1573
+ value in case none of the concrete values match.*/
1574
+ readonly __typename: " %other" ;
1575
+ })) | null ;
1464
1576
} | null ;
1465
1577
} ;
1466
1578
export type NameRendererQuery = {
@@ -1744,6 +1856,91 @@ export type ScalarField = {
1744
1856
1745
1857
`;
1746
1858
1859
+ exports[`TypeScriptGenerator without a single artifact directory matches expected output: typename-inside-with-overlapping-fields.graphql 1`] = `
1860
+ ~~~~~~~~~~ INPUT ~~~~~~~~~~
1861
+ fragment TypenameInsideWithOverlappingFields on Viewer {
1862
+ actor {
1863
+ __typename
1864
+ ... on Page {
1865
+ id
1866
+ name
1867
+ }
1868
+ ... on User {
1869
+ id
1870
+ name
1871
+ profile_picture {
1872
+ uri
1873
+ }
1874
+ }
1875
+ }
1876
+ }
1877
+
1878
+ ~~~~~~~~~~ OUTPUT ~~~~~~~~~~
1879
+ export type TypenameInsideWithOverlappingFields$ref = any;
1880
+ export type TypenameInsideWithOverlappingFields = {
1881
+ readonly actor : ({
1882
+ readonly __typename: string ;
1883
+ readonly id ?: string ;
1884
+ readonly name ?: string | null ;
1885
+ readonly profile_picture ?: {
1886
+ readonly uri: string | null ;
1887
+ } | null ;
1888
+ } & ({
1889
+ readonly __typename: " Page" ;
1890
+ readonly id : string ;
1891
+ readonly name : string | null ;
1892
+ } | {
1893
+ readonly __typename: " User" ;
1894
+ readonly profile_picture : {
1895
+ readonly uri: string | null ;
1896
+ } | null ;
1897
+ } | {
1898
+ /* This will never be '% other', but we need some
1899
+ value in case none of the concrete values match.*/
1900
+ readonly __typename: " %other" ;
1901
+ })) | null ;
1902
+ readonly " $refType" : TypenameInsideWithOverlappingFields$ref ;
1903
+ } ;
1904
+
1905
+ `;
1906
+
1907
+ exports[`TypeScriptGenerator without a single artifact directory matches expected output: typename-inside-with-overlapping-fields-full.graphql 1`] = `
1908
+ ~~~~~~~~~~ INPUT ~~~~~~~~~~
1909
+ fragment TypenameInsideWithOverlappingFieldsFull on Viewer {
1910
+ actor {
1911
+ __typename
1912
+ ... on Page {
1913
+ id
1914
+ name
1915
+ }
1916
+ ... on User {
1917
+ id
1918
+ name
1919
+ profile_picture {
1920
+ uri
1921
+ }
1922
+ }
1923
+ ... on ExtraUser {
1924
+ id
1925
+ name
1926
+ }
1927
+ }
1928
+ }
1929
+
1930
+ ~~~~~~~~~~ OUTPUT ~~~~~~~~~~
1931
+ THROWN EXCEPTION:
1932
+
1933
+ Error: RelayParser: Encountered 1 error(s):
1934
+ - Unknown type: 'ExtraUser'.
1935
+
1936
+ GraphQL request (15:12)
1937
+ 14: }
1938
+ 15: ... on ExtraUser {
1939
+ ^
1940
+ 16 : id
1941
+
1942
+ ` ;
1943
+
1747
1944
exports[` TypeScriptGenerator without a single artifact directory matches expected output : typename - on - union .graphql 1 ` ] = `
1748
1945
~~~~~~~~~~ INPUT ~~~~~~~~~~
1749
1946
fragment TypenameInside on Actor {
0 commit comments