relay-compiler 0.0.0-main-4d287de9 → 0.0.0-main-9a79039d
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 -26
- package/win-x64/relay.exe +0 -0
- package/bin/RelayCompilerBin.js.flow +0 -168
- package/bin/RelayCompilerMain.js.flow +0 -513
- package/bin/__fixtures__/plugin-module.js.flow +0 -17
- package/bin/relay-compiler +0 -19066
- 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 -565
- 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 -1731
- 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 -486
- 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/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/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 -194
- 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 -255
- 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 -126
- package/transforms/ValidateServerOnlyDirectivesTransform.js.flow +0 -111
- 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 -152
- 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,183 +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 _require = require('./CompilerError'),
|
14
|
-
createUserError = _require.createUserError,
|
15
|
-
eachWithCombinedError = _require.eachWithCombinedError;
|
16
|
-
/**
|
17
|
-
* A scope is a mapping of the values for each argument defined by the nearest
|
18
|
-
* ancestor root or fragment of a given IR selection. A scope maps argument
|
19
|
-
* names to the argument's statically determined value, which can be either a
|
20
|
-
* variable or a literal.
|
21
|
-
*
|
22
|
-
* There are two categories of scopes: root scopes and fragment scopes.
|
23
|
-
*
|
24
|
-
* Root scopes apply to `Root` IR and their subselections, up until any fragment
|
25
|
-
* spreads. Root scopes have the property that any argument may be provided at
|
26
|
-
* runtime: even where a default value is defined, the compiler must consider
|
27
|
-
* the value to be variable. Therefore, root scopes are a mapping of argument
|
28
|
-
* name to variables of the same name:
|
29
|
-
*
|
30
|
-
* Map {
|
31
|
-
* foo: $foo
|
32
|
-
* }
|
33
|
-
*
|
34
|
-
* Fragment scopes apply to `Fragment` IR nodes and their subselections, up
|
35
|
-
* until any fragment spreads. Fragment scopes differ from root scopes in
|
36
|
-
* several ways:
|
37
|
-
* - Arguments may be overridden by the including fragment spread.
|
38
|
-
* - Arguments may import values from the root scope.
|
39
|
-
* - All other arguments must have their default values, or be null.
|
40
|
-
*
|
41
|
-
* Fragment scopes are also a mapping of argument name to value, but the value
|
42
|
-
* may also be a literal:
|
43
|
-
*
|
44
|
-
* Map {
|
45
|
-
* foo: $foo
|
46
|
-
* bar: 42
|
47
|
-
* }
|
48
|
-
*/
|
49
|
-
|
50
|
-
|
51
|
-
/**
|
52
|
-
* Creates a scope for a `Root`, with each argument mapped to a variable of the
|
53
|
-
* same name. Example:
|
54
|
-
*
|
55
|
-
* Query:
|
56
|
-
* query Foo($id: ID, $size: Int = 42) { ... }
|
57
|
-
*
|
58
|
-
* Scope:
|
59
|
-
* {
|
60
|
-
* id: $id,
|
61
|
-
* size: $size,
|
62
|
-
* }
|
63
|
-
*
|
64
|
-
* Note that even though a default value is defined for $size, the scope must
|
65
|
-
* assume that this could be overridden at runtime. The value cannot be decided
|
66
|
-
* statically and therefore is set to a variable.
|
67
|
-
*/
|
68
|
-
function getRootScope(definitions) {
|
69
|
-
var scope = {};
|
70
|
-
definitions.forEach(function (definition) {
|
71
|
-
scope[definition.name] = {
|
72
|
-
kind: 'Variable',
|
73
|
-
loc: definition.loc,
|
74
|
-
variableName: definition.name,
|
75
|
-
type: definition.type
|
76
|
-
};
|
77
|
-
});
|
78
|
-
return scope;
|
79
|
-
}
|
80
|
-
/**
|
81
|
-
* Creates a scope for a `Fragment` by translating fragment spread arguments in
|
82
|
-
* the context of a parent scope into a new scope and validating them against
|
83
|
-
* the argument definitions.
|
84
|
-
*
|
85
|
-
*
|
86
|
-
* Parent Scope:
|
87
|
-
* {
|
88
|
-
* active: $parentActive
|
89
|
-
* }
|
90
|
-
*
|
91
|
-
* Fragment Spread:
|
92
|
-
* ...Bar(size: 42, enabled: $active)
|
93
|
-
*
|
94
|
-
* Fragment:
|
95
|
-
* fragment Bar on Foo @argumentDefinitions(
|
96
|
-
* id: {type: "ID"}
|
97
|
-
* size: {type: "Int"}
|
98
|
-
* enabled: {type: "Boolean}
|
99
|
-
* scale: {type: "Int", imports: "pixelRatio"}
|
100
|
-
* )
|
101
|
-
*
|
102
|
-
* Scope:
|
103
|
-
* {
|
104
|
-
* // No argument is provided for $id, it gets the default value which in this
|
105
|
-
* // case is `null`:
|
106
|
-
* id: null,
|
107
|
-
*
|
108
|
-
* // The parent passes 42 as a literal value for $size:
|
109
|
-
* size: 42,
|
110
|
-
*
|
111
|
-
* // The parent passes a variable as the value of $enabled. This variable is
|
112
|
-
* // resolved in the parent scope to the value $parentActive, which becomes
|
113
|
-
* // the value of $enabled:
|
114
|
-
* $enabled: $parentActive,
|
115
|
-
*
|
116
|
-
* // $scale imports pixelRatio from the root scope. Since any argument in a
|
117
|
-
* // root scope maps to a variable of the same name, that means the value of
|
118
|
-
* // pixelRatio in the root is $pixelRatio:
|
119
|
-
* $scale: $pixelRatio,
|
120
|
-
* }
|
121
|
-
*/
|
122
|
-
|
123
|
-
|
124
|
-
function getFragmentScope(schema, definitions, args, parentScope, spread) {
|
125
|
-
var argMap = new Map();
|
126
|
-
args.forEach(function (arg) {
|
127
|
-
if (arg.value.kind === 'Literal') {
|
128
|
-
argMap.set(arg.name, arg.value);
|
129
|
-
} else if (arg.value.kind === 'Variable') {
|
130
|
-
argMap.set(arg.name, parentScope[arg.value.variableName]);
|
131
|
-
}
|
132
|
-
});
|
133
|
-
var fragmentScope = {};
|
134
|
-
eachWithCombinedError(definitions, function (definition) {
|
135
|
-
if (definition.kind === 'RootArgumentDefinition') {
|
136
|
-
if (argMap.has(definition.name)) {
|
137
|
-
var _argNode$loc;
|
138
|
-
|
139
|
-
var argNode = args.find(function (a) {
|
140
|
-
return a.name === definition.name;
|
141
|
-
});
|
142
|
-
throw createUserError("Unexpected argument '".concat(definition.name, "' supplied to fragment '").concat(spread.name, "'. @arguments may only be provided for variables defined in the fragment's @argumentDefinitions."), [(_argNode$loc = argNode === null || argNode === void 0 ? void 0 : argNode.loc) !== null && _argNode$loc !== void 0 ? _argNode$loc : spread.loc]);
|
143
|
-
}
|
144
|
-
|
145
|
-
fragmentScope[definition.name] = {
|
146
|
-
kind: 'Variable',
|
147
|
-
loc: definition.loc,
|
148
|
-
variableName: definition.name,
|
149
|
-
type: definition.type
|
150
|
-
};
|
151
|
-
} else {
|
152
|
-
var arg = argMap.get(definition.name);
|
153
|
-
|
154
|
-
if (arg == null || arg.kind === 'Literal' && arg.value == null) {
|
155
|
-
// No variable or literal null was passed, fall back to default
|
156
|
-
// value.
|
157
|
-
if (definition.defaultValue == null && schema.isNonNull(definition.type)) {
|
158
|
-
var _argNode$loc2;
|
159
|
-
|
160
|
-
var _argNode = args.find(function (a) {
|
161
|
-
return a.name === definition.name;
|
162
|
-
});
|
163
|
-
|
164
|
-
throw createUserError("No value found for required argument '".concat(definition.name, ": ").concat(schema.getTypeString(definition.type), "' on fragment '").concat(spread.name, "'."), [(_argNode$loc2 = _argNode === null || _argNode === void 0 ? void 0 : _argNode.loc) !== null && _argNode$loc2 !== void 0 ? _argNode$loc2 : spread.loc]);
|
165
|
-
}
|
166
|
-
|
167
|
-
fragmentScope[definition.name] = {
|
168
|
-
kind: 'Literal',
|
169
|
-
value: definition.defaultValue
|
170
|
-
};
|
171
|
-
} else {
|
172
|
-
// Variable or non-null literal.
|
173
|
-
fragmentScope[definition.name] = arg;
|
174
|
-
}
|
175
|
-
}
|
176
|
-
});
|
177
|
-
return fragmentScope;
|
178
|
-
}
|
179
|
-
|
180
|
-
module.exports = {
|
181
|
-
getFragmentScope: getFragmentScope,
|
182
|
-
getRootScope: getRootScope
|
183
|
-
};
|
@@ -1,79 +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 getModuleName = require('../util/getModuleName');
|
14
|
-
|
15
|
-
var RelayCompilerCache = require('../util/RelayCompilerCache');
|
16
|
-
|
17
|
-
var graphql = require('graphql');
|
18
|
-
|
19
|
-
var path = require('path');
|
20
|
-
|
21
|
-
var util = require('util');
|
22
|
-
|
23
|
-
var cache = new RelayCompilerCache('RelayFindGraphQLTags', 'v1');
|
24
|
-
|
25
|
-
function memoizedFind(tagFinder, text, baseDir, file) {
|
26
|
-
!file.exists ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayFindGraphQLTags: Called with non-existent file `%s`', file.relPath) : invariant(false) : void 0;
|
27
|
-
return cache.getOrCompute(file.hash, find.bind(null, tagFinder, text, path.join(baseDir, file.relPath)));
|
28
|
-
}
|
29
|
-
|
30
|
-
function find(tagFinder, text, absPath) {
|
31
|
-
var tags = tagFinder(text, absPath);
|
32
|
-
var moduleName = getModuleName(absPath);
|
33
|
-
tags.forEach(function (tag) {
|
34
|
-
return validateTemplate(tag, moduleName, absPath);
|
35
|
-
});
|
36
|
-
return tags.map(function (tag) {
|
37
|
-
return tag.template;
|
38
|
-
});
|
39
|
-
}
|
40
|
-
|
41
|
-
function validateTemplate(_ref, moduleName, filePath) {
|
42
|
-
var template = _ref.template,
|
43
|
-
keyName = _ref.keyName,
|
44
|
-
sourceLocationOffset = _ref.sourceLocationOffset;
|
45
|
-
var ast = graphql.parse(new graphql.Source(template, filePath, sourceLocationOffset));
|
46
|
-
ast.definitions.forEach(function (def) {
|
47
|
-
if (def.kind === 'OperationDefinition') {
|
48
|
-
!(def.name != null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayFindGraphQLTags: In module `%s`, an operation requires a name.', moduleName, def.kind) : invariant(false) : void 0;
|
49
|
-
var definitionName = def.name.value;
|
50
|
-
var operationNameParts = definitionName.match(/^(.*)(Mutation|Query|Subscription)$/);
|
51
|
-
!(operationNameParts && definitionName.startsWith(moduleName)) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayFindGraphQLTags: Operation names in graphql tags must be prefixed ' + 'with the module name and end in "Mutation", "Query", or ' + '"Subscription". Got `%s` in module `%s`.', definitionName, moduleName) : invariant(false) : void 0;
|
52
|
-
} else if (def.kind === 'FragmentDefinition') {
|
53
|
-
var _definitionName = def.name.value;
|
54
|
-
|
55
|
-
if (keyName != null) {
|
56
|
-
!(_definitionName === moduleName + '_' + keyName) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayFindGraphQLTags: Container fragment names must be ' + '`<ModuleName>_<propName>`. Got `%s`, expected `%s`.', _definitionName, moduleName + '_' + keyName) : invariant(false) : void 0;
|
57
|
-
} else {
|
58
|
-
!_definitionName.startsWith(moduleName) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayFindGraphQLTags: Fragment names in graphql tags must be prefixed ' + 'with the module name. Got `%s` in module `%s`.', _definitionName, moduleName) : invariant(false) : void 0;
|
59
|
-
}
|
60
|
-
}
|
61
|
-
});
|
62
|
-
} // TODO: Not sure why this is defined here rather than imported, is it so that it doesn’t get stripped in prod?
|
63
|
-
|
64
|
-
|
65
|
-
function invariant(condition, msg) {
|
66
|
-
if (!condition) {
|
67
|
-
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
68
|
-
args[_key - 2] = arguments[_key];
|
69
|
-
}
|
70
|
-
|
71
|
-
throw new Error(util.format.apply(util, [msg].concat(args)));
|
72
|
-
}
|
73
|
-
}
|
74
|
-
|
75
|
-
module.exports = {
|
76
|
-
find: find,
|
77
|
-
// Exported for testing only.
|
78
|
-
memoizedFind: memoizedFind
|
79
|
-
};
|
@@ -1,50 +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 _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
18
|
-
|
19
|
-
var SignedSource = require('signedsource');
|
20
|
-
|
21
|
-
function writeForSchema(schema, licenseHeader, codegenDir, getModuleName) {
|
22
|
-
var header = '/**\n' + licenseHeader.map(function (line) {
|
23
|
-
return " * ".concat(line, "\n");
|
24
|
-
}).join('') + ' *\n' + " * ".concat(SignedSource.getSigningToken(), "\n") + ' * @flow strict\n' + ' */\n' + '\n';
|
25
|
-
var enumTypes = schema.getTypes().filter(function (type) {
|
26
|
-
return schema.isEnum(type);
|
27
|
-
});
|
28
|
-
|
29
|
-
var _iterator = (0, _createForOfIteratorHelper2["default"])(enumTypes),
|
30
|
-
_step;
|
31
|
-
|
32
|
-
try {
|
33
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
34
|
-
var type = _step.value;
|
35
|
-
var enumType = schema.assertEnumType(type);
|
36
|
-
var name = schema.getTypeString(type);
|
37
|
-
var values = (0, _toConsumableArray2["default"])(schema.getEnumValues(enumType)).sort();
|
38
|
-
var enumFileContent = header + "export type ".concat(name, " =\n | '") + values.join("'\n | '") + "'\n | '%future added value';\n";
|
39
|
-
codegenDir.writeFile("".concat(getModuleName(name), ".js"), SignedSource.signFile(enumFileContent));
|
40
|
-
}
|
41
|
-
} catch (err) {
|
42
|
-
_iterator.e(err);
|
43
|
-
} finally {
|
44
|
-
_iterator.f();
|
45
|
-
}
|
46
|
-
}
|
47
|
-
|
48
|
-
module.exports = {
|
49
|
-
writeForSchema: writeForSchema
|
50
|
-
};
|
@@ -1,109 +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 RelayFlowGenerator = require('../language/javascript/RelayFlowGenerator');
|
14
|
-
|
15
|
-
var ApplyFragmentArgumentTransform = require('../transforms/ApplyFragmentArgumentTransform');
|
16
|
-
|
17
|
-
var ClientExtensionsTransform = require('../transforms/ClientExtensionsTransform');
|
18
|
-
|
19
|
-
var ConnectionTransform = require('../transforms/ConnectionTransform');
|
20
|
-
|
21
|
-
var DeclarativeConnectionMutationTransform = require('../transforms/DeclarativeConnectionMutationTransform');
|
22
|
-
|
23
|
-
var DeferStreamTransform = require('../transforms/DeferStreamTransform');
|
24
|
-
|
25
|
-
var DisallowIdAsAlias = require('../transforms/DisallowIdAsAlias');
|
26
|
-
|
27
|
-
var DisallowTypenameOnRoot = require('../transforms/DisallowTypenameOnRoot');
|
28
|
-
|
29
|
-
var FieldHandleTransform = require('../transforms/FieldHandleTransform');
|
30
|
-
|
31
|
-
var FilterCompilerDirectivesTransform = require('../transforms/FilterCompilerDirectivesTransform');
|
32
|
-
|
33
|
-
var FilterDirectivesTransform = require('../transforms/FilterDirectivesTransform');
|
34
|
-
|
35
|
-
var FlattenTransform = require('../transforms/FlattenTransform');
|
36
|
-
|
37
|
-
var GenerateIDFieldTransform = require('../transforms/GenerateIDFieldTransform');
|
38
|
-
|
39
|
-
var GenerateTypeNameTransform = require('../transforms/GenerateTypeNameTransform');
|
40
|
-
|
41
|
-
var InlineDataFragmentTransform = require('../transforms/InlineDataFragmentTransform');
|
42
|
-
|
43
|
-
var InlineFragmentsTransform = require('../transforms/InlineFragmentsTransform');
|
44
|
-
|
45
|
-
var MaskTransform = require('../transforms/MaskTransform');
|
46
|
-
|
47
|
-
var MatchTransform = require('../transforms/MatchTransform');
|
48
|
-
|
49
|
-
var ReactFlightComponentTransform = require('../transforms/ReactFlightComponentTransform');
|
50
|
-
|
51
|
-
var RefetchableFragmentTransform = require('../transforms/RefetchableFragmentTransform');
|
52
|
-
|
53
|
-
var RelayDirectiveTransform = require('../transforms/RelayDirectiveTransform');
|
54
|
-
|
55
|
-
var RequiredFieldTransform = require('../transforms/RequiredFieldTransform');
|
56
|
-
|
57
|
-
var SkipClientExtensionsTransform = require('../transforms/SkipClientExtensionsTransform');
|
58
|
-
|
59
|
-
var SkipHandleFieldTransform = require('../transforms/SkipHandleFieldTransform');
|
60
|
-
|
61
|
-
var SkipRedundantNodesTransform = require('../transforms/SkipRedundantNodesTransform');
|
62
|
-
|
63
|
-
var SkipSplitOperationTransform = require('../transforms/SkipSplitOperationTransform');
|
64
|
-
|
65
|
-
var SkipUnreachableNodeTransform = require('../transforms/SkipUnreachableNodeTransform');
|
66
|
-
|
67
|
-
var SkipUnusedVariablesTransform = require('../transforms/SkipUnusedVariablesTransform');
|
68
|
-
|
69
|
-
var SplitModuleImportTransform = require('../transforms/SplitModuleImportTransform');
|
70
|
-
|
71
|
-
var TestOperationTransform = require('../transforms/TestOperationTransform');
|
72
|
-
|
73
|
-
var ValidateGlobalVariablesTransform = require('../transforms/ValidateGlobalVariablesTransform');
|
74
|
-
|
75
|
-
var ValidateRequiredArgumentsTransform = require('../transforms/ValidateRequiredArgumentsTransform');
|
76
|
-
|
77
|
-
var ValidateUnusedVariablesTransform = require('../transforms/ValidateUnusedVariablesTransform'); // Transforms applied to the code used to process a query response.
|
78
|
-
|
79
|
-
|
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
|
81
|
-
// writing from the store.
|
82
|
-
|
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
|
84
|
-
|
85
|
-
var relayFragmentTransforms = [ClientExtensionsTransform.transform, FieldHandleTransform.transform, InlineDataFragmentTransform.transform, FlattenTransform.transformWithOptions({
|
86
|
-
isForCodegen: true
|
87
|
-
}), RequiredFieldTransform.transform, SkipRedundantNodesTransform.transform]; // Transforms applied to queries/mutations/subscriptions that are used for
|
88
|
-
// fetching data from the server and parsing those responses.
|
89
|
-
|
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.
|
91
|
-
|
92
|
-
var relayCodegenTransforms = [FilterCompilerDirectivesTransform.transform, SkipUnreachableNodeTransform.transform, InlineFragmentsTransform.transform, // NOTE: For the codegen context, we make sure to run ClientExtensions
|
93
|
-
// transform after we've inlined fragment spreads (i.e. InlineFragmentsTransform)
|
94
|
-
// This will ensure that we don't generate nested ClientExtension nodes
|
95
|
-
ClientExtensionsTransform.transform, GenerateTypeNameTransform.transform, FlattenTransform.transformWithOptions({
|
96
|
-
isForCodegen: true
|
97
|
-
}), SkipRedundantNodesTransform.transform, TestOperationTransform.transform]; // Transforms applied before printing the query sent to the server.
|
98
|
-
|
99
|
-
var relayPrintTransforms = [SkipSplitOperationTransform.transform, // NOTE: Skipping client extensions might leave empty selections, which we
|
100
|
-
// skip by running SkipUnreachableNodeTransform immediately after.
|
101
|
-
ClientExtensionsTransform.transform, SkipClientExtensionsTransform.transform, SkipUnreachableNodeTransform.transform, GenerateTypeNameTransform.transform, FlattenTransform.transformWithOptions({}), SkipHandleFieldTransform.transform, FilterDirectivesTransform.transform, SkipUnusedVariablesTransform.transform, ValidateRequiredArgumentsTransform.transform];
|
102
|
-
module.exports = {
|
103
|
-
commonTransforms: relayCommonTransforms,
|
104
|
-
codegenTransforms: relayCodegenTransforms,
|
105
|
-
fragmentTransforms: relayFragmentTransforms,
|
106
|
-
printTransforms: relayPrintTransforms,
|
107
|
-
queryTransforms: relayQueryTransforms,
|
108
|
-
schemaExtensions: relaySchemaExtensions
|
109
|
-
};
|