relay-compiler 0.0.0-main-8ff54d69 → 0.0.0-main-38f1c96e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.js +23 -0
- package/index.js +19 -3
- package/linux-x64/relay +0 -0
- package/macos-x64/relay +0 -0
- package/package.json +2 -24
- package/win-x64/relay.exe +0 -0
- package/bin/RelayCompilerBin.js.flow +0 -168
- package/bin/RelayCompilerMain.js.flow +0 -515
- package/bin/__fixtures__/plugin-module.js.flow +0 -17
- package/bin/relay-compiler +0 -19068
- package/codegen/CodegenDirectory.js.flow +0 -372
- package/codegen/CodegenRunner.js.flow +0 -424
- package/codegen/CodegenTypes.js.flow +0 -28
- package/codegen/CodegenWatcher.js.flow +0 -250
- package/codegen/NormalizationCodeGenerator.js.flow +0 -566
- package/codegen/ReaderCodeGenerator.js.flow +0 -510
- package/codegen/RelayCodeGenerator.js.flow +0 -85
- package/codegen/RelayFileWriter.js.flow +0 -365
- package/codegen/SourceControl.js.flow +0 -58
- package/codegen/compileRelayArtifacts.js.flow +0 -181
- package/codegen/createPrintRequireModuleDependency.js.flow +0 -19
- package/codegen/sortObjectByKey.js.flow +0 -25
- package/codegen/writeRelayGeneratedFile.js.flow +0 -235
- package/core/ASTCache.js.flow +0 -73
- package/core/ASTConvert.js.flow +0 -230
- package/core/CompilerContext.js.flow +0 -189
- package/core/CompilerError.js.flow +0 -255
- package/core/DotGraphQLParser.js.flow +0 -37
- package/core/GraphQLCompilerProfiler.js.flow +0 -341
- package/core/GraphQLDerivedFromMetadata.js.flow +0 -36
- package/core/GraphQLWatchmanClient.js.flow +0 -109
- package/core/IR.js.flow +0 -326
- package/core/IRPrinter.js.flow +0 -472
- package/core/IRTransformer.js.flow +0 -376
- package/core/IRValidator.js.flow +0 -259
- package/core/IRVisitor.js.flow +0 -150
- package/core/JSModuleParser.js.flow +0 -24
- package/core/RelayCompilerScope.js.flow +0 -199
- package/core/RelayFindGraphQLTags.js.flow +0 -118
- package/core/RelayGraphQLEnumsGenerator.js.flow +0 -55
- package/core/RelayIRTransforms.js.flow +0 -138
- package/core/RelayParser.js.flow +0 -1741
- package/core/RelaySourceModuleParser.js.flow +0 -133
- package/core/Schema.js.flow +0 -2035
- package/core/SchemaUtils.js.flow +0 -120
- package/core/filterContextForNode.js.flow +0 -49
- package/core/getFieldDefinition.js.flow +0 -156
- package/core/getIdentifierForArgumentValue.js.flow +0 -49
- package/core/getIdentifierForSelection.js.flow +0 -68
- package/core/getLiteralArgumentValues.js.flow +0 -32
- package/core/getNormalizationOperationName.js.flow +0 -19
- package/core/inferRootArgumentDefinitions.js.flow +0 -322
- package/index.js.flow +0 -198
- package/language/RelayLanguagePluginInterface.js.flow +0 -283
- package/language/javascript/FindGraphQLTags.js.flow +0 -136
- package/language/javascript/RelayFlowBabelFactories.js.flow +0 -176
- package/language/javascript/RelayFlowGenerator.js.flow +0 -1096
- package/language/javascript/RelayFlowTypeTransformers.js.flow +0 -181
- package/language/javascript/RelayLanguagePluginJavaScript.js.flow +0 -33
- package/language/javascript/formatGeneratedModule.js.flow +0 -65
- package/lib/bin/RelayCompilerBin.js +0 -143
- package/lib/bin/RelayCompilerMain.js +0 -488
- package/lib/bin/__fixtures__/plugin-module.js +0 -16
- package/lib/codegen/CodegenDirectory.js +0 -335
- package/lib/codegen/CodegenRunner.js +0 -433
- package/lib/codegen/CodegenTypes.js +0 -11
- package/lib/codegen/CodegenWatcher.js +0 -271
- package/lib/codegen/NormalizationCodeGenerator.js +0 -487
- package/lib/codegen/ReaderCodeGenerator.js +0 -473
- package/lib/codegen/RelayCodeGenerator.js +0 -75
- package/lib/codegen/RelayFileWriter.js +0 -270
- package/lib/codegen/SourceControl.js +0 -60
- package/lib/codegen/compileRelayArtifacts.js +0 -157
- package/lib/codegen/createPrintRequireModuleDependency.js +0 -19
- package/lib/codegen/sortObjectByKey.js +0 -41
- package/lib/codegen/writeRelayGeneratedFile.js +0 -206
- package/lib/core/ASTCache.js +0 -70
- package/lib/core/ASTConvert.js +0 -198
- package/lib/core/CompilerContext.js +0 -165
- package/lib/core/CompilerError.js +0 -252
- package/lib/core/DotGraphQLParser.js +0 -40
- package/lib/core/GraphQLCompilerProfiler.js +0 -299
- package/lib/core/GraphQLDerivedFromMetadata.js +0 -31
- package/lib/core/GraphQLWatchmanClient.js +0 -150
- package/lib/core/IR.js +0 -11
- package/lib/core/IRPrinter.js +0 -388
- package/lib/core/IRTransformer.js +0 -345
- package/lib/core/IRValidator.js +0 -226
- package/lib/core/IRVisitor.js +0 -45
- package/lib/core/JSModuleParser.js +0 -18
- package/lib/core/RelayCompilerScope.js +0 -183
- package/lib/core/RelayFindGraphQLTags.js +0 -79
- package/lib/core/RelayGraphQLEnumsGenerator.js +0 -50
- package/lib/core/RelayIRTransforms.js +0 -109
- package/lib/core/RelayParser.js +0 -1381
- package/lib/core/RelaySourceModuleParser.js +0 -104
- package/lib/core/Schema.js +0 -1877
- package/lib/core/SchemaUtils.js +0 -98
- package/lib/core/filterContextForNode.js +0 -50
- package/lib/core/getFieldDefinition.js +0 -145
- package/lib/core/getIdentifierForArgumentValue.js +0 -54
- package/lib/core/getIdentifierForSelection.js +0 -49
- package/lib/core/getLiteralArgumentValues.js +0 -26
- package/lib/core/getNormalizationOperationName.js +0 -17
- package/lib/core/inferRootArgumentDefinitions.js +0 -351
- package/lib/index.js +0 -178
- package/lib/language/RelayLanguagePluginInterface.js +0 -26
- package/lib/language/javascript/FindGraphQLTags.js +0 -126
- package/lib/language/javascript/RelayFlowBabelFactories.js +0 -160
- package/lib/language/javascript/RelayFlowGenerator.js +0 -856
- package/lib/language/javascript/RelayFlowTypeTransformers.js +0 -119
- package/lib/language/javascript/RelayLanguagePluginJavaScript.js +0 -30
- package/lib/language/javascript/formatGeneratedModule.js +0 -36
- package/lib/reporters/ConsoleReporter.js +0 -61
- package/lib/reporters/MultiReporter.js +0 -45
- package/lib/reporters/Reporter.js +0 -11
- package/lib/runner/Artifacts.js +0 -323
- package/lib/runner/BufferedFilesystem.js +0 -262
- package/lib/runner/GraphQLASTNodeGroup.js +0 -256
- package/lib/runner/GraphQLASTUtils.js +0 -23
- package/lib/runner/GraphQLNodeMap.js +0 -81
- package/lib/runner/Sources.js +0 -271
- package/lib/runner/StrictMap.js +0 -134
- package/lib/runner/compileArtifacts.js +0 -39
- package/lib/runner/extractAST.js +0 -77
- package/lib/runner/getChangedNodeNames.js +0 -82
- package/lib/runner/getSchemaInstance.js +0 -30
- package/lib/runner/types.js +0 -12
- package/lib/test-utils/TestSchema.js +0 -27
- package/lib/test-utils/parseGraphQLText.js +0 -30
- package/lib/transforms/ApplyFragmentArgumentTransform.js +0 -393
- package/lib/transforms/ClientExtensionsTransform.js +0 -221
- package/lib/transforms/ConnectionTransform.js +0 -639
- package/lib/transforms/DeclarativeConnectionMutationTransform.js +0 -218
- package/lib/transforms/DeferStreamTransform.js +0 -246
- package/lib/transforms/DisallowIdAsAlias.js +0 -40
- package/lib/transforms/DisallowTypenameOnRoot.js +0 -53
- package/lib/transforms/FieldHandleTransform.js +0 -79
- package/lib/transforms/FilterCompilerDirectivesTransform.js +0 -29
- package/lib/transforms/FilterDirectivesTransform.js +0 -42
- package/lib/transforms/FlattenTransform.js +0 -306
- package/lib/transforms/GenerateIDFieldTransform.js +0 -135
- package/lib/transforms/GenerateTypeNameTransform.js +0 -149
- package/lib/transforms/InlineDataFragmentTransform.js +0 -100
- package/lib/transforms/InlineFragmentsTransform.js +0 -61
- package/lib/transforms/MaskTransform.js +0 -117
- package/lib/transforms/MatchTransform.js +0 -434
- package/lib/transforms/ReactFlightComponentTransform.js +0 -158
- package/lib/transforms/RefetchableFragmentTransform.js +0 -249
- package/lib/transforms/RelayDirectiveTransform.js +0 -83
- package/lib/transforms/RequiredFieldTransform.js +0 -369
- package/lib/transforms/SkipClientExtensionsTransform.js +0 -46
- package/lib/transforms/SkipHandleFieldTransform.js +0 -45
- package/lib/transforms/SkipRedundantNodesTransform.js +0 -261
- package/lib/transforms/SkipSplitOperationTransform.js +0 -32
- package/lib/transforms/SkipUnreachableNodeTransform.js +0 -158
- package/lib/transforms/SkipUnusedVariablesTransform.js +0 -75
- package/lib/transforms/SplitModuleImportTransform.js +0 -82
- package/lib/transforms/TestOperationTransform.js +0 -144
- package/lib/transforms/TransformUtils.js +0 -21
- package/lib/transforms/ValidateGlobalVariablesTransform.js +0 -92
- package/lib/transforms/ValidateRequiredArgumentsTransform.js +0 -114
- package/lib/transforms/ValidateServerOnlyDirectivesTransform.js +0 -108
- package/lib/transforms/ValidateUnusedVariablesTransform.js +0 -96
- package/lib/transforms/query-generators/FetchableQueryGenerator.js +0 -157
- package/lib/transforms/query-generators/NodeQueryGenerator.js +0 -166
- package/lib/transforms/query-generators/QueryQueryGenerator.js +0 -48
- package/lib/transforms/query-generators/ViewerQueryGenerator.js +0 -77
- package/lib/transforms/query-generators/index.js +0 -60
- package/lib/transforms/query-generators/utils.js +0 -92
- package/lib/util/CodeMarker.js +0 -80
- package/lib/util/DefaultHandleKey.js +0 -15
- package/lib/util/RelayCompilerCache.js +0 -97
- package/lib/util/Rollout.js +0 -40
- package/lib/util/TimeReporter.js +0 -83
- package/lib/util/areEqualArgValues.js +0 -135
- package/lib/util/argumentContainsVariables.js +0 -37
- package/lib/util/dedupeJSONStringify.js +0 -160
- package/lib/util/generateAbstractTypeRefinementKey.js +0 -24
- package/lib/util/getDefinitionNodeHash.js +0 -22
- package/lib/util/getModuleName.js +0 -32
- package/lib/util/joinArgumentDefinitions.js +0 -67
- package/lib/util/md5.js +0 -17
- package/lib/util/murmurHash.js +0 -86
- package/lib/util/nullthrowsOSS.js +0 -23
- package/lib/util/orList.js +0 -36
- package/lib/util/partitionArray.js +0 -35
- package/relay-compiler.js +0 -17
- package/relay-compiler.min.js +0 -22
- package/reporters/ConsoleReporter.js.flow +0 -81
- package/reporters/MultiReporter.js.flow +0 -43
- package/reporters/Reporter.js.flow +0 -19
- package/runner/Artifacts.js.flow +0 -215
- package/runner/BufferedFilesystem.js.flow +0 -194
- package/runner/GraphQLASTNodeGroup.js.flow +0 -174
- package/runner/GraphQLASTUtils.js.flow +0 -26
- package/runner/GraphQLNodeMap.js.flow +0 -55
- package/runner/Sources.js.flow +0 -227
- package/runner/StrictMap.js.flow +0 -96
- package/runner/compileArtifacts.js.flow +0 -75
- package/runner/extractAST.js.flow +0 -98
- package/runner/getChangedNodeNames.js.flow +0 -48
- package/runner/getSchemaInstance.js.flow +0 -36
- package/runner/types.js.flow +0 -37
- package/test-utils/TestSchema.js.flow +0 -30
- package/test-utils/parseGraphQLText.js.flow +0 -41
- package/transforms/ApplyFragmentArgumentTransform.js.flow +0 -524
- package/transforms/ClientExtensionsTransform.js.flow +0 -224
- package/transforms/ConnectionTransform.js.flow +0 -850
- package/transforms/DeclarativeConnectionMutationTransform.js.flow +0 -245
- package/transforms/DeferStreamTransform.js.flow +0 -263
- package/transforms/DisallowIdAsAlias.js.flow +0 -46
- package/transforms/DisallowTypenameOnRoot.js.flow +0 -44
- package/transforms/FieldHandleTransform.js.flow +0 -77
- package/transforms/FilterCompilerDirectivesTransform.js.flow +0 -33
- package/transforms/FilterDirectivesTransform.js.flow +0 -45
- package/transforms/FlattenTransform.js.flow +0 -458
- package/transforms/GenerateIDFieldTransform.js.flow +0 -151
- package/transforms/GenerateTypeNameTransform.js.flow +0 -159
- package/transforms/InlineDataFragmentTransform.js.flow +0 -123
- package/transforms/InlineFragmentsTransform.js.flow +0 -70
- package/transforms/MaskTransform.js.flow +0 -124
- package/transforms/MatchTransform.js.flow +0 -587
- package/transforms/ReactFlightComponentTransform.js.flow +0 -207
- package/transforms/RefetchableFragmentTransform.js.flow +0 -266
- package/transforms/RelayDirectiveTransform.js.flow +0 -96
- package/transforms/RequiredFieldTransform.js.flow +0 -413
- package/transforms/SkipClientExtensionsTransform.js.flow +0 -54
- package/transforms/SkipHandleFieldTransform.js.flow +0 -44
- package/transforms/SkipRedundantNodesTransform.js.flow +0 -277
- package/transforms/SkipSplitOperationTransform.js.flow +0 -37
- package/transforms/SkipUnreachableNodeTransform.js.flow +0 -148
- package/transforms/SkipUnusedVariablesTransform.js.flow +0 -59
- package/transforms/SplitModuleImportTransform.js.flow +0 -97
- package/transforms/TestOperationTransform.js.flow +0 -142
- package/transforms/TransformUtils.js.flow +0 -26
- package/transforms/ValidateGlobalVariablesTransform.js.flow +0 -80
- package/transforms/ValidateRequiredArgumentsTransform.js.flow +0 -130
- package/transforms/ValidateServerOnlyDirectivesTransform.js.flow +0 -128
- package/transforms/ValidateUnusedVariablesTransform.js.flow +0 -88
- package/transforms/query-generators/FetchableQueryGenerator.js.flow +0 -188
- package/transforms/query-generators/NodeQueryGenerator.js.flow +0 -217
- package/transforms/query-generators/QueryQueryGenerator.js.flow +0 -57
- package/transforms/query-generators/ViewerQueryGenerator.js.flow +0 -97
- package/transforms/query-generators/index.js.flow +0 -89
- package/transforms/query-generators/utils.js.flow +0 -76
- package/util/CodeMarker.js.flow +0 -79
- package/util/DefaultHandleKey.js.flow +0 -17
- package/util/RelayCompilerCache.js.flow +0 -86
- package/util/Rollout.js.flow +0 -39
- package/util/TimeReporter.js.flow +0 -79
- package/util/areEqualArgValues.js.flow +0 -126
- package/util/argumentContainsVariables.js.flow +0 -38
- package/util/dedupeJSONStringify.js.flow +0 -156
- package/util/generateAbstractTypeRefinementKey.js.flow +0 -29
- package/util/getDefinitionNodeHash.js.flow +0 -24
- package/util/getModuleName.js.flow +0 -39
- package/util/joinArgumentDefinitions.js.flow +0 -105
- package/util/md5.js.flow +0 -19
- package/util/murmurHash.js.flow +0 -94
- package/util/nullthrowsOSS.js.flow +0 -25
- package/util/orList.js.flow +0 -37
- package/util/partitionArray.js.flow +0 -37
@@ -1,252 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
3
|
-
*
|
4
|
-
* This source code is licensed under the MIT license found in the
|
5
|
-
* LICENSE file in the root directory of this source tree.
|
6
|
-
*
|
7
|
-
*
|
8
|
-
* @format
|
9
|
-
*/
|
10
|
-
// flowlint ambiguous-object-type:error
|
11
|
-
'use strict';
|
12
|
-
|
13
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
14
|
-
|
15
|
-
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
16
|
-
|
17
|
-
var _require = require('graphql'),
|
18
|
-
GraphQLError = _require.GraphQLError; // Combined results of multiple user errors
|
19
|
-
|
20
|
-
|
21
|
-
/**
|
22
|
-
* Creates an error describing invalid application code (GraphQL/Schema)
|
23
|
-
* that must be fixed by the end developer. This should only be used
|
24
|
-
* for local errors that don't affect processing of other user code.
|
25
|
-
*/
|
26
|
-
function createUserError(message, locations, nodes) {
|
27
|
-
var messageWithLocations = message;
|
28
|
-
|
29
|
-
if (locations != null) {
|
30
|
-
var printedLocations = printLocations(locations);
|
31
|
-
messageWithLocations = printedLocations.length === 0 ? message : [message].concat(printedLocations).join('\n\n') + '\n';
|
32
|
-
}
|
33
|
-
|
34
|
-
return new GraphQLError(messageWithLocations, nodes !== null && nodes !== void 0 ? nodes : []);
|
35
|
-
}
|
36
|
-
/**
|
37
|
-
* Similar to createUserError but for errors that are *not* recoverable:
|
38
|
-
* the compiler should not continue to process other inputs because their
|
39
|
-
* validity can't be determined.
|
40
|
-
*/
|
41
|
-
|
42
|
-
|
43
|
-
function createNonRecoverableUserError(message, locations, nodes) {
|
44
|
-
var messageWithLocations = message;
|
45
|
-
|
46
|
-
if (locations != null) {
|
47
|
-
var printedLocations = printLocations(locations);
|
48
|
-
messageWithLocations = printedLocations.length === 0 ? message : [message].concat(printedLocations).join('\n\n') + '\n';
|
49
|
-
}
|
50
|
-
|
51
|
-
var error = new GraphQLError(messageWithLocations, nodes !== null && nodes !== void 0 ? nodes : []);
|
52
|
-
return new Error(error.message);
|
53
|
-
}
|
54
|
-
/**
|
55
|
-
* Creates an error describing a problem with the compiler itself - such
|
56
|
-
* as a broken invariant - that must be fixed within the compiler.
|
57
|
-
*/
|
58
|
-
|
59
|
-
|
60
|
-
function createCompilerError(message, locations, nodes) {
|
61
|
-
var messageWithLocations = message;
|
62
|
-
|
63
|
-
if (locations != null) {
|
64
|
-
var printedLocations = printLocations(locations);
|
65
|
-
messageWithLocations = printedLocations.length === 0 ? message : [message].concat(printedLocations).join('\n\n') + '\n';
|
66
|
-
}
|
67
|
-
|
68
|
-
var error = new GraphQLError("Internal Error: ".concat(messageWithLocations), nodes !== null && nodes !== void 0 ? nodes : []);
|
69
|
-
return new Error(error.message);
|
70
|
-
}
|
71
|
-
/**
|
72
|
-
* Iterates over the elements of some iterable value, calling the
|
73
|
-
* supplied callback for each item with a guard for user errors.
|
74
|
-
*
|
75
|
-
* Non-user errors abort the iteration and are instantly rethrown.
|
76
|
-
* User errors are collected and rethrown at the end, if multiple user errors
|
77
|
-
* occur, a combined error is thrown.
|
78
|
-
*/
|
79
|
-
|
80
|
-
|
81
|
-
function eachWithCombinedError(iterable, fn) {
|
82
|
-
var errors = [];
|
83
|
-
|
84
|
-
var _iterator = (0, _createForOfIteratorHelper2["default"])(iterable),
|
85
|
-
_step;
|
86
|
-
|
87
|
-
try {
|
88
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
89
|
-
var item = _step.value;
|
90
|
-
|
91
|
-
try {
|
92
|
-
fn(item);
|
93
|
-
} catch (error) {
|
94
|
-
if (error instanceof GraphQLError) {
|
95
|
-
errors.push(error);
|
96
|
-
} else {
|
97
|
-
throw error;
|
98
|
-
}
|
99
|
-
}
|
100
|
-
}
|
101
|
-
} catch (err) {
|
102
|
-
_iterator.e(err);
|
103
|
-
} finally {
|
104
|
-
_iterator.f();
|
105
|
-
}
|
106
|
-
|
107
|
-
if (errors.length > 0) {
|
108
|
-
if (errors.length === 1) {
|
109
|
-
throw createUserError(String(errors[0]).split('\n').map(function (line, index) {
|
110
|
-
return index === 0 ? "- ".concat(line) : " ".concat(line);
|
111
|
-
}).join('\n'));
|
112
|
-
}
|
113
|
-
|
114
|
-
throw createUserError("Encountered ".concat(errors.length, " errors:\n") + errors.map(function (error) {
|
115
|
-
return String(error).split('\n').map(function (line, index) {
|
116
|
-
return index === 0 ? "- ".concat(line) : " ".concat(line);
|
117
|
-
}).join('\n');
|
118
|
-
}).join('\n'));
|
119
|
-
}
|
120
|
-
}
|
121
|
-
|
122
|
-
function printLocations(locations) {
|
123
|
-
var printedLocations = [];
|
124
|
-
|
125
|
-
var _iterator2 = (0, _createForOfIteratorHelper2["default"])(locations),
|
126
|
-
_step2;
|
127
|
-
|
128
|
-
try {
|
129
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
130
|
-
var location = _step2.value;
|
131
|
-
var sourceLocation = location;
|
132
|
-
|
133
|
-
while (sourceLocation.kind === 'Derived') {
|
134
|
-
sourceLocation = sourceLocation.source;
|
135
|
-
}
|
136
|
-
|
137
|
-
switch (sourceLocation.kind) {
|
138
|
-
case 'Source':
|
139
|
-
{
|
140
|
-
// source location
|
141
|
-
var prefix = sourceLocation === location ? 'Source: ' : 'Source (derived): ';
|
142
|
-
printedLocations.push(prefix + highlightSourceAtLocation(sourceLocation.source, getLocation(sourceLocation.source, sourceLocation.start)));
|
143
|
-
break;
|
144
|
-
}
|
145
|
-
|
146
|
-
case 'Generated':
|
147
|
-
{
|
148
|
-
printedLocations.push('Source: (generated)');
|
149
|
-
break;
|
150
|
-
}
|
151
|
-
|
152
|
-
case 'Unknown':
|
153
|
-
{
|
154
|
-
printedLocations.push('Source: (unknown)');
|
155
|
-
break;
|
156
|
-
}
|
157
|
-
|
158
|
-
default:
|
159
|
-
{
|
160
|
-
sourceLocation;
|
161
|
-
throw createCompilerError("CompilerError: cannot print location '".concat(String(sourceLocation), "'."));
|
162
|
-
}
|
163
|
-
}
|
164
|
-
}
|
165
|
-
} catch (err) {
|
166
|
-
_iterator2.e(err);
|
167
|
-
} finally {
|
168
|
-
_iterator2.f();
|
169
|
-
}
|
170
|
-
|
171
|
-
return printedLocations;
|
172
|
-
}
|
173
|
-
/**
|
174
|
-
* Render a helpful description of the location of the error in the GraphQL
|
175
|
-
* Source document.
|
176
|
-
*/
|
177
|
-
|
178
|
-
|
179
|
-
function highlightSourceAtLocation(source, location) {
|
180
|
-
var firstLineColumnOffset = source.locationOffset.column - 1;
|
181
|
-
var body = whitespace(firstLineColumnOffset) + source.body;
|
182
|
-
var lineIndex = location.line - 1;
|
183
|
-
var lineOffset = source.locationOffset.line - 1;
|
184
|
-
var lineNum = location.line + lineOffset;
|
185
|
-
var columnOffset = location.line === 1 ? firstLineColumnOffset : 0;
|
186
|
-
var columnNum = location.column + columnOffset;
|
187
|
-
var lines = body.split(/\r\n|[\n\r]/g);
|
188
|
-
return "".concat(source.name, " (").concat(lineNum, ":").concat(columnNum, ")\n") + printPrefixedLines([// Lines specified like this: ["prefix", "string"],
|
189
|
-
["".concat(lineNum - 1, ": "), lines[lineIndex - 1]], ["".concat(lineNum, ": "), lines[lineIndex]], ['', whitespace(columnNum - 1) + '^'], ["".concat(lineNum + 1, ": "), lines[lineIndex + 1]]]);
|
190
|
-
}
|
191
|
-
|
192
|
-
function printPrefixedLines(lines) {
|
193
|
-
var existingLines = lines.filter(function (_ref) {
|
194
|
-
var _ = _ref[0],
|
195
|
-
line = _ref[1];
|
196
|
-
return line !== undefined;
|
197
|
-
});
|
198
|
-
var padLen = 0;
|
199
|
-
|
200
|
-
var _iterator3 = (0, _createForOfIteratorHelper2["default"])(existingLines),
|
201
|
-
_step3;
|
202
|
-
|
203
|
-
try {
|
204
|
-
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
205
|
-
var _step3$value = _step3.value,
|
206
|
-
prefix = _step3$value[0];
|
207
|
-
padLen = Math.max(padLen, prefix.length);
|
208
|
-
}
|
209
|
-
} catch (err) {
|
210
|
-
_iterator3.e(err);
|
211
|
-
} finally {
|
212
|
-
_iterator3.f();
|
213
|
-
}
|
214
|
-
|
215
|
-
return existingLines.map(function (_ref2) {
|
216
|
-
var prefix = _ref2[0],
|
217
|
-
line = _ref2[1];
|
218
|
-
return lpad(padLen, prefix) + line;
|
219
|
-
}).join('\n');
|
220
|
-
}
|
221
|
-
|
222
|
-
function whitespace(len) {
|
223
|
-
return Array(len + 1).join(' ');
|
224
|
-
}
|
225
|
-
|
226
|
-
function lpad(len, str) {
|
227
|
-
return whitespace(len - str.length) + str;
|
228
|
-
}
|
229
|
-
|
230
|
-
function getLocation(source, position) {
|
231
|
-
var lineRegexp = /\r\n|[\n\r]/g;
|
232
|
-
var line = 1;
|
233
|
-
var column = position + 1;
|
234
|
-
var match;
|
235
|
-
|
236
|
-
while ((match = lineRegexp.exec(source.body)) && match.index < position) {
|
237
|
-
line += 1;
|
238
|
-
column = position + 1 - (match.index + match[0].length);
|
239
|
-
}
|
240
|
-
|
241
|
-
return {
|
242
|
-
line: line,
|
243
|
-
column: column
|
244
|
-
};
|
245
|
-
}
|
246
|
-
|
247
|
-
module.exports = {
|
248
|
-
createCompilerError: createCompilerError,
|
249
|
-
createNonRecoverableUserError: createNonRecoverableUserError,
|
250
|
-
createUserError: createUserError,
|
251
|
-
eachWithCombinedError: eachWithCombinedError
|
252
|
-
};
|
@@ -1,40 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
3
|
-
*
|
4
|
-
* This source code is licensed under the MIT license found in the
|
5
|
-
* LICENSE file in the root directory of this source tree.
|
6
|
-
*
|
7
|
-
*
|
8
|
-
* @format
|
9
|
-
*/
|
10
|
-
// flowlint ambiguous-object-type:error
|
11
|
-
'use strict';
|
12
|
-
|
13
|
-
var ASTCache = require('./ASTCache');
|
14
|
-
|
15
|
-
var fs = require('fs');
|
16
|
-
|
17
|
-
var _require = require('graphql'),
|
18
|
-
Source = _require.Source,
|
19
|
-
parse = _require.parse;
|
20
|
-
|
21
|
-
var path = require('path');
|
22
|
-
|
23
|
-
function parseFile(baseDir, file) {
|
24
|
-
var text = fs.readFileSync(path.join(baseDir, file.relPath), 'utf8');
|
25
|
-
return parse(new Source(text, file.relPath), {
|
26
|
-
experimentalFragmentVariables: true
|
27
|
-
});
|
28
|
-
}
|
29
|
-
|
30
|
-
function getParser(baseDir) {
|
31
|
-
return new ASTCache({
|
32
|
-
baseDir: baseDir,
|
33
|
-
parse: parseFile
|
34
|
-
});
|
35
|
-
}
|
36
|
-
|
37
|
-
module.exports = {
|
38
|
-
parseFile: parseFile,
|
39
|
-
getParser: getParser
|
40
|
-
};
|
@@ -1,299 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
3
|
-
*
|
4
|
-
* This source code is licensed under the MIT license found in the
|
5
|
-
* LICENSE file in the root directory of this source tree.
|
6
|
-
*
|
7
|
-
*
|
8
|
-
* @format
|
9
|
-
*/
|
10
|
-
// flowlint ambiguous-object-type:error
|
11
|
-
'use strict';
|
12
|
-
|
13
|
-
var _asyncToGenerator = require("@babel/runtime/helpers/asyncToGenerator");
|
14
|
-
|
15
|
-
var invariant = require('invariant');
|
16
|
-
/**
|
17
|
-
* The compiler profiler builds a "call graph" of high level operations as a
|
18
|
-
* means of tracking time spent over the course of running the compiler.
|
19
|
-
*/
|
20
|
-
|
21
|
-
|
22
|
-
var enabled = false;
|
23
|
-
var traces = [{
|
24
|
-
ph: 'M',
|
25
|
-
pid: 0,
|
26
|
-
tid: 0,
|
27
|
-
name: 'process_name',
|
28
|
-
args: {
|
29
|
-
name: 'relay-compiler'
|
30
|
-
}
|
31
|
-
}, {
|
32
|
-
ph: 'M',
|
33
|
-
pid: 0,
|
34
|
-
tid: 0,
|
35
|
-
name: 'thread_name',
|
36
|
-
args: {
|
37
|
-
name: 'relay-compiler'
|
38
|
-
}
|
39
|
-
}];
|
40
|
-
var stack = [];
|
41
|
-
|
42
|
-
function enable() {
|
43
|
-
enabled = true;
|
44
|
-
}
|
45
|
-
|
46
|
-
function getTraces() {
|
47
|
-
return traces;
|
48
|
-
}
|
49
|
-
/**
|
50
|
-
* Run the provided function as part of a stack profile.
|
51
|
-
*/
|
52
|
-
|
53
|
-
|
54
|
-
function run(name, fn) {
|
55
|
-
return instrument(fn, name)();
|
56
|
-
}
|
57
|
-
/**
|
58
|
-
* Run the provided async function as part context in a stack profile.
|
59
|
-
* See instrumentAsyncContext() for limitations and usage notes.
|
60
|
-
*/
|
61
|
-
|
62
|
-
|
63
|
-
function asyncContext(name, fn) {
|
64
|
-
return instrumentAsyncContext(fn, name)();
|
65
|
-
}
|
66
|
-
/**
|
67
|
-
* Wait for the provided async operation as an async profile.
|
68
|
-
*/
|
69
|
-
|
70
|
-
|
71
|
-
function waitFor(name, fn) {
|
72
|
-
return instrumentWait(fn, name)();
|
73
|
-
}
|
74
|
-
/**
|
75
|
-
* Return a new instrumented sync function to be part of a stack profile.
|
76
|
-
*
|
77
|
-
* This instruments synchronous functions to be displayed in a stack
|
78
|
-
* visualization. To instrument async functions, see instrumentAsyncContext()
|
79
|
-
* and instrumentWait().
|
80
|
-
*/
|
81
|
-
|
82
|
-
|
83
|
-
function instrument(fn, name) {
|
84
|
-
var _ref;
|
85
|
-
|
86
|
-
if (!enabled) {
|
87
|
-
return fn;
|
88
|
-
}
|
89
|
-
|
90
|
-
var profileName = (_ref = name !== null && name !== void 0 ? name : // $FlowFixMe[prop-missing] - Flow no longer considers statics of functions as any
|
91
|
-
fn.displayName) !== null && _ref !== void 0 ? _ref : fn.name;
|
92
|
-
|
93
|
-
var instrumented = function instrumented() {
|
94
|
-
var traceId = start(profileName);
|
95
|
-
|
96
|
-
try {
|
97
|
-
return fn.apply(this, arguments);
|
98
|
-
} finally {
|
99
|
-
end(traceId);
|
100
|
-
}
|
101
|
-
};
|
102
|
-
|
103
|
-
instrumented.displayName = profileName;
|
104
|
-
return instrumented;
|
105
|
-
}
|
106
|
-
/**
|
107
|
-
* Return a new instrumented async function which provides context for a stack.
|
108
|
-
*
|
109
|
-
* Because the resulting profiling information will be incorporated into a
|
110
|
-
* stack visualization, the instrumented function must represent a distinct
|
111
|
-
* region of time which does not overlap with any other async context.
|
112
|
-
*
|
113
|
-
* In other words, functions instrumented with instrumentAsyncContext must not
|
114
|
-
* run in parallel via Promise.all().
|
115
|
-
*
|
116
|
-
* To instrument functions which will run in parallel, use instrumentWait().
|
117
|
-
*/
|
118
|
-
|
119
|
-
|
120
|
-
function instrumentAsyncContext(fn, name) {
|
121
|
-
var _ref2;
|
122
|
-
|
123
|
-
if (!enabled) {
|
124
|
-
return fn;
|
125
|
-
}
|
126
|
-
|
127
|
-
var profileName = (_ref2 = name !== null && name !== void 0 ? name : // $FlowFixMe[prop-missing] - Flow no longer considers statics of functions as any
|
128
|
-
fn.displayName) !== null && _ref2 !== void 0 ? _ref2 : fn.name;
|
129
|
-
|
130
|
-
var instrumented = /*#__PURE__*/function () {
|
131
|
-
var _instrumented = _asyncToGenerator(function* () {
|
132
|
-
var traceId = start(profileName);
|
133
|
-
|
134
|
-
try {
|
135
|
-
return yield fn.apply(this, arguments);
|
136
|
-
} finally {
|
137
|
-
end(traceId);
|
138
|
-
}
|
139
|
-
});
|
140
|
-
|
141
|
-
function instrumented() {
|
142
|
-
return _instrumented.apply(this, arguments);
|
143
|
-
}
|
144
|
-
|
145
|
-
return instrumented;
|
146
|
-
}();
|
147
|
-
|
148
|
-
instrumented.displayName = profileName;
|
149
|
-
return instrumented;
|
150
|
-
}
|
151
|
-
/**
|
152
|
-
* Return a new instrumented function which performs an awaited async operation.
|
153
|
-
*
|
154
|
-
* The instrumented function is not included in the overall run time of the
|
155
|
-
* compiler, instead it captures the time waiting on some asynchronous external
|
156
|
-
* resource such as network or filesystem which are often run in parallel.
|
157
|
-
*/
|
158
|
-
|
159
|
-
|
160
|
-
function instrumentWait(fn, name) {
|
161
|
-
var _ref3;
|
162
|
-
|
163
|
-
if (!enabled) {
|
164
|
-
return fn;
|
165
|
-
}
|
166
|
-
|
167
|
-
var profileName = (_ref3 = name !== null && name !== void 0 ? name : // $FlowFixMe[prop-missing] - Flow no longer considers statics of functions as any
|
168
|
-
fn.displayName) !== null && _ref3 !== void 0 ? _ref3 : fn.name;
|
169
|
-
|
170
|
-
var instrumented = /*#__PURE__*/function () {
|
171
|
-
var _instrumented2 = _asyncToGenerator(function* () {
|
172
|
-
var traceId = startWait(profileName);
|
173
|
-
|
174
|
-
try {
|
175
|
-
return yield fn.apply(this, arguments);
|
176
|
-
} finally {
|
177
|
-
end(traceId);
|
178
|
-
}
|
179
|
-
});
|
180
|
-
|
181
|
-
function instrumented() {
|
182
|
-
return _instrumented2.apply(this, arguments);
|
183
|
-
}
|
184
|
-
|
185
|
-
return instrumented;
|
186
|
-
}();
|
187
|
-
|
188
|
-
instrumented.displayName = profileName;
|
189
|
-
return instrumented;
|
190
|
-
}
|
191
|
-
|
192
|
-
var T_ZERO = process.hrtime(); // Return a Uint32 of microtime duration since program start.
|
193
|
-
|
194
|
-
function microtime() {
|
195
|
-
var hrtime = process.hrtime(T_ZERO); // eslint-disable-next-line no-bitwise
|
196
|
-
|
197
|
-
return 0 | hrtime[0] * 1e6 + Math.round(hrtime[1] / 1e3);
|
198
|
-
}
|
199
|
-
/**
|
200
|
-
* Start a stack profile with a particular name, returns an ID to pass to end().
|
201
|
-
*
|
202
|
-
* Other profiles may start before this one ends, which will be represented as
|
203
|
-
* nested operations, however all nested operations must end before this ends.
|
204
|
-
*
|
205
|
-
* In particular, be careful to end after errors.
|
206
|
-
*/
|
207
|
-
|
208
|
-
|
209
|
-
function start(name) {
|
210
|
-
var beginTrace = {
|
211
|
-
ph: 'B',
|
212
|
-
name: name,
|
213
|
-
pid: 0,
|
214
|
-
tid: 0,
|
215
|
-
ts: microtime()
|
216
|
-
};
|
217
|
-
traces.push(beginTrace);
|
218
|
-
stack.push(beginTrace);
|
219
|
-
return traces.length - 1;
|
220
|
-
}
|
221
|
-
|
222
|
-
var asyncID = 0;
|
223
|
-
/**
|
224
|
-
* Start an async wait profile with a particular name, returns an ID to pass
|
225
|
-
* to end().
|
226
|
-
*
|
227
|
-
* Other profiles may start before this one ends, which will be represented as
|
228
|
-
* nested operations, however all nested operations must end before this ends.
|
229
|
-
*
|
230
|
-
* In particular, be careful to end after errors.
|
231
|
-
*/
|
232
|
-
|
233
|
-
function startWait(name) {
|
234
|
-
traces.push({
|
235
|
-
ph: 'b',
|
236
|
-
name: name,
|
237
|
-
cat: 'wait',
|
238
|
-
id: asyncID++,
|
239
|
-
pid: 0,
|
240
|
-
tid: 0,
|
241
|
-
ts: microtime()
|
242
|
-
});
|
243
|
-
return traces.length - 1;
|
244
|
-
}
|
245
|
-
|
246
|
-
function end(traceIdx) {
|
247
|
-
var trace = traces[traceIdx];
|
248
|
-
|
249
|
-
if (trace.ph === 'b') {
|
250
|
-
traces.push({
|
251
|
-
ph: 'e',
|
252
|
-
cat: trace.cat,
|
253
|
-
name: trace.name,
|
254
|
-
id: trace.id,
|
255
|
-
pid: trace.pid,
|
256
|
-
tid: trace.tid,
|
257
|
-
ts: microtime()
|
258
|
-
});
|
259
|
-
return;
|
260
|
-
}
|
261
|
-
|
262
|
-
!(trace.ph === 'B') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Begin trace phase') : invariant(false) : void 0;
|
263
|
-
!(stack.pop() === trace) ? process.env.NODE_ENV !== "production" ? invariant(false, 'GraphQLCompilerProfiler: The profile trace %s ended before nested traces. ' + 'If it is async, try using Profile.waitFor or Profile.profileWait.', trace.name) : invariant(false) : void 0;
|
264
|
-
var prevTrace = traces[traces.length - 1];
|
265
|
-
|
266
|
-
if (trace === prevTrace) {
|
267
|
-
traces[traceIdx] = {
|
268
|
-
ph: 'X',
|
269
|
-
name: trace.name,
|
270
|
-
pid: trace.pid,
|
271
|
-
tid: trace.tid,
|
272
|
-
ts: trace.ts,
|
273
|
-
dur: microtime() - trace.ts
|
274
|
-
};
|
275
|
-
return;
|
276
|
-
}
|
277
|
-
|
278
|
-
traces.push({
|
279
|
-
ph: 'E',
|
280
|
-
name: trace.name,
|
281
|
-
pid: trace.pid,
|
282
|
-
tid: trace.tid,
|
283
|
-
ts: microtime()
|
284
|
-
});
|
285
|
-
}
|
286
|
-
|
287
|
-
module.exports = {
|
288
|
-
enable: enable,
|
289
|
-
getTraces: getTraces,
|
290
|
-
run: run,
|
291
|
-
asyncContext: asyncContext,
|
292
|
-
waitFor: waitFor,
|
293
|
-
instrument: instrument,
|
294
|
-
instrumentAsyncContext: instrumentAsyncContext,
|
295
|
-
instrumentWait: instrumentWait,
|
296
|
-
start: start,
|
297
|
-
startWait: startWait,
|
298
|
-
end: end
|
299
|
-
};
|
@@ -1,31 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
3
|
-
*
|
4
|
-
* This source code is licensed under the MIT license found in the
|
5
|
-
* LICENSE file in the root directory of this source tree.
|
6
|
-
*
|
7
|
-
*
|
8
|
-
* @format
|
9
|
-
*/
|
10
|
-
// flowlint ambiguous-object-type:error
|
11
|
-
'use strict';
|
12
|
-
|
13
|
-
/**
|
14
|
-
* Helpers to retieve the name of the document from which the input derives:
|
15
|
-
* this is either the name of the input itself (if it is not a derived node)
|
16
|
-
* or the metadata.derivedFrom property for derived nodes.
|
17
|
-
*/
|
18
|
-
// Version for generated nodes
|
19
|
-
function getReaderSourceDefinitionName(node) {
|
20
|
-
var _node$params$metadata, _node$metadata;
|
21
|
-
|
22
|
-
var _ref = node.kind === 'Request' ? [node.params.name, (_node$params$metadata = node.params.metadata) === null || _node$params$metadata === void 0 ? void 0 : _node$params$metadata.derivedFrom] : node.kind === 'SplitOperation' ? [node.name, (_node$metadata = node.metadata) === null || _node$metadata === void 0 ? void 0 : _node$metadata.derivedFrom] : [node.name, null],
|
23
|
-
name = _ref[0],
|
24
|
-
derivedFrom = _ref[1];
|
25
|
-
|
26
|
-
return typeof derivedFrom === 'string' ? derivedFrom : name;
|
27
|
-
}
|
28
|
-
|
29
|
-
module.exports = {
|
30
|
-
getReaderSourceDefinitionName: getReaderSourceDefinitionName
|
31
|
-
};
|