relay-compiler 10.0.1 → 10.1.3
Sign up to get free protection for your applications and to get access to all the features.
- package/bin/relay-compiler +1538 -975
- package/codegen/NormalizationCodeGenerator.js.flow +12 -4
- package/codegen/ReaderCodeGenerator.js.flow +38 -3
- package/codegen/RelayFileWriter.js.flow +2 -0
- package/codegen/writeRelayGeneratedFile.js.flow +1 -1
- package/core/ASTCache.js.flow +1 -0
- package/core/CompilerContext.js.flow +1 -0
- package/core/CompilerError.js.flow +6 -1
- package/core/IR.js.flow +0 -1
- package/core/IRPrinter.js.flow +3 -8
- package/core/RelayIRTransforms.js.flow +7 -0
- package/core/Schema.js.flow +55 -1
- package/index.js +1 -1
- package/language/javascript/FindGraphQLTags.js.flow +2 -97
- package/language/javascript/RelayFlowBabelFactories.js.flow +11 -15
- package/language/javascript/RelayFlowGenerator.js.flow +76 -19
- package/language/javascript/RelayFlowTypeTransformers.js.flow +4 -4
- package/lib/bin/RelayCompilerMain.js +8 -14
- package/lib/codegen/CodegenRunner.js +5 -9
- package/lib/codegen/NormalizationCodeGenerator.js +21 -13
- package/lib/codegen/ReaderCodeGenerator.js +44 -13
- package/lib/codegen/RelayFileWriter.js +3 -7
- package/lib/codegen/compileRelayArtifacts.js +4 -8
- package/lib/codegen/sortObjectByKey.js +3 -5
- package/lib/codegen/writeRelayGeneratedFile.js +3 -7
- package/lib/core/ASTCache.js +1 -0
- package/lib/core/CompilerContext.js +1 -0
- package/lib/core/CompilerError.js +8 -8
- package/lib/core/IRPrinter.js +3 -4
- package/lib/core/IRTransformer.js +3 -7
- package/lib/core/RelayGraphQLEnumsGenerator.js +3 -7
- package/lib/core/RelayIRTransforms.js +10 -4
- package/lib/core/RelayParser.js +7 -15
- package/lib/core/Schema.js +50 -13
- package/lib/core/getFieldDefinition.js +3 -5
- package/lib/core/inferRootArgumentDefinitions.js +6 -14
- package/lib/language/javascript/FindGraphQLTags.js +3 -69
- package/lib/language/javascript/RelayFlowBabelFactories.js +5 -5
- package/lib/language/javascript/RelayFlowGenerator.js +85 -34
- package/lib/runner/Artifacts.js +13 -17
- package/lib/runner/BufferedFilesystem.js +6 -10
- package/lib/runner/GraphQLASTNodeGroup.js +10 -14
- package/lib/runner/GraphQLNodeMap.js +3 -7
- package/lib/runner/Sources.js +27 -17
- package/lib/runner/StrictMap.js +5 -7
- package/lib/runner/getChangedNodeNames.js +6 -8
- package/lib/transforms/ApplyFragmentArgumentTransform.js +16 -25
- package/lib/transforms/ClientExtensionsTransform.js +8 -9
- package/lib/transforms/ConnectionTransform.js +9 -14
- package/lib/transforms/DeclarativeConnectionMutationTransform.js +115 -64
- package/lib/transforms/DeferStreamTransform.js +3 -7
- package/lib/transforms/DisallowTypenameOnRoot.js +3 -5
- package/lib/transforms/FieldHandleTransform.js +3 -7
- package/lib/transforms/FilterCompilerDirectivesTransform.js +29 -0
- package/lib/transforms/FlattenTransform.js +14 -17
- package/lib/transforms/GenerateIDFieldTransform.js +3 -7
- package/lib/transforms/GenerateTypeNameTransform.js +4 -8
- package/lib/transforms/InlineDataFragmentTransform.js +3 -7
- package/lib/transforms/MaskTransform.js +4 -12
- package/lib/transforms/MatchTransform.js +8 -8
- package/lib/transforms/ReactFlightComponentTransform.js +158 -0
- package/lib/transforms/RefetchableFragmentTransform.js +5 -9
- package/lib/transforms/RelayDirectiveTransform.js +3 -7
- package/lib/transforms/RequiredFieldTransform.js +369 -0
- package/lib/transforms/SkipHandleFieldTransform.js +2 -6
- package/lib/transforms/SkipRedundantNodesTransform.js +4 -6
- package/lib/transforms/SkipUnreachableNodeTransform.js +2 -6
- package/lib/transforms/SkipUnusedVariablesTransform.js +4 -12
- package/lib/transforms/TestOperationTransform.js +3 -7
- package/lib/transforms/ValidateGlobalVariablesTransform.js +4 -6
- package/lib/transforms/ValidateRequiredArgumentsTransform.js +3 -5
- package/lib/transforms/ValidateServerOnlyDirectivesTransform.js +4 -6
- package/lib/transforms/ValidateUnusedVariablesTransform.js +4 -6
- package/lib/transforms/query-generators/FetchableQueryGenerator.js +2 -6
- package/lib/transforms/query-generators/NodeQueryGenerator.js +2 -6
- package/lib/transforms/query-generators/index.js +3 -5
- package/lib/transforms/query-generators/utils.js +3 -5
- package/package.json +3 -3
- package/relay-compiler.js +4 -4
- package/relay-compiler.min.js +4 -4
- package/runner/Sources.js.flow +14 -0
- package/transforms/ClientExtensionsTransform.js.flow +3 -0
- package/transforms/ConnectionTransform.js.flow +0 -1
- package/transforms/DeclarativeConnectionMutationTransform.js.flow +140 -48
- package/transforms/FieldHandleTransform.js.flow +0 -1
- package/transforms/FilterCompilerDirectivesTransform.js.flow +33 -0
- package/transforms/FlattenTransform.js.flow +3 -2
- package/transforms/MatchTransform.js.flow +6 -0
- package/transforms/ReactFlightComponentTransform.js.flow +195 -0
- package/transforms/RequiredFieldTransform.js.flow +415 -0
- package/transforms/SkipRedundantNodesTransform.js.flow +3 -0
@@ -14,14 +14,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
14
14
|
|
15
15
|
var _asyncToGenerator = require("@babel/runtime/helpers/asyncToGenerator");
|
16
16
|
|
17
|
-
var
|
17
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
18
18
|
|
19
19
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
20
20
|
|
21
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
22
|
-
|
23
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
24
|
-
|
25
21
|
var CodeMarker = require('../util/CodeMarker');
|
26
22
|
|
27
23
|
var createPrintRequireModuleDependency = require('./createPrintRequireModuleDependency');
|
@@ -127,7 +123,7 @@ function writeRelayGeneratedFile(schema, codegenDir, definition, _generatedNode,
|
|
127
123
|
};
|
128
124
|
}
|
129
125
|
|
130
|
-
generatedNode =
|
126
|
+
generatedNode = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, generatedNode), {}, {
|
131
127
|
params: nextRequestParams
|
132
128
|
});
|
133
129
|
} // Strip metadata only used within the compiler
|
@@ -137,7 +133,7 @@ function writeRelayGeneratedFile(schema, codegenDir, definition, _generatedNode,
|
|
137
133
|
var _generatedNode$metada2 = generatedNode.metadata,
|
138
134
|
_ignored3 = _generatedNode$metada2.derivedFrom,
|
139
135
|
metadata = (0, _objectWithoutPropertiesLoose2["default"])(_generatedNode$metada2, ["derivedFrom"]);
|
140
|
-
generatedNode =
|
136
|
+
generatedNode = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, generatedNode), {}, {
|
141
137
|
metadata: metadata
|
142
138
|
});
|
143
139
|
}
|
package/lib/core/ASTCache.js
CHANGED
@@ -22,6 +22,7 @@ var ASTCache = /*#__PURE__*/function () {
|
|
22
22
|
this._baseDir = config.baseDir;
|
23
23
|
this._parse = Profiler.instrument(config.parse, 'ASTCache.parseFn');
|
24
24
|
} // Short-term: we don't do subscriptions/delta updates, instead always use all definitions
|
25
|
+
// $FlowFixMe[value-as-type]
|
25
26
|
|
26
27
|
|
27
28
|
var _proto = ASTCache.prototype;
|
@@ -26,6 +26,7 @@ var _require2 = require('immutable'),
|
|
26
26
|
* For each document, the context stores the IR and any validation errors.
|
27
27
|
*/
|
28
28
|
var CompilerContext = /*#__PURE__*/function () {
|
29
|
+
// $FlowFixMe[value-as-type]
|
29
30
|
function CompilerContext(schema) {
|
30
31
|
this._isMutable = false;
|
31
32
|
this._documents = new ImmutableOrderedMap();
|
@@ -10,11 +10,9 @@
|
|
10
10
|
// flowlint ambiguous-object-type:error
|
11
11
|
'use strict';
|
12
12
|
|
13
|
-
|
13
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
15
|
+
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
18
16
|
|
19
17
|
var _require = require('graphql'),
|
20
18
|
GraphQLError = _require.GraphQLError;
|
@@ -82,7 +80,7 @@ function createCompilerError(message, locations, nodes) {
|
|
82
80
|
function eachWithCombinedError(iterable, fn) {
|
83
81
|
var errors = [];
|
84
82
|
|
85
|
-
var _iterator =
|
83
|
+
var _iterator = (0, _createForOfIteratorHelper2["default"])(iterable),
|
86
84
|
_step;
|
87
85
|
|
88
86
|
try {
|
@@ -107,7 +105,9 @@ function eachWithCombinedError(iterable, fn) {
|
|
107
105
|
|
108
106
|
if (errors.length > 0) {
|
109
107
|
if (errors.length === 1) {
|
110
|
-
throw errors[0]
|
108
|
+
throw createUserError(String(errors[0]).split('\n').map(function (line, index) {
|
109
|
+
return index === 0 ? "- ".concat(line) : " ".concat(line);
|
110
|
+
}).join('\n'));
|
111
111
|
}
|
112
112
|
|
113
113
|
throw createUserError("Encountered ".concat(errors.length, " errors:\n") + errors.map(function (error) {
|
@@ -121,7 +121,7 @@ function eachWithCombinedError(iterable, fn) {
|
|
121
121
|
function printLocations(locations) {
|
122
122
|
var printedLocations = [];
|
123
123
|
|
124
|
-
var _iterator2 =
|
124
|
+
var _iterator2 = (0, _createForOfIteratorHelper2["default"])(locations),
|
125
125
|
_step2;
|
126
126
|
|
127
127
|
try {
|
@@ -196,7 +196,7 @@ function printPrefixedLines(lines) {
|
|
196
196
|
});
|
197
197
|
var padLen = 0;
|
198
198
|
|
199
|
-
var _iterator3 =
|
199
|
+
var _iterator3 = (0, _createForOfIteratorHelper2["default"])(existingLines),
|
200
200
|
_step3;
|
201
201
|
|
202
202
|
try {
|
package/lib/core/IRPrinter.js
CHANGED
@@ -295,11 +295,10 @@ function printValue(schema, value, type) {
|
|
295
295
|
if (value.kind === 'Variable') {
|
296
296
|
return '$' + value.variableName;
|
297
297
|
} else if (value.kind === 'ObjectValue') {
|
298
|
-
|
299
|
-
var inputType = schema.assertInputObjectType(type);
|
298
|
+
var inputType = type != null ? schema.asInputObjectType(type) : null;
|
300
299
|
var pairs = value.fields.map(function (field) {
|
301
|
-
var fieldConfig =
|
302
|
-
var innerValue =
|
300
|
+
var fieldConfig = inputType != null ? schema.hasField(inputType, field.name) ? schema.getFieldConfig(schema.expectField(inputType, field.name)) : null : null;
|
301
|
+
var innerValue = printValue(schema, field.value, fieldConfig === null || fieldConfig === void 0 ? void 0 : fieldConfig.type);
|
303
302
|
return innerValue == null ? null : field.name + ': ' + innerValue;
|
304
303
|
}).filter(Boolean);
|
305
304
|
return '{' + pairs.join(', ') + '}';
|
@@ -12,11 +12,7 @@
|
|
12
12
|
|
13
13
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
14
14
|
|
15
|
-
var
|
16
|
-
|
17
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
18
|
-
|
19
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
15
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
20
16
|
|
21
17
|
var invariant = require("fbjs/lib/invariant");
|
22
18
|
|
@@ -297,7 +293,7 @@ var Transformer = /*#__PURE__*/function () {
|
|
297
293
|
var nextItems = _this._map(prevItems);
|
298
294
|
|
299
295
|
if (nextNode || nextItems !== prevItems) {
|
300
|
-
nextNode = nextNode ||
|
296
|
+
nextNode = nextNode || (0, _objectSpread2["default"])({}, prevNode);
|
301
297
|
nextNode[key] = nextItems;
|
302
298
|
}
|
303
299
|
});
|
@@ -311,7 +307,7 @@ var Transformer = /*#__PURE__*/function () {
|
|
311
307
|
var nextItem = _this._visit(prevItem);
|
312
308
|
|
313
309
|
if (nextNode || nextItem !== prevItem) {
|
314
|
-
nextNode = nextNode ||
|
310
|
+
nextNode = nextNode || (0, _objectSpread2["default"])({}, prevNode);
|
315
311
|
nextNode[key] = nextItem;
|
316
312
|
}
|
317
313
|
});
|
@@ -12,13 +12,9 @@
|
|
12
12
|
|
13
13
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
14
14
|
|
15
|
-
var
|
16
|
-
|
17
|
-
function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
15
|
+
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
18
16
|
|
19
|
-
|
20
|
-
|
21
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
17
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
22
18
|
|
23
19
|
var SignedSource = require('signedsource');
|
24
20
|
|
@@ -30,7 +26,7 @@ function writeForSchema(schema, licenseHeader, codegenDir, getModuleName) {
|
|
30
26
|
return schema.isEnum(type);
|
31
27
|
});
|
32
28
|
|
33
|
-
var _iterator =
|
29
|
+
var _iterator = (0, _createForOfIteratorHelper2["default"])(enumTypes),
|
34
30
|
_step;
|
35
31
|
|
36
32
|
try {
|
@@ -26,6 +26,8 @@ var DisallowTypenameOnRoot = require('../transforms/DisallowTypenameOnRoot');
|
|
26
26
|
|
27
27
|
var FieldHandleTransform = require('../transforms/FieldHandleTransform');
|
28
28
|
|
29
|
+
var FilterCompilerDirectivesTransform = require('../transforms/FilterCompilerDirectivesTransform');
|
30
|
+
|
29
31
|
var FilterDirectivesTransform = require('../transforms/FilterDirectivesTransform');
|
30
32
|
|
31
33
|
var FlattenTransform = require('../transforms/FlattenTransform');
|
@@ -42,12 +44,16 @@ var MaskTransform = require('../transforms/MaskTransform');
|
|
42
44
|
|
43
45
|
var MatchTransform = require('../transforms/MatchTransform');
|
44
46
|
|
47
|
+
var ReactFlightComponentTransform = require('../transforms/ReactFlightComponentTransform');
|
48
|
+
|
45
49
|
var RefetchableFragmentTransform = require('../transforms/RefetchableFragmentTransform');
|
46
50
|
|
47
51
|
var RelayDirectiveTransform = require('../transforms/RelayDirectiveTransform');
|
48
52
|
|
49
53
|
var RelayFlowGenerator = require('../language/javascript/RelayFlowGenerator');
|
50
54
|
|
55
|
+
var RequiredFieldTransform = require('../transforms/RequiredFieldTransform');
|
56
|
+
|
51
57
|
var SkipClientExtensionsTransform = require('../transforms/SkipClientExtensionsTransform');
|
52
58
|
|
53
59
|
var SkipHandleFieldTransform = require('../transforms/SkipHandleFieldTransform');
|
@@ -71,19 +77,19 @@ var ValidateRequiredArgumentsTransform = require('../transforms/ValidateRequired
|
|
71
77
|
var ValidateUnusedVariablesTransform = require('../transforms/ValidateUnusedVariablesTransform');
|
72
78
|
|
73
79
|
// Transforms applied to the code used to process a query response.
|
74
|
-
var relaySchemaExtensions = [ConnectionTransform.SCHEMA_EXTENSION, DeclarativeConnectionMutationTransform.SCHEMA_EXTENSION, InlineDataFragmentTransform.SCHEMA_EXTENSION, MatchTransform.SCHEMA_EXTENSION, RefetchableFragmentTransform.SCHEMA_EXTENSION, RelayDirectiveTransform.SCHEMA_EXTENSION, RelayFlowGenerator.SCHEMA_EXTENSION, TestOperationTransform.SCHEMA_EXTENSION, ValidateUnusedVariablesTransform.SCHEMA_EXTENSION]; // Transforms applied to both operations and fragments for both reading and
|
80
|
+
var relaySchemaExtensions = [ConnectionTransform.SCHEMA_EXTENSION, DeclarativeConnectionMutationTransform.SCHEMA_EXTENSION, InlineDataFragmentTransform.SCHEMA_EXTENSION, MatchTransform.SCHEMA_EXTENSION, RequiredFieldTransform.SCHEMA_EXTENSION, RefetchableFragmentTransform.SCHEMA_EXTENSION, RelayDirectiveTransform.SCHEMA_EXTENSION, RelayFlowGenerator.SCHEMA_EXTENSION, TestOperationTransform.SCHEMA_EXTENSION, ValidateUnusedVariablesTransform.SCHEMA_EXTENSION]; // Transforms applied to both operations and fragments for both reading and
|
75
81
|
// writing from the store.
|
76
82
|
|
77
|
-
var relayCommonTransforms = [DisallowIdAsAlias.transform, ConnectionTransform.transform, RelayDirectiveTransform.transform, MaskTransform.transform, MatchTransform.transform, RefetchableFragmentTransform.transform, DeferStreamTransform.transform]; // Transforms applied to fragments used for reading data from a store
|
83
|
+
var relayCommonTransforms = [DisallowIdAsAlias.transform, ConnectionTransform.transform, RelayDirectiveTransform.transform, MaskTransform.transform, MatchTransform.transform, RefetchableFragmentTransform.transform, DeferStreamTransform.transform, ReactFlightComponentTransform.transform]; // Transforms applied to fragments used for reading data from a store
|
78
84
|
|
79
85
|
var relayFragmentTransforms = [ClientExtensionsTransform.transform, FieldHandleTransform.transform, InlineDataFragmentTransform.transform, FlattenTransform.transformWithOptions({
|
80
86
|
isForCodegen: true
|
81
|
-
}), SkipRedundantNodesTransform.transform]; // Transforms applied to queries/mutations/subscriptions that are used for
|
87
|
+
}), RequiredFieldTransform.transform, SkipRedundantNodesTransform.transform]; // Transforms applied to queries/mutations/subscriptions that are used for
|
82
88
|
// fetching data from the server and parsing those responses.
|
83
89
|
|
84
90
|
var relayQueryTransforms = [SplitModuleImportTransform.transform, DisallowTypenameOnRoot.transform, ValidateUnusedVariablesTransform.transform, ApplyFragmentArgumentTransform.transform, ValidateGlobalVariablesTransform.transform, GenerateIDFieldTransform.transform, DeclarativeConnectionMutationTransform.transform]; // Transforms applied to the code used to process a query response.
|
85
91
|
|
86
|
-
var relayCodegenTransforms = [SkipUnreachableNodeTransform.transform, InlineFragmentsTransform.transform, // NOTE: For the codegen context, we make sure to run ClientExtensions
|
92
|
+
var relayCodegenTransforms = [FilterCompilerDirectivesTransform.transform, SkipUnreachableNodeTransform.transform, InlineFragmentsTransform.transform, // NOTE: For the codegen context, we make sure to run ClientExtensions
|
87
93
|
// transform after we've inlined fragment spreads (i.e. InlineFragmentsTransform)
|
88
94
|
// This will ensure that we don't generate nested ClientExtension nodes
|
89
95
|
ClientExtensionsTransform.transform, GenerateTypeNameTransform.transform, FlattenTransform.transformWithOptions({
|
package/lib/core/RelayParser.js
CHANGED
@@ -12,19 +12,11 @@
|
|
12
12
|
|
13
13
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
14
14
|
|
15
|
-
var
|
15
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
16
16
|
|
17
|
-
var
|
18
|
-
|
19
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
20
|
-
|
21
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
17
|
+
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
22
18
|
|
23
|
-
|
24
|
-
|
25
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
26
|
-
|
27
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
19
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
28
20
|
|
29
21
|
var Profiler = require('./GraphQLCompilerProfiler');
|
30
22
|
|
@@ -420,7 +412,7 @@ var GraphQLDefinitionParser = /*#__PURE__*/function () {
|
|
420
412
|
|
421
413
|
this._directiveLocations = new Map();
|
422
414
|
|
423
|
-
var _iterator =
|
415
|
+
var _iterator = (0, _createForOfIteratorHelper2["default"])(directiveDefs),
|
424
416
|
_step;
|
425
417
|
|
426
418
|
try {
|
@@ -493,7 +485,7 @@ var GraphQLDefinitionParser = /*#__PURE__*/function () {
|
|
493
485
|
|
494
486
|
var argumentDefinitions = (0, _toConsumableArray2["default"])(buildArgumentDefinitions(this._variableDefinitions));
|
495
487
|
|
496
|
-
var _iterator2 =
|
488
|
+
var _iterator2 = (0, _createForOfIteratorHelper2["default"])(this._unknownVariables),
|
497
489
|
_step2;
|
498
490
|
|
499
491
|
try {
|
@@ -623,7 +615,7 @@ var GraphQLDefinitionParser = /*#__PURE__*/function () {
|
|
623
615
|
directives = _this4$_splitConditio[1];
|
624
616
|
|
625
617
|
var conditionalNodes = applyConditions(conditions, // $FlowFixMe[incompatible-call]
|
626
|
-
[
|
618
|
+
[(0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, node), {}, {
|
627
619
|
directives: directives
|
628
620
|
})]);
|
629
621
|
|
@@ -1317,7 +1309,7 @@ function buildLocation(loc) {
|
|
1317
1309
|
function applyConditions(conditions, selections) {
|
1318
1310
|
var nextSelections = selections;
|
1319
1311
|
conditions.forEach(function (condition) {
|
1320
|
-
nextSelections = [
|
1312
|
+
nextSelections = [(0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, condition), {}, {
|
1321
1313
|
selections: nextSelections
|
1322
1314
|
})];
|
1323
1315
|
});
|
package/lib/core/Schema.js
CHANGED
@@ -13,13 +13,9 @@
|
|
13
13
|
|
14
14
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
15
15
|
|
16
|
-
var
|
17
|
-
|
18
|
-
function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
19
|
-
|
20
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
16
|
+
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
21
17
|
|
22
|
-
|
18
|
+
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
|
23
19
|
|
24
20
|
var _require = require('./CompilerError'),
|
25
21
|
createCompilerError = _require.createCompilerError;
|
@@ -198,12 +194,13 @@ var NonNull = /*#__PURE__*/function () {
|
|
198
194
|
*/
|
199
195
|
|
200
196
|
|
201
|
-
var Field = function Field(schema, name, type, belongsTo, args, isClient) {
|
197
|
+
var Field = function Field(schema, name, type, belongsTo, args, directives, isClient) {
|
202
198
|
this.name = name;
|
203
199
|
this.type = type;
|
204
200
|
this.belongsTo = belongsTo;
|
205
201
|
this.isClient = isClient;
|
206
202
|
this.args = parseInputArgumentDefinitionsMap(schema, args);
|
203
|
+
this.directives = directives;
|
207
204
|
};
|
208
205
|
/**
|
209
206
|
* @private
|
@@ -460,6 +457,27 @@ var Schema = /*#__PURE__*/function () {
|
|
460
457
|
return type;
|
461
458
|
};
|
462
459
|
|
460
|
+
_proto4.mapListItemType = function mapListItemType(type, mapper) {
|
461
|
+
if (!(type instanceof List)) {
|
462
|
+
throw createCompilerError('Expected List type');
|
463
|
+
}
|
464
|
+
|
465
|
+
var innerType = mapper(type.ofType);
|
466
|
+
var cacheKey = "[".concat(this.getTypeString(innerType), "]");
|
467
|
+
|
468
|
+
var newType = this._typeWrappersMap.get(cacheKey);
|
469
|
+
|
470
|
+
if (newType) {
|
471
|
+
return newType;
|
472
|
+
}
|
473
|
+
|
474
|
+
newType = new List(innerType);
|
475
|
+
|
476
|
+
this._typeWrappersMap.set(cacheKey, newType);
|
477
|
+
|
478
|
+
return newType;
|
479
|
+
};
|
480
|
+
|
463
481
|
_proto4.areEqualTypes = function areEqualTypes(typeA, typeB) {
|
464
482
|
if (typeA === typeB) {
|
465
483
|
return true;
|
@@ -667,6 +685,14 @@ var Schema = /*#__PURE__*/function () {
|
|
667
685
|
return type;
|
668
686
|
};
|
669
687
|
|
688
|
+
_proto4.asInputObjectType = function asInputObjectType(type) {
|
689
|
+
if (!_isInputObject(type)) {
|
690
|
+
return null;
|
691
|
+
}
|
692
|
+
|
693
|
+
return type;
|
694
|
+
};
|
695
|
+
|
670
696
|
_proto4.assertInterfaceType = function assertInterfaceType(type) {
|
671
697
|
if (!_isInterface(type)) {
|
672
698
|
throw createCompilerError("Expected ".concat(this.getTypeString(type), " to be an interface type."));
|
@@ -966,7 +992,7 @@ var Schema = /*#__PURE__*/function () {
|
|
966
992
|
var fields = this._typeMap.getFieldMap(type);
|
967
993
|
|
968
994
|
if (fields) {
|
969
|
-
var _iterator =
|
995
|
+
var _iterator = (0, _createForOfIteratorHelper2["default"])(fields),
|
970
996
|
_step;
|
971
997
|
|
972
998
|
try {
|
@@ -975,7 +1001,7 @@ var Schema = /*#__PURE__*/function () {
|
|
975
1001
|
fieldName = _step$value[0],
|
976
1002
|
fieldDefinition = _step$value[1];
|
977
1003
|
var fieldType = this.expectTypeFromAST(fieldDefinition.type);
|
978
|
-
fieldsMap.set(fieldName, new Field(this, fieldName, fieldType, this.assertCompositeType(type), fieldDefinition.arguments, fieldDefinition.isClient));
|
1004
|
+
fieldsMap.set(fieldName, new Field(this, fieldName, fieldType, this.assertCompositeType(type), fieldDefinition.arguments, fieldDefinition.directives, fieldDefinition.isClient));
|
979
1005
|
}
|
980
1006
|
} catch (err) {
|
981
1007
|
_iterator.e(err);
|
@@ -987,7 +1013,7 @@ var Schema = /*#__PURE__*/function () {
|
|
987
1013
|
var _fields = this._typeMap.getInputFieldMap(type);
|
988
1014
|
|
989
1015
|
if (_fields) {
|
990
|
-
var _iterator2 =
|
1016
|
+
var _iterator2 = (0, _createForOfIteratorHelper2["default"])(_fields),
|
991
1017
|
_step2;
|
992
1018
|
|
993
1019
|
try {
|
@@ -998,7 +1024,7 @@ var Schema = /*#__PURE__*/function () {
|
|
998
1024
|
|
999
1025
|
var _fieldType = this.expectTypeFromAST(typeNode);
|
1000
1026
|
|
1001
|
-
fieldsMap.set(_fieldName, new Field(this, _fieldName, _fieldType, type, [], false));
|
1027
|
+
fieldsMap.set(_fieldName, new Field(this, _fieldName, _fieldType, type, [], null, false));
|
1002
1028
|
}
|
1003
1029
|
} catch (err) {
|
1004
1030
|
_iterator2.e(err);
|
@@ -1028,7 +1054,7 @@ var Schema = /*#__PURE__*/function () {
|
|
1028
1054
|
var typename = this._typeNameMap.get(type);
|
1029
1055
|
|
1030
1056
|
if (!typename) {
|
1031
|
-
typename = new Field(this, TYPENAME_FIELD, this.getNonNullType(this.expectStringType()), type, [], false);
|
1057
|
+
typename = new Field(this, TYPENAME_FIELD, this.getNonNullType(this.expectStringType()), type, [], null, false);
|
1032
1058
|
|
1033
1059
|
this._typeNameMap.set(type, typename);
|
1034
1060
|
}
|
@@ -1040,7 +1066,7 @@ var Schema = /*#__PURE__*/function () {
|
|
1040
1066
|
var clientId = this._clientIdMap.get(type);
|
1041
1067
|
|
1042
1068
|
if (!clientId) {
|
1043
|
-
clientId = new Field(this, CLIENT_ID_FIELD, this.getNonNullType(this.expectIdType()), type, [], true);
|
1069
|
+
clientId = new Field(this, CLIENT_ID_FIELD, this.getNonNullType(this.expectIdType()), type, [], null, true);
|
1044
1070
|
|
1045
1071
|
this._clientIdMap.set(type, clientId);
|
1046
1072
|
}
|
@@ -1566,6 +1592,17 @@ var TypeMap = /*#__PURE__*/function () {
|
|
1566
1592
|
defaultValue: arg.defaultValue
|
1567
1593
|
};
|
1568
1594
|
}) : [],
|
1595
|
+
directives: fieldNode.directives ? fieldNode.directives.map(function (directive) {
|
1596
|
+
return {
|
1597
|
+
name: directive.name.value,
|
1598
|
+
args: directive.arguments ? directive.arguments.map(function (arg) {
|
1599
|
+
return {
|
1600
|
+
name: arg.name.value,
|
1601
|
+
value: arg.value
|
1602
|
+
};
|
1603
|
+
}) : []
|
1604
|
+
};
|
1605
|
+
}) : null,
|
1569
1606
|
type: fieldNode.type,
|
1570
1607
|
isClient: isClient
|
1571
1608
|
});
|
@@ -10,11 +10,9 @@
|
|
10
10
|
// flowlint ambiguous-object-type:error
|
11
11
|
'use strict';
|
12
12
|
|
13
|
-
|
13
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
15
|
+
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
18
16
|
|
19
17
|
var _require = require('./CompilerError'),
|
20
18
|
createCompilerError = _require.createCompilerError;
|
@@ -86,7 +84,7 @@ function getFieldDefinitionLegacyImpl(schema, type, fieldName, fieldAST) {
|
|
86
84
|
var possibleTypes = schema.getPossibleTypes(schema.assertAbstractType(rawType));
|
87
85
|
var schemaFieldDef;
|
88
86
|
|
89
|
-
var _iterator =
|
87
|
+
var _iterator = (0, _createForOfIteratorHelper2["default"])(possibleTypes),
|
90
88
|
_step;
|
91
89
|
|
92
90
|
try {
|
@@ -12,17 +12,9 @@
|
|
12
12
|
|
13
13
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
14
14
|
|
15
|
-
var
|
15
|
+
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
20
|
-
|
21
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
22
|
-
|
23
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
24
|
-
|
25
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
17
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
26
18
|
|
27
19
|
var CompilerContext = require('./CompilerContext');
|
28
20
|
|
@@ -64,7 +56,7 @@ function inferRootArgumentDefinitions(context) {
|
|
64
56
|
case 'Fragment':
|
65
57
|
{
|
66
58
|
var argumentDefinitions = transformFragmentArguments(context, transformed, node);
|
67
|
-
return
|
59
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, node), {}, {
|
68
60
|
argumentDefinitions: Array.from(argumentDefinitions.values())
|
69
61
|
});
|
70
62
|
}
|
@@ -94,7 +86,7 @@ function transformRoot(context, transformed, root) {
|
|
94
86
|
var argumentDefinitions = new Map();
|
95
87
|
var localArgumentDefinitions = new Map();
|
96
88
|
|
97
|
-
var _iterator =
|
89
|
+
var _iterator = (0, _createForOfIteratorHelper2["default"])(root.argumentDefinitions.entries()),
|
98
90
|
_step;
|
99
91
|
|
100
92
|
try {
|
@@ -114,7 +106,7 @@ function transformRoot(context, transformed, root) {
|
|
114
106
|
}
|
115
107
|
|
116
108
|
visit(context, transformed, argumentDefinitions, root);
|
117
|
-
return
|
109
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, root), {}, {
|
118
110
|
argumentDefinitions: Array.from(argumentDefinitions.values(), function (argDef) {
|
119
111
|
var _localDefinition$type, _localDefinition$defa;
|
120
112
|
|
@@ -186,7 +178,7 @@ function visit(context, transformed, argumentDefinitions, node) {
|
|
186
178
|
}); // Merge any root variables referenced by the spread fragment
|
187
179
|
// into this (parent) fragment's arguments.
|
188
180
|
|
189
|
-
var _iterator2 =
|
181
|
+
var _iterator2 = (0, _createForOfIteratorHelper2["default"])(referencedFragmentArguments.values()),
|
190
182
|
_step2;
|
191
183
|
|
192
184
|
try {
|
@@ -31,47 +31,10 @@ var BABYLON_OPTIONS = {
|
|
31
31
|
};
|
32
32
|
|
33
33
|
function find(text) {
|
34
|
-
var result = [];
|
34
|
+
var result = []; // $FlowFixMe Discovered when typing babel/parser
|
35
|
+
|
35
36
|
var ast = babylon.parse(text, BABYLON_OPTIONS);
|
36
37
|
var visitors = {
|
37
|
-
CallExpression: function CallExpression(node) {
|
38
|
-
var callee = node.callee;
|
39
|
-
|
40
|
-
if (!(callee.type === 'Identifier' && CREATE_CONTAINER_FUNCTIONS[callee.name] || callee.kind === 'MemberExpression' && callee.object.type === 'Identifier' && callee.object.value === 'Relay' && callee.property.type === 'Identifier' && CREATE_CONTAINER_FUNCTIONS[callee.property.name])) {
|
41
|
-
traverse(node, visitors);
|
42
|
-
return;
|
43
|
-
}
|
44
|
-
|
45
|
-
var fragments = node.arguments[1];
|
46
|
-
|
47
|
-
if (fragments.type === 'ObjectExpression') {
|
48
|
-
fragments.properties.forEach(function (property) {
|
49
|
-
!(property.type === 'ObjectProperty' && property.key.type === 'Identifier' && property.value.type === 'TaggedTemplateExpression') ? process.env.NODE_ENV !== "production" ? invariant(false, 'FindGraphQLTags: `%s` expects fragment definitions to be ' + '`key: graphql`.', node.callee.name) : invariant(false) : void 0;
|
50
|
-
!isGraphQLModernOrDeprecatedTag(property.value.tag) ? process.env.NODE_ENV !== "production" ? invariant(false, 'FindGraphQLTags: `%s` expects fragment definitions to be tagged ' + 'with `graphql`, got `%s`.', node.callee.name, getSourceTextForLocation(text, property.value.tag.loc)) : invariant(false) : void 0;
|
51
|
-
|
52
|
-
if (isGraphQLTag(property.value.tag)) {
|
53
|
-
result.push({
|
54
|
-
keyName: property.key.name,
|
55
|
-
template: getGraphQLText(property.value.quasi),
|
56
|
-
sourceLocationOffset: getSourceLocationOffset(property.value.quasi)
|
57
|
-
});
|
58
|
-
}
|
59
|
-
});
|
60
|
-
} else {
|
61
|
-
!(fragments && fragments.type === 'TaggedTemplateExpression') ? process.env.NODE_ENV !== "production" ? invariant(false, 'FindGraphQLTags: `%s` expects a second argument of fragment ' + 'definitions.', node.callee.name) : invariant(false) : void 0;
|
62
|
-
!isGraphQLModernOrDeprecatedTag(fragments.tag) ? process.env.NODE_ENV !== "production" ? invariant(false, 'FindGraphQLTags: `%s` expects fragment definitions to be tagged ' + 'with `graphql`, got `%s`.', node.callee.name, getSourceTextForLocation(text, fragments.tag.loc)) : invariant(false) : void 0;
|
63
|
-
result.push({
|
64
|
-
keyName: null,
|
65
|
-
template: getGraphQLText(fragments.quasi),
|
66
|
-
sourceLocationOffset: getSourceLocationOffset(fragments.quasi)
|
67
|
-
});
|
68
|
-
} // Visit remaining arguments
|
69
|
-
|
70
|
-
|
71
|
-
for (var ii = 2; ii < node.arguments.length; ii++) {
|
72
|
-
visit(node.arguments[ii], visitors);
|
73
|
-
}
|
74
|
-
},
|
75
38
|
TaggedTemplateExpression: function TaggedTemplateExpression(node) {
|
76
39
|
if (isGraphQLTag(node.tag)) {
|
77
40
|
result.push({
|
@@ -86,17 +49,6 @@ function find(text) {
|
|
86
49
|
return result;
|
87
50
|
}
|
88
51
|
|
89
|
-
var CREATE_CONTAINER_FUNCTIONS = Object.create(null, {
|
90
|
-
createFragmentContainer: {
|
91
|
-
value: true
|
92
|
-
},
|
93
|
-
createPaginationContainer: {
|
94
|
-
value: true
|
95
|
-
},
|
96
|
-
createRefetchContainer: {
|
97
|
-
value: true
|
98
|
-
}
|
99
|
-
});
|
100
52
|
var IGNORED_KEYS = {
|
101
53
|
comments: true,
|
102
54
|
end: true,
|
@@ -112,20 +64,12 @@ function isGraphQLTag(tag) {
|
|
112
64
|
return tag.type === 'Identifier' && tag.name === 'graphql';
|
113
65
|
}
|
114
66
|
|
115
|
-
function isGraphQLModernOrDeprecatedTag(tag) {
|
116
|
-
return tag.type === 'Identifier' && (tag.name === 'graphql' || tag.name === 'graphql_DEPRECATED');
|
117
|
-
}
|
118
|
-
|
119
67
|
function getTemplateNode(quasi) {
|
120
68
|
var quasis = quasi.quasis;
|
121
69
|
!(quasis && quasis.length === 1) ? process.env.NODE_ENV !== "production" ? invariant(false, 'FindGraphQLTags: Substitutions are not allowed in graphql tags.') : invariant(false) : void 0;
|
122
70
|
return quasis[0];
|
123
71
|
}
|
124
72
|
|
125
|
-
function getGraphQLText(quasi) {
|
126
|
-
return getTemplateNode(quasi).value.raw;
|
127
|
-
}
|
128
|
-
|
129
73
|
function getSourceLocationOffset(quasi) {
|
130
74
|
var loc = getTemplateNode(quasi).loc.start;
|
131
75
|
return {
|
@@ -135,17 +79,6 @@ function getSourceLocationOffset(quasi) {
|
|
135
79
|
};
|
136
80
|
}
|
137
81
|
|
138
|
-
function getSourceTextForLocation(text, loc) {
|
139
|
-
if (loc == null) {
|
140
|
-
return '(source unavailable)';
|
141
|
-
}
|
142
|
-
|
143
|
-
var lines = text.split('\n').slice(loc.start.line - 1, loc.end.line);
|
144
|
-
lines[0] = lines[0].slice(loc.start.column);
|
145
|
-
lines[lines.length - 1] = lines[lines.length - 1].slice(0, loc.end.column);
|
146
|
-
return lines.join('\n');
|
147
|
-
}
|
148
|
-
|
149
82
|
function invariant(condition, msg) {
|
150
83
|
if (!condition) {
|
151
84
|
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
@@ -157,6 +90,7 @@ function invariant(condition, msg) {
|
|
157
90
|
}
|
158
91
|
|
159
92
|
function visit(node, visitors) {
|
93
|
+
// $FlowFixMe Discovered when typing babel
|
160
94
|
var fn = visitors[node.type];
|
161
95
|
|
162
96
|
if (fn != null) {
|