relay-compiler 10.1.3 → 11.0.2
Sign up to get free protection for your applications and to get access to all the features.
- package/bin/relay-compiler +46 -20
- package/codegen/CodegenDirectory.js.flow +1 -1
- package/codegen/writeRelayGeneratedFile.js.flow +16 -0
- package/core/IRPrinter.js.flow +1 -0
- package/core/RelayParser.js.flow +3 -0
- package/index.js +1 -1
- package/language/javascript/RelayFlowGenerator.js.flow +1 -0
- package/lib/bin/RelayCompilerMain.js +1 -1
- package/lib/codegen/CodegenDirectory.js +1 -1
- package/lib/codegen/CodegenRunner.js +1 -1
- package/lib/codegen/RelayFileWriter.js +1 -1
- package/lib/codegen/writeRelayGeneratedFile.js +22 -6
- package/lib/core/CompilerContext.js +1 -1
- package/lib/core/GraphQLCompilerProfiler.js +1 -1
- package/lib/core/IRPrinter.js +3 -2
- package/lib/core/IRTransformer.js +1 -1
- package/lib/core/IRValidator.js +1 -1
- package/lib/core/RelayParser.js +5 -2
- package/lib/core/RelaySourceModuleParser.js +1 -1
- package/lib/core/getIdentifierForArgumentValue.js +1 -1
- package/lib/core/getIdentifierForSelection.js +1 -1
- package/lib/language/javascript/RelayFlowBabelFactories.js +1 -1
- package/lib/language/javascript/RelayFlowGenerator.js +3 -2
- package/lib/runner/BufferedFilesystem.js +1 -1
- package/lib/runner/Sources.js +1 -1
- package/lib/runner/StrictMap.js +1 -1
- package/lib/runner/extractAST.js +1 -1
- package/lib/transforms/DeclarativeConnectionMutationTransform.js +1 -1
- package/lib/transforms/FieldHandleTransform.js +1 -1
- package/lib/transforms/FlattenTransform.js +7 -4
- package/lib/transforms/InlineFragmentsTransform.js +1 -1
- package/lib/transforms/MaskTransform.js +1 -1
- package/lib/transforms/RelayDirectiveTransform.js +1 -1
- package/lib/transforms/SkipRedundantNodesTransform.js +3 -2
- package/lib/transforms/SkipUnreachableNodeTransform.js +1 -1
- package/lib/util/{areEqualOSS.js → areEqualArgValues.js} +4 -3
- package/package.json +3 -2
- package/relay-compiler.js +3 -3
- package/relay-compiler.min.js +3 -3
- package/runner/BufferedFilesystem.js.flow +1 -1
- package/transforms/DeclarativeConnectionMutationTransform.js.flow +1 -3
- package/transforms/FlattenTransform.js.flow +8 -2
- package/transforms/SkipRedundantNodesTransform.js.flow +1 -0
- package/util/{areEqualOSS.js.flow → areEqualArgValues.js.flow} +5 -3
@@ -144,7 +144,7 @@ class BufferedFilesystem implements Filesystem {
|
|
144
144
|
return fs.readFileSync(path, encoding);
|
145
145
|
}
|
146
146
|
|
147
|
-
statSync(path: string): {isDirectory(): boolean
|
147
|
+
statSync(path: string): interface {isDirectory(): boolean} {
|
148
148
|
this._assertNotComitted();
|
149
149
|
return fs.statSync(path);
|
150
150
|
}
|
@@ -164,9 +164,7 @@ function visitLinkedField(field: LinkedField): LinkedField {
|
|
164
164
|
}
|
165
165
|
const schema = this.getContext().getSchema();
|
166
166
|
if (edgeDirective) {
|
167
|
-
const fieldType = schema.
|
168
|
-
? transformedField.type.ofType
|
169
|
-
: transformedField.type;
|
167
|
+
const fieldType = schema.getRawType(transformedField.type);
|
170
168
|
const fields = schema.getFields(fieldType);
|
171
169
|
let cursorFieldID;
|
172
170
|
let nodeFieldID;
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
const IRTransformer = require('../core/IRTransformer');
|
16
16
|
|
17
|
-
const
|
17
|
+
const areEqualArgValues = require('../util/areEqualArgValues');
|
18
18
|
const getIdentifierForSelection = require('../core/getIdentifierForSelection');
|
19
19
|
|
20
20
|
const {createCompilerError, createUserError} = require('../core/CompilerError');
|
@@ -415,7 +415,10 @@ function areEqualArgs(
|
|
415
415
|
thisArg.value.kind === thatArg.value.kind &&
|
416
416
|
(thisArg.value: any).variableName ===
|
417
417
|
(thatArg.value: any).variableName &&
|
418
|
-
|
418
|
+
areEqualArgValues(
|
419
|
+
(thisArg.value: any).value,
|
420
|
+
(thatArg.value: any).value,
|
421
|
+
)
|
419
422
|
);
|
420
423
|
})
|
421
424
|
);
|
@@ -436,8 +439,11 @@ function mergeHandles<T: LinkedField | ScalarField>(
|
|
436
439
|
}
|
437
440
|
const uniqueItems = new Map();
|
438
441
|
nodeA.handles
|
442
|
+
// $FlowFixMe[incompatible-use]
|
439
443
|
.concat(nodeB.handles)
|
444
|
+
// $FlowFixMe[incompatible-use]
|
440
445
|
.forEach(item => uniqueItems.set(item.name + item.key, item));
|
446
|
+
// $FlowFixMe[incompatible-return]
|
441
447
|
return Array.from(uniqueItems.values());
|
442
448
|
}
|
443
449
|
|
@@ -8,6 +8,8 @@
|
|
8
8
|
* @format
|
9
9
|
*/
|
10
10
|
|
11
|
+
// TODO: This is only used with `ArgumentValue` types, so it could be simpler.
|
12
|
+
|
11
13
|
// flowlint ambiguous-object-type:error
|
12
14
|
'use strict';
|
13
15
|
|
@@ -22,7 +24,7 @@ const bStackPool = [];
|
|
22
24
|
* @copyright 2009-2013 Jeremy Ashkenas, DocumentCloud Inc.
|
23
25
|
* @license MIT
|
24
26
|
*/
|
25
|
-
function
|
27
|
+
function areEqualArgValues(a: any, b: any): boolean {
|
26
28
|
const aStack = aStackPool.length ? aStackPool.pop() : [];
|
27
29
|
const bStack = bStackPool.length ? bStackPool.pop() : [];
|
28
30
|
const result = eq(a, b, aStack, bStack);
|
@@ -104,7 +106,7 @@ function eq(a: any, b: any, aStack: Array<any>, bStack: Array<any>): boolean {
|
|
104
106
|
// HACK: Comparing deeply nested React trees is slow since you end up
|
105
107
|
// comparing the entire tree (all ancestors and all children) and
|
106
108
|
// likely not what you want if you're comparing two elements with
|
107
|
-
//
|
109
|
+
// areEqualArgValues. We bail out here for now.
|
108
110
|
continue;
|
109
111
|
}
|
110
112
|
if (
|
@@ -120,4 +122,4 @@ function eq(a: any, b: any, aStack: Array<any>, bStack: Array<any>): boolean {
|
|
120
122
|
return true;
|
121
123
|
}
|
122
124
|
|
123
|
-
module.exports =
|
125
|
+
module.exports = areEqualArgValues;
|