babel-plugin-relay 2.0.0-rc.2 → 5.0.0
Sign up to get free protection for your applications and to get access to all the features.
- package/babel-plugin-relay.js +2 -2
- package/babel-plugin-relay.min.js +2 -2
- package/index.js +1 -1
- package/lib/BabelPluginRelay.js +33 -10
- package/lib/BabelPluginRelay.macro.js +18 -5
- package/lib/GraphQLRelayDirective.js +6 -4
- package/lib/RelayQLAST.js +82 -52
- package/lib/RelayQLNodeInterface.js +1 -1
- package/lib/RelayQLPrinter.js +61 -43
- package/lib/RelayQLTransformer.js +46 -25
- package/lib/RelayTransformError.js +1 -1
- package/lib/compileGraphQLTag.js +14 -68
- package/lib/compileRelayQLTag.js +6 -4
- package/lib/createClassicNode.js +26 -16
- package/lib/createModernNode.js +16 -9
- package/lib/createTransformError.js +7 -2
- package/lib/getClassicTransformer.js +13 -5
- package/lib/getDocumentName.js +4 -1
- package/lib/getFragmentNameParts.js +1 -1
- package/lib/getSchemaIntrospection.js +22 -5
- package/lib/getValidGraphQLTag.js +3 -2
- package/lib/invariant.js +3 -1
- package/macro.js +1 -1
- package/package.json +3 -3
- package/yarn.lock +0 -87
@@ -9,22 +9,35 @@
|
|
9
9
|
*/
|
10
10
|
'use strict';
|
11
11
|
|
12
|
+
var compileGraphQLTag = require("./compileGraphQLTag");
|
13
|
+
|
14
|
+
var getValidGraphQLTag = require("./getValidGraphQLTag");
|
15
|
+
|
16
|
+
var _require = require("babel-plugin-macros"),
|
17
|
+
createMacro = _require.createMacro;
|
18
|
+
|
19
|
+
var configName = 'relay';
|
20
|
+
|
12
21
|
function BabelPluginRelayMacro(_ref) {
|
13
22
|
var references = _ref.references,
|
14
23
|
state = _ref.state,
|
15
|
-
babel = _ref.babel
|
24
|
+
babel = _ref.babel,
|
25
|
+
config = _ref.config;
|
16
26
|
var t = babel.types;
|
17
27
|
Object.keys(references).forEach(function (referenceKey) {
|
18
28
|
references[referenceKey].forEach(function (reference) {
|
19
29
|
var path = reference.parentPath;
|
20
|
-
|
21
|
-
var ast = require("./getValidGraphQLTag")(path);
|
30
|
+
var ast = getValidGraphQLTag(path);
|
22
31
|
|
23
32
|
if (ast) {
|
24
|
-
|
33
|
+
compileGraphQLTag(t, path, Object.assign(state, config ? {
|
34
|
+
opts: config
|
35
|
+
} : {}), ast);
|
25
36
|
}
|
26
37
|
});
|
27
38
|
});
|
28
39
|
}
|
29
40
|
|
30
|
-
module.exports =
|
41
|
+
module.exports = createMacro(BabelPluginRelayMacro, {
|
42
|
+
configName: configName
|
43
|
+
});
|
@@ -4,17 +4,19 @@
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
6
6
|
*
|
7
|
-
*
|
7
|
+
*
|
8
8
|
* @fullSyntaxTransform
|
9
9
|
* @format
|
10
10
|
*/
|
11
11
|
'use strict';
|
12
12
|
|
13
|
-
|
13
|
+
var _require = require("graphql"),
|
14
|
+
buildSchema = _require.buildSchema; // Copy of RelayRelayDirectiveTransform.SCHEMA_EXTENSION due to the build
|
14
15
|
// systems.
|
15
|
-
var SCHEMA_EXTENSION = "directive @relay(\n # Marks a connection field as containing nodes without 'id' fields.\n # This is used to silence the warning when diffing connections.\n isConnectionWithoutNodeID: Boolean,\n\n # Marks a fragment as intended for pattern matching (as opposed to fetching).\n # Used in Classic only.\n pattern: Boolean,\n\n # Marks a fragment as being backed by a GraphQLList.\n plural: Boolean,\n\n # Marks a fragment spread which should be unmasked if provided false\n mask: Boolean = true,\n\n # Selectively pass variables down into a fragment. Only used in Classic.\n variables: [String!],\n) on FRAGMENT_DEFINITION | FRAGMENT_SPREAD | INLINE_FRAGMENT | FIELD";
|
16
16
|
|
17
|
-
|
17
|
+
|
18
|
+
var SCHEMA_EXTENSION = "directive @relay(\n # Marks a connection field as containing nodes without 'id' fields.\n # This is used to silence the warning when diffing connections.\n isConnectionWithoutNodeID: Boolean,\n\n # Marks a fragment as intended for pattern matching (as opposed to fetching).\n # Used in Classic only.\n pattern: Boolean,\n\n # Marks a fragment as being backed by a GraphQLList.\n plural: Boolean,\n\n # Marks a fragment spread which should be unmasked if provided false\n mask: Boolean = true,\n\n # Selectively pass variables down into a fragment. Only used in Classic.\n variables: [String!],\n) on FRAGMENT_DEFINITION | FRAGMENT_SPREAD | INLINE_FRAGMENT | FIELD";
|
19
|
+
var GraphQLRelayDirective = buildSchema(SCHEMA_EXTENSION + '\ntype Query { x: String }').getDirective('relay');
|
18
20
|
|
19
21
|
if (!GraphQLRelayDirective) {
|
20
22
|
throw new Error('Failed to create GraphQLRelayDirective.');
|
package/lib/RelayQLAST.js
CHANGED
@@ -10,9 +10,44 @@
|
|
10
10
|
*/
|
11
11
|
'use strict';
|
12
12
|
|
13
|
-
var
|
13
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
14
14
|
|
15
|
-
var
|
15
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));
|
16
|
+
|
17
|
+
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
|
18
|
+
|
19
|
+
var RelayTransformError = require("./RelayTransformError");
|
20
|
+
|
21
|
+
var find = require("./find");
|
22
|
+
|
23
|
+
var invariant = require("./invariant");
|
24
|
+
|
25
|
+
var util = require("util");
|
26
|
+
|
27
|
+
var _require = require("./GraphQLRelayDirective"),
|
28
|
+
GraphQLRelayDirective = _require.GraphQLRelayDirective;
|
29
|
+
|
30
|
+
var _require2 = require("./RelayQLNodeInterface"),
|
31
|
+
ID = _require2.ID;
|
32
|
+
|
33
|
+
var _require3 = require("graphql"),
|
34
|
+
GraphQLBoolean = _require3.GraphQLBoolean,
|
35
|
+
GraphQLEnumType = _require3.GraphQLEnumType,
|
36
|
+
GraphQLFloat = _require3.GraphQLFloat,
|
37
|
+
GraphQLID = _require3.GraphQLID,
|
38
|
+
GraphQLInputObjectType = _require3.GraphQLInputObjectType,
|
39
|
+
GraphQLInt = _require3.GraphQLInt,
|
40
|
+
GraphQLInterfaceType = _require3.GraphQLInterfaceType,
|
41
|
+
GraphQLList = _require3.GraphQLList,
|
42
|
+
GraphQLNonNull = _require3.GraphQLNonNull,
|
43
|
+
GraphQLObjectType = _require3.GraphQLObjectType,
|
44
|
+
GraphQLScalarType = _require3.GraphQLScalarType,
|
45
|
+
GraphQLString = _require3.GraphQLString,
|
46
|
+
GraphQLUnionType = _require3.GraphQLUnionType,
|
47
|
+
isAbstractType = _require3.isAbstractType,
|
48
|
+
SchemaMetaFieldDef = _require3.SchemaMetaFieldDef,
|
49
|
+
TypeMetaFieldDef = _require3.TypeMetaFieldDef,
|
50
|
+
TypeNameMetaFieldDef = _require3.TypeNameMetaFieldDef;
|
16
51
|
|
17
52
|
var RelayQLNode =
|
18
53
|
/*#__PURE__*/
|
@@ -29,11 +64,11 @@ function () {
|
|
29
64
|
};
|
30
65
|
|
31
66
|
_proto.getType = function getType() {
|
32
|
-
!false ? process.env.NODE_ENV !== "production" ?
|
67
|
+
!false ? process.env.NODE_ENV !== "production" ? invariant(false, 'Missing Implementation') : invariant(false) : void 0;
|
33
68
|
};
|
34
69
|
|
35
70
|
_proto.getField = function getField(fieldName) {
|
36
|
-
return
|
71
|
+
return find(this.getFields(), function (field) {
|
37
72
|
return field.getName() === fieldName;
|
38
73
|
});
|
39
74
|
};
|
@@ -67,7 +102,7 @@ function () {
|
|
67
102
|
} else if (selection.kind === 'InlineFragment') {
|
68
103
|
return new RelayQLInlineFragment(_this.context, selection, _this.getType());
|
69
104
|
} else {
|
70
|
-
throw new
|
105
|
+
throw new RelayTransformError(util.format('Unexpected selection kind: %s', selection.kind), _this.getLocation());
|
71
106
|
}
|
72
107
|
});
|
73
108
|
};
|
@@ -130,8 +165,7 @@ function (_RelayQLDefinition) {
|
|
130
165
|
var _this3;
|
131
166
|
|
132
167
|
var relayDirectiveArgs = {};
|
133
|
-
|
134
|
-
var relayDirective = require("./find")(ast.directives || [], function (directive) {
|
168
|
+
var relayDirective = find(ast.directives || [], function (directive) {
|
135
169
|
return directive.name.value === 'relay';
|
136
170
|
});
|
137
171
|
|
@@ -165,12 +199,12 @@ function (_RelayQLDefinition) {
|
|
165
199
|
} else if (this.ast.kind === 'InlineFragment') {
|
166
200
|
// Inline fragments without type conditions fall back to parent type.
|
167
201
|
if (!this.parentType) {
|
168
|
-
throw new
|
202
|
+
throw new RelayTransformError('Cannot get type of typeless inline fragment without parent type.', this.getLocation());
|
169
203
|
}
|
170
204
|
|
171
205
|
return this.parentType;
|
172
206
|
} else {
|
173
|
-
throw new
|
207
|
+
throw new RelayTransformError(util.format('Unexpected fragment kind: %s', this.ast.kind), this.getLocation());
|
174
208
|
}
|
175
209
|
};
|
176
210
|
|
@@ -248,7 +282,7 @@ function (_RelayQLNode2) {
|
|
248
282
|
var fieldDef = parentType.getFieldDefinition(fieldName, ast);
|
249
283
|
|
250
284
|
if (!fieldDef) {
|
251
|
-
throw new
|
285
|
+
throw new RelayTransformError(util.format('You supplied a field named `%s` on type `%s`, but no such field ' + 'exists on that type.', fieldName, parentType.getName({
|
252
286
|
modifiers: false
|
253
287
|
})), _this4.getLocation());
|
254
288
|
}
|
@@ -278,7 +312,7 @@ function (_RelayQLNode2) {
|
|
278
312
|
};
|
279
313
|
|
280
314
|
_proto7.findArgument = function findArgument(argName) {
|
281
|
-
return
|
315
|
+
return find(this.getArguments(), function (arg) {
|
282
316
|
return arg.getName() === argName;
|
283
317
|
});
|
284
318
|
};
|
@@ -292,7 +326,7 @@ function (_RelayQLNode2) {
|
|
292
326
|
var argType = argTypes[argName];
|
293
327
|
|
294
328
|
if (!argType) {
|
295
|
-
throw new
|
329
|
+
throw new RelayTransformError(util.format('You supplied an argument named `%s` on field `%s`, but no such ' + 'argument exists on that field.', argName, _this5.getName()), _this5.getLocation());
|
296
330
|
}
|
297
331
|
|
298
332
|
return new RelayQLArgument(_this5.context, arg, argType);
|
@@ -331,7 +365,7 @@ function (_RelayQLNode3) {
|
|
331
365
|
};
|
332
366
|
|
333
367
|
_proto8.getSelections = function getSelections() {
|
334
|
-
throw new
|
368
|
+
throw new RelayTransformError('Cannot get selection of a fragment spread.', this.getLocation());
|
335
369
|
};
|
336
370
|
|
337
371
|
return RelayQLFragmentSpread;
|
@@ -370,10 +404,10 @@ function () {
|
|
370
404
|
this.context = context;
|
371
405
|
this.argTypes = {};
|
372
406
|
var directiveName = ast.name.value;
|
373
|
-
var schemaDirective = directiveName ===
|
407
|
+
var schemaDirective = directiveName === GraphQLRelayDirective.name ? GraphQLRelayDirective : context.schema.getDirective(directiveName);
|
374
408
|
|
375
409
|
if (!schemaDirective) {
|
376
|
-
throw new
|
410
|
+
throw new RelayTransformError(util.format('You supplied a directive named `%s`, but no such directive exists.', directiveName), this.getLocation());
|
377
411
|
}
|
378
412
|
|
379
413
|
schemaDirective.args.forEach(function (schemaArg) {
|
@@ -399,7 +433,7 @@ function () {
|
|
399
433
|
var argType = _this8.argTypes[argName];
|
400
434
|
|
401
435
|
if (!argType) {
|
402
|
-
throw new
|
436
|
+
throw new RelayTransformError(util.format('You supplied an argument named `%s` on directive `%s`, but no ' + 'such argument exists on that directive.', argName, _this8.getName()), _this8.getLocation());
|
403
437
|
}
|
404
438
|
|
405
439
|
return new RelayQLArgument(_this8.context, arg, argType);
|
@@ -438,7 +472,7 @@ function () {
|
|
438
472
|
|
439
473
|
_proto11.getVariableName = function getVariableName() {
|
440
474
|
if (this.ast.value.kind !== 'Variable') {
|
441
|
-
throw new
|
475
|
+
throw new RelayTransformError('Cannot get variable name of an argument value.', this.getLocation());
|
442
476
|
}
|
443
477
|
|
444
478
|
return this.ast.value.name.value;
|
@@ -448,7 +482,7 @@ function () {
|
|
448
482
|
var _this9 = this;
|
449
483
|
|
450
484
|
if (this.isVariable()) {
|
451
|
-
throw new
|
485
|
+
throw new RelayTransformError('Cannot get value of an argument variable.', this.getLocation());
|
452
486
|
}
|
453
487
|
|
454
488
|
var value = this.ast.value;
|
@@ -487,7 +521,7 @@ function () {
|
|
487
521
|
var _proto12 = RelayQLType.prototype;
|
488
522
|
|
489
523
|
_proto12.canHaveSubselections = function canHaveSubselections() {
|
490
|
-
return !(this.schemaUnmodifiedType instanceof
|
524
|
+
return !(this.schemaUnmodifiedType instanceof GraphQLScalarType || this.schemaUnmodifiedType instanceof GraphQLEnumType);
|
491
525
|
};
|
492
526
|
|
493
527
|
_proto12.getName = function getName(_ref) {
|
@@ -502,25 +536,22 @@ function () {
|
|
502
536
|
_proto12.getFieldDefinition = function getFieldDefinition(fieldName, fieldAST) {
|
503
537
|
var type = this.schemaUnmodifiedType;
|
504
538
|
var isQueryType = type === this.context.schema.getQueryType();
|
505
|
-
|
506
|
-
var
|
507
|
-
|
508
|
-
var hasFields = type instanceof require("graphql").GraphQLObjectType || type instanceof require("graphql").GraphQLInterfaceType;
|
509
|
-
|
539
|
+
var hasTypeName = type instanceof GraphQLObjectType || type instanceof GraphQLInterfaceType || type instanceof GraphQLUnionType;
|
540
|
+
var hasFields = type instanceof GraphQLObjectType || type instanceof GraphQLInterfaceType;
|
510
541
|
var schemaFieldDef;
|
511
542
|
|
512
|
-
if (isQueryType && fieldName ===
|
513
|
-
schemaFieldDef =
|
514
|
-
} else if (isQueryType && fieldName ===
|
515
|
-
schemaFieldDef =
|
516
|
-
} else if (hasTypeName && fieldName ===
|
517
|
-
schemaFieldDef =
|
543
|
+
if (isQueryType && fieldName === SchemaMetaFieldDef.name) {
|
544
|
+
schemaFieldDef = SchemaMetaFieldDef;
|
545
|
+
} else if (isQueryType && fieldName === TypeMetaFieldDef.name) {
|
546
|
+
schemaFieldDef = TypeMetaFieldDef;
|
547
|
+
} else if (hasTypeName && fieldName === TypeNameMetaFieldDef.name) {
|
548
|
+
schemaFieldDef = TypeNameMetaFieldDef;
|
518
549
|
} else if (hasFields) {
|
519
550
|
schemaFieldDef = type.getFields()[fieldName];
|
520
551
|
} // Temporary workaround to support fixme_fat_interface
|
521
552
|
|
522
553
|
|
523
|
-
if (!schemaFieldDef &&
|
554
|
+
if (!schemaFieldDef && isAbstractType(type) && fieldAST && fieldAST.directives && fieldAST.directives.some(function (directive) {
|
524
555
|
return directive.name.value === 'fixme_fat_interface';
|
525
556
|
})) {
|
526
557
|
var possibleTypes = this.context.schema.getPossibleTypes(type);
|
@@ -536,7 +567,7 @@ function () {
|
|
536
567
|
|
537
568
|
if (fieldAST && fieldAST.arguments) {
|
538
569
|
var argumentsAllExist = fieldAST.arguments.every(function (argument) {
|
539
|
-
return
|
570
|
+
return find(possibleField.args, function (argDef) {
|
540
571
|
return argDef.name === argument.name.value;
|
541
572
|
});
|
542
573
|
});
|
@@ -561,7 +592,7 @@ function () {
|
|
561
592
|
_proto12.getInterfaces = function getInterfaces() {
|
562
593
|
var _this10 = this;
|
563
594
|
|
564
|
-
if (this.schemaUnmodifiedType instanceof
|
595
|
+
if (this.schemaUnmodifiedType instanceof GraphQLObjectType) {
|
565
596
|
return this.schemaUnmodifiedType.getInterfaces().map(function (schemaInterface) {
|
566
597
|
return new RelayQLType(_this10.context, schemaInterface);
|
567
598
|
});
|
@@ -573,7 +604,7 @@ function () {
|
|
573
604
|
_proto12.getConcreteTypes = function getConcreteTypes() {
|
574
605
|
var _this11 = this;
|
575
606
|
|
576
|
-
!this.isAbstract() ? process.env.NODE_ENV !== "production" ?
|
607
|
+
!this.isAbstract() ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot get concrete types of a concrete type.') : invariant(false) : void 0;
|
577
608
|
return this.context.schema.getPossibleTypes(this.schemaUnmodifiedType).map(function (concreteType) {
|
578
609
|
return new RelayQLType(_this11.context, concreteType);
|
579
610
|
});
|
@@ -581,14 +612,14 @@ function () {
|
|
581
612
|
|
582
613
|
_proto12.getIdentifyingFieldDefinition = function getIdentifyingFieldDefinition() {
|
583
614
|
if (this.alwaysImplements('Node')) {
|
584
|
-
return this.getFieldDefinition(
|
615
|
+
return this.getFieldDefinition(ID);
|
585
616
|
}
|
586
617
|
|
587
618
|
return null;
|
588
619
|
};
|
589
620
|
|
590
621
|
_proto12.isAbstract = function isAbstract() {
|
591
|
-
return
|
622
|
+
return isAbstractType(this.schemaUnmodifiedType);
|
592
623
|
};
|
593
624
|
|
594
625
|
_proto12.isList = function isList() {
|
@@ -724,11 +755,10 @@ function () {
|
|
724
755
|
};
|
725
756
|
|
726
757
|
_proto13.getArgument = function getArgument(argName) {
|
727
|
-
var schemaArg =
|
758
|
+
var schemaArg = find(this.schemaFieldDef.args, function (arg) {
|
728
759
|
return arg.name === argName;
|
729
760
|
});
|
730
|
-
|
731
|
-
!schemaArg ? process.env.NODE_ENV !== "production" ? require("./invariant")(false, 'You tried to get an argument named `%s` on field `%s`, but no such ' + 'argument exists on that field.', argName, this.getName()) : require("./invariant")(false) : void 0;
|
761
|
+
!schemaArg ? process.env.NODE_ENV !== "production" ? invariant(false, 'You tried to get an argument named `%s` on field `%s`, but no such ' + 'argument exists on that field.', argName, this.getName()) : invariant(false) : void 0;
|
732
762
|
return new RelayQLArgumentType(schemaArg.type);
|
733
763
|
};
|
734
764
|
|
@@ -766,24 +796,24 @@ function () {
|
|
766
796
|
};
|
767
797
|
|
768
798
|
_proto14.ofType = function ofType() {
|
769
|
-
!(this.isList() || this.isNonNull()) ? process.env.NODE_ENV !== "production" ?
|
799
|
+
!(this.isList() || this.isNonNull()) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Can only get type of list or non-null type.') : invariant(false) : void 0;
|
770
800
|
return new RelayQLArgumentType(this.schemaUnmodifiedArgType);
|
771
801
|
};
|
772
802
|
|
773
803
|
_proto14.isCustomScalar = function isCustomScalar() {
|
774
|
-
return this.isScalar() && !(this.schemaUnmodifiedArgType ===
|
804
|
+
return this.isScalar() && !(this.schemaUnmodifiedArgType === GraphQLBoolean || this.schemaUnmodifiedArgType === GraphQLFloat || this.schemaUnmodifiedArgType === GraphQLID || this.schemaUnmodifiedArgType === GraphQLInt || this.schemaUnmodifiedArgType === GraphQLString);
|
775
805
|
};
|
776
806
|
|
777
807
|
_proto14.isBoolean = function isBoolean() {
|
778
|
-
return this.schemaUnmodifiedArgType ===
|
808
|
+
return this.schemaUnmodifiedArgType === GraphQLBoolean;
|
779
809
|
};
|
780
810
|
|
781
811
|
_proto14.isEnum = function isEnum() {
|
782
|
-
return this.schemaUnmodifiedArgType instanceof
|
812
|
+
return this.schemaUnmodifiedArgType instanceof GraphQLEnumType;
|
783
813
|
};
|
784
814
|
|
785
815
|
_proto14.isID = function isID() {
|
786
|
-
return this.schemaUnmodifiedArgType ===
|
816
|
+
return this.schemaUnmodifiedArgType === GraphQLID;
|
787
817
|
};
|
788
818
|
|
789
819
|
_proto14.isList = function isList() {
|
@@ -795,19 +825,19 @@ function () {
|
|
795
825
|
};
|
796
826
|
|
797
827
|
_proto14.isNumber = function isNumber() {
|
798
|
-
return this.schemaUnmodifiedArgType ===
|
828
|
+
return this.schemaUnmodifiedArgType === GraphQLFloat || this.schemaUnmodifiedArgType === GraphQLInt;
|
799
829
|
};
|
800
830
|
|
801
831
|
_proto14.isObject = function isObject() {
|
802
|
-
return this.schemaUnmodifiedArgType instanceof
|
832
|
+
return this.schemaUnmodifiedArgType instanceof GraphQLInputObjectType;
|
803
833
|
};
|
804
834
|
|
805
835
|
_proto14.isScalar = function isScalar() {
|
806
|
-
return this.schemaUnmodifiedArgType instanceof
|
836
|
+
return this.schemaUnmodifiedArgType instanceof GraphQLScalarType;
|
807
837
|
};
|
808
838
|
|
809
839
|
_proto14.isString = function isString() {
|
810
|
-
return this.schemaUnmodifiedArgType ===
|
840
|
+
return this.schemaUnmodifiedArgType === GraphQLString;
|
811
841
|
};
|
812
842
|
|
813
843
|
return RelayQLArgumentType;
|
@@ -819,9 +849,9 @@ function stripMarkerTypes(schemaModifiedType) {
|
|
819
849
|
var schemaUnmodifiedType = schemaModifiedType;
|
820
850
|
|
821
851
|
while (true) {
|
822
|
-
if (schemaUnmodifiedType instanceof
|
852
|
+
if (schemaUnmodifiedType instanceof GraphQLList) {
|
823
853
|
isListType = true;
|
824
|
-
} else if (schemaUnmodifiedType instanceof
|
854
|
+
} else if (schemaUnmodifiedType instanceof GraphQLNonNull) {
|
825
855
|
isNonNullType = true;
|
826
856
|
} else {
|
827
857
|
break;
|
@@ -864,10 +894,10 @@ function getLiteralValue(value) {
|
|
864
894
|
return object;
|
865
895
|
|
866
896
|
case 'Variable':
|
867
|
-
throw new
|
897
|
+
throw new RelayTransformError(util.format('Unexpected nested variable `%s`; variables are supported as top-' + 'level arguments - `node(id: $id)` - or directly within lists - ' + '`nodes(ids: [$id])`.', value.name.value), value.loc);
|
868
898
|
|
869
899
|
default:
|
870
|
-
throw new
|
900
|
+
throw new RelayTransformError(util.format('Unexpected value kind: %s', value.kind), value.loc);
|
871
901
|
}
|
872
902
|
}
|
873
903
|
|