relay-compiler 8.0.0 → 10.0.1
Sign up to get free protection for your applications and to get access to all the features.
- package/bin/RelayCompilerBin.js.flow +169 -0
- package/bin/RelayCompilerMain.js.flow +515 -0
- package/bin/__fixtures__/plugin-module.js.flow +17 -0
- package/bin/relay-compiler +8930 -8967
- package/codegen/CodegenDirectory.js.flow +375 -0
- package/codegen/CodegenRunner.js.flow +432 -0
- package/codegen/CodegenTypes.js.flow +28 -0
- package/codegen/CodegenWatcher.js.flow +254 -0
- package/codegen/NormalizationCodeGenerator.js.flow +563 -0
- package/codegen/ReaderCodeGenerator.js.flow +477 -0
- package/codegen/RelayCodeGenerator.js.flow +85 -0
- package/codegen/RelayFileWriter.js.flow +365 -0
- package/codegen/SourceControl.js.flow +58 -0
- package/codegen/compileRelayArtifacts.js.flow +182 -0
- package/codegen/createPrintRequireModuleDependency.js.flow +21 -0
- package/codegen/sortObjectByKey.js.flow +25 -0
- package/codegen/writeRelayGeneratedFile.js.flow +223 -0
- package/core/ASTCache.js.flow +73 -0
- package/core/ASTConvert.js.flow +233 -0
- package/core/CompilerContext.js.flow +190 -0
- package/core/CompilerError.js.flow +250 -0
- package/core/DotGraphQLParser.js.flow +39 -0
- package/core/GraphQLCompilerProfiler.js.flow +341 -0
- package/core/GraphQLDerivedFromMetadata.js.flow +36 -0
- package/core/GraphQLWatchmanClient.js.flow +111 -0
- package/core/IR.js.flow +327 -0
- package/core/IRPrinter.js.flow +482 -0
- package/core/IRTransformer.js.flow +377 -0
- package/core/IRValidator.js.flow +260 -0
- package/core/IRVisitor.js.flow +150 -0
- package/core/JSModuleParser.js.flow +24 -0
- package/core/RelayCompilerScope.js.flow +199 -0
- package/core/RelayFindGraphQLTags.js.flow +119 -0
- package/core/RelayGraphQLEnumsGenerator.js.flow +55 -0
- package/core/RelayIRTransforms.js.flow +131 -0
- package/core/RelayParser.js.flow +1731 -0
- package/core/RelaySourceModuleParser.js.flow +135 -0
- package/core/Schema.js.flow +1983 -0
- package/core/SchemaUtils.js.flow +120 -0
- package/core/filterContextForNode.js.flow +50 -0
- package/core/getFieldDefinition.js.flow +156 -0
- package/core/getIdentifierForArgumentValue.js.flow +49 -0
- package/core/getIdentifierForSelection.js.flow +69 -0
- package/core/getLiteralArgumentValues.js.flow +32 -0
- package/core/getNormalizationOperationName.js.flow +19 -0
- package/core/inferRootArgumentDefinitions.js.flow +323 -0
- package/index.js +1 -1
- package/index.js.flow +200 -0
- package/language/RelayLanguagePluginInterface.js.flow +283 -0
- package/language/javascript/FindGraphQLTags.js.flow +232 -0
- package/language/javascript/RelayFlowBabelFactories.js.flow +180 -0
- package/language/javascript/RelayFlowGenerator.js.flow +1042 -0
- package/language/javascript/RelayFlowTypeTransformers.js.flow +184 -0
- package/language/javascript/RelayLanguagePluginJavaScript.js.flow +34 -0
- package/language/javascript/formatGeneratedModule.js.flow +65 -0
- package/lib/bin/RelayCompilerBin.js +24 -7
- package/lib/bin/RelayCompilerMain.js +141 -136
- package/lib/codegen/CodegenDirectory.js +13 -8
- package/lib/codegen/CodegenRunner.js +37 -76
- package/lib/codegen/CodegenWatcher.js +13 -21
- package/lib/codegen/NormalizationCodeGenerator.js +117 -140
- package/lib/codegen/ReaderCodeGenerator.js +76 -117
- package/lib/codegen/RelayCodeGenerator.js +17 -6
- package/lib/codegen/RelayFileWriter.js +19 -40
- package/lib/codegen/compileRelayArtifacts.js +16 -30
- package/lib/codegen/sortObjectByKey.js +43 -0
- package/lib/codegen/writeRelayGeneratedFile.js +86 -95
- package/lib/core/ASTCache.js +2 -4
- package/lib/core/CompilerContext.js +2 -4
- package/lib/core/CompilerError.js +27 -54
- package/lib/core/GraphQLCompilerProfiler.js +8 -12
- package/lib/core/GraphQLDerivedFromMetadata.js +1 -10
- package/lib/core/GraphQLWatchmanClient.js +4 -12
- package/lib/core/IRPrinter.js +23 -21
- package/lib/core/IRTransformer.js +8 -16
- package/lib/core/IRValidator.js +1 -9
- package/lib/core/IRVisitor.js +0 -2
- package/lib/core/RelayCompilerScope.js +4 -4
- package/lib/core/RelayGraphQLEnumsGenerator.js +12 -15
- package/lib/core/RelayIRTransforms.js +16 -14
- package/lib/core/RelayParser.js +53 -89
- package/lib/core/RelaySourceModuleParser.js +3 -3
- package/lib/core/Schema.js +61 -73
- package/lib/core/SchemaUtils.js +15 -1
- package/lib/core/getFieldDefinition.js +12 -15
- package/lib/core/getIdentifierForSelection.js +2 -4
- package/lib/core/inferRootArgumentDefinitions.js +33 -73
- package/lib/index.js +4 -5
- package/lib/language/javascript/FindGraphQLTags.js +4 -3
- package/lib/language/javascript/RelayFlowGenerator.js +82 -171
- package/lib/language/javascript/RelayFlowTypeTransformers.js +1 -3
- package/lib/language/javascript/RelayLanguagePluginJavaScript.js +6 -4
- package/lib/language/javascript/formatGeneratedModule.js +11 -2
- package/lib/reporters/ConsoleReporter.js +1 -3
- package/lib/reporters/MultiReporter.js +1 -3
- package/lib/runner/Artifacts.js +69 -170
- package/lib/runner/BufferedFilesystem.js +32 -66
- package/lib/runner/GraphQLASTNodeGroup.js +54 -120
- package/lib/runner/GraphQLNodeMap.js +14 -19
- package/lib/runner/Sources.js +51 -85
- package/lib/runner/StrictMap.js +21 -37
- package/lib/runner/getChangedNodeNames.js +30 -62
- package/lib/transforms/ApplyFragmentArgumentTransform.js +73 -59
- package/lib/transforms/ClientExtensionsTransform.js +12 -16
- package/lib/transforms/ConnectionTransform.js +30 -37
- package/lib/transforms/DeclarativeConnectionMutationTransform.js +167 -0
- package/lib/transforms/DeferStreamTransform.js +30 -73
- package/lib/transforms/DisallowTypenameOnRoot.js +55 -0
- package/lib/transforms/FieldHandleTransform.js +6 -2
- package/lib/transforms/FlattenTransform.js +18 -45
- package/lib/transforms/GenerateIDFieldTransform.js +56 -35
- package/lib/transforms/GenerateTypeNameTransform.js +84 -10
- package/lib/transforms/InlineDataFragmentTransform.js +9 -4
- package/lib/transforms/MaskTransform.js +17 -17
- package/lib/transforms/MatchTransform.js +110 -32
- package/lib/transforms/RefetchableFragmentTransform.js +21 -38
- package/lib/transforms/RelayDirectiveTransform.js +8 -3
- package/lib/transforms/SkipClientExtensionsTransform.js +8 -0
- package/lib/transforms/SkipHandleFieldTransform.js +6 -2
- package/lib/transforms/SkipRedundantNodesTransform.js +7 -4
- package/lib/transforms/SkipSplitOperationTransform.js +32 -0
- package/lib/transforms/SkipUnreachableNodeTransform.js +9 -10
- package/lib/transforms/SkipUnusedVariablesTransform.js +18 -17
- package/lib/transforms/SplitModuleImportTransform.js +2 -2
- package/lib/transforms/TestOperationTransform.js +26 -22
- package/lib/transforms/ValidateGlobalVariablesTransform.js +18 -30
- package/lib/transforms/ValidateRequiredArgumentsTransform.js +12 -16
- package/lib/transforms/ValidateServerOnlyDirectivesTransform.js +16 -30
- package/lib/transforms/ValidateUnusedVariablesTransform.js +18 -30
- package/lib/transforms/query-generators/FetchableQueryGenerator.js +161 -0
- package/lib/transforms/query-generators/NodeQueryGenerator.js +22 -3
- package/lib/transforms/query-generators/QueryQueryGenerator.js +2 -1
- package/lib/transforms/query-generators/ViewerQueryGenerator.js +1 -0
- package/lib/transforms/query-generators/index.js +23 -6
- package/lib/transforms/query-generators/utils.js +17 -16
- package/lib/util/RelayCompilerCache.js +2 -4
- package/lib/util/argumentContainsVariables.js +37 -0
- package/lib/util/dedupeJSONStringify.js +15 -12
- package/lib/util/generateAbstractTypeRefinementKey.js +24 -0
- package/lib/util/getModuleName.js +3 -5
- package/lib/util/joinArgumentDefinitions.js +3 -1
- package/package.json +6 -6
- package/relay-compiler.js +4 -4
- package/relay-compiler.min.js +4 -4
- package/reporters/ConsoleReporter.js.flow +81 -0
- package/reporters/MultiReporter.js.flow +43 -0
- package/reporters/Reporter.js.flow +19 -0
- package/runner/Artifacts.js.flow +219 -0
- package/runner/BufferedFilesystem.js.flow +194 -0
- package/runner/GraphQLASTNodeGroup.js.flow +176 -0
- package/runner/GraphQLASTUtils.js.flow +26 -0
- package/runner/GraphQLNodeMap.js.flow +55 -0
- package/runner/Sources.js.flow +214 -0
- package/runner/StrictMap.js.flow +96 -0
- package/runner/compileArtifacts.js.flow +76 -0
- package/runner/extractAST.js.flow +100 -0
- package/runner/getChangedNodeNames.js.flow +48 -0
- package/runner/getSchemaInstance.js.flow +36 -0
- package/runner/types.js.flow +37 -0
- package/transforms/ApplyFragmentArgumentTransform.js.flow +526 -0
- package/transforms/ClientExtensionsTransform.js.flow +222 -0
- package/transforms/ConnectionTransform.js.flow +856 -0
- package/transforms/DeclarativeConnectionMutationTransform.js.flow +157 -0
- package/transforms/DeferStreamTransform.js.flow +265 -0
- package/transforms/DisallowIdAsAlias.js.flow +47 -0
- package/transforms/DisallowTypenameOnRoot.js.flow +45 -0
- package/transforms/FieldHandleTransform.js.flow +80 -0
- package/transforms/FilterDirectivesTransform.js.flow +45 -0
- package/transforms/FlattenTransform.js.flow +453 -0
- package/transforms/GenerateIDFieldTransform.js.flow +152 -0
- package/transforms/GenerateTypeNameTransform.js.flow +161 -0
- package/transforms/InlineDataFragmentTransform.js.flow +125 -0
- package/transforms/InlineFragmentsTransform.js.flow +71 -0
- package/transforms/MaskTransform.js.flow +126 -0
- package/transforms/MatchTransform.js.flow +583 -0
- package/transforms/RefetchableFragmentTransform.js.flow +272 -0
- package/transforms/RelayDirectiveTransform.js.flow +97 -0
- package/transforms/SkipClientExtensionsTransform.js.flow +54 -0
- package/transforms/SkipHandleFieldTransform.js.flow +44 -0
- package/transforms/SkipRedundantNodesTransform.js.flow +254 -0
- package/transforms/SkipSplitOperationTransform.js.flow +37 -0
- package/transforms/SkipUnreachableNodeTransform.js.flow +149 -0
- package/transforms/SkipUnusedVariablesTransform.js.flow +59 -0
- package/transforms/SplitModuleImportTransform.js.flow +98 -0
- package/transforms/TestOperationTransform.js.flow +142 -0
- package/transforms/TransformUtils.js.flow +26 -0
- package/transforms/ValidateGlobalVariablesTransform.js.flow +81 -0
- package/transforms/ValidateRequiredArgumentsTransform.js.flow +127 -0
- package/transforms/ValidateServerOnlyDirectivesTransform.js.flow +112 -0
- package/transforms/ValidateUnusedVariablesTransform.js.flow +89 -0
- package/transforms/query-generators/FetchableQueryGenerator.js.flow +189 -0
- package/transforms/query-generators/NodeQueryGenerator.js.flow +219 -0
- package/transforms/query-generators/QueryQueryGenerator.js.flow +57 -0
- package/transforms/query-generators/ViewerQueryGenerator.js.flow +97 -0
- package/transforms/query-generators/index.js.flow +90 -0
- package/transforms/query-generators/utils.js.flow +76 -0
- package/util/CodeMarker.js.flow +79 -0
- package/{lib/core/GraphQLIR.js → util/DefaultHandleKey.js.flow} +9 -2
- package/util/RelayCompilerCache.js.flow +88 -0
- package/util/Rollout.js.flow +39 -0
- package/util/TimeReporter.js.flow +79 -0
- package/util/areEqualOSS.js.flow +123 -0
- package/util/argumentContainsVariables.js.flow +38 -0
- package/util/dedupeJSONStringify.js.flow +152 -0
- package/util/generateAbstractTypeRefinementKey.js.flow +29 -0
- package/util/getDefinitionNodeHash.js.flow +25 -0
- package/util/getModuleName.js.flow +39 -0
- package/util/joinArgumentDefinitions.js.flow +105 -0
- package/util/md5.js.flow +22 -0
- package/util/murmurHash.js.flow +94 -0
- package/util/nullthrowsOSS.js.flow +25 -0
- package/util/orList.js.flow +37 -0
- package/util/partitionArray.js.flow +37 -0
- package/lib/core/GraphQLCompilerContext.js +0 -165
- package/lib/core/GraphQLIRPrinter.js +0 -371
- package/lib/core/GraphQLIRTransformer.js +0 -344
- package/lib/core/GraphQLIRValidator.js +0 -218
- package/lib/core/GraphQLIRVisitor.js +0 -46
- package/lib/core/RelayCompilerError.js +0 -277
- package/lib/transforms/ConnectionFieldTransform.js +0 -276
@@ -16,10 +16,18 @@ var _asyncToGenerator = require("@babel/runtime/helpers/asyncToGenerator");
|
|
16
16
|
|
17
17
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
18
18
|
|
19
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));
|
20
|
-
|
21
19
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
22
20
|
|
21
|
+
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; } } }; }
|
22
|
+
|
23
|
+
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); }
|
24
|
+
|
25
|
+
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; }
|
26
|
+
|
27
|
+
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; }
|
28
|
+
|
29
|
+
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; }
|
30
|
+
|
23
31
|
var CodegenRunner = require('../codegen/CodegenRunner');
|
24
32
|
|
25
33
|
var ConsoleReporter = require('../reporters/ConsoleReporter');
|
@@ -40,6 +48,8 @@ var crypto = require('crypto');
|
|
40
48
|
|
41
49
|
var fs = require('fs');
|
42
50
|
|
51
|
+
var glob = require('glob');
|
52
|
+
|
43
53
|
var invariant = require("fbjs/lib/invariant");
|
44
54
|
|
45
55
|
var path = require('path');
|
@@ -70,16 +80,16 @@ function getFilepathsFromGlob(baseDir, config) {
|
|
70
80
|
var extensions = config.extensions,
|
71
81
|
include = config.include,
|
72
82
|
exclude = config.exclude;
|
73
|
-
var
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
ignore: exclude
|
83
|
+
var files = new Set();
|
84
|
+
include.forEach(function (inc) {
|
85
|
+
return glob.sync("".concat(inc, "/*.+(").concat(extensions.join('|'), ")"), {
|
86
|
+
cwd: baseDir,
|
87
|
+
ignore: exclude
|
88
|
+
}).forEach(function (file) {
|
89
|
+
return files.add(file);
|
90
|
+
});
|
82
91
|
});
|
92
|
+
return Array.from(files);
|
83
93
|
}
|
84
94
|
|
85
95
|
/**
|
@@ -93,9 +103,11 @@ function getFilepathsFromGlob(baseDir, config) {
|
|
93
103
|
* replaced with `__webpack_require__` when bundled using webpack, by using
|
94
104
|
* `eval` to get it at runtime.
|
95
105
|
*/
|
96
|
-
function getLanguagePlugin(language) {
|
106
|
+
function getLanguagePlugin(language, options) {
|
97
107
|
if (language === 'javascript') {
|
98
|
-
return RelayLanguagePluginJavaScript(
|
108
|
+
return RelayLanguagePluginJavaScript({
|
109
|
+
eagerESModules: Boolean(options && options.eagerESModules)
|
110
|
+
});
|
99
111
|
} else {
|
100
112
|
var languagePlugin;
|
101
113
|
|
@@ -120,12 +132,13 @@ function getLanguagePlugin(language) {
|
|
120
132
|
}
|
121
133
|
|
122
134
|
if (languagePlugin["default"] != null) {
|
123
|
-
|
135
|
+
/* $FlowFixMe[incompatible-type] - Flow no longer considers statics of
|
136
|
+
* functions as any */
|
124
137
|
languagePlugin = languagePlugin["default"];
|
125
138
|
}
|
126
139
|
|
127
140
|
if (typeof languagePlugin === 'function') {
|
128
|
-
// $FlowFixMe
|
141
|
+
// $FlowFixMe[incompatible-use]
|
129
142
|
return languagePlugin();
|
130
143
|
} else {
|
131
144
|
throw new Error('Expected plugin to be a initializer function.');
|
@@ -211,7 +224,7 @@ function getPathBasedConfig(config) {
|
|
211
224
|
}
|
212
225
|
}
|
213
226
|
|
214
|
-
return (
|
227
|
+
return _objectSpread({}, config, {
|
215
228
|
schema: schema,
|
216
229
|
src: src,
|
217
230
|
persistOutput: persistOutput
|
@@ -229,7 +242,7 @@ function _getWatchConfig() {
|
|
229
242
|
if (config.watch) {
|
230
243
|
if (!watchman) {
|
231
244
|
console.error('Watchman is required to watch for changes. Running with watch mode disabled.');
|
232
|
-
return (
|
245
|
+
return _objectSpread({}, config, {
|
233
246
|
watch: false,
|
234
247
|
watchman: false
|
235
248
|
});
|
@@ -243,7 +256,7 @@ function _getWatchConfig() {
|
|
243
256
|
console.log('HINT: pass --watch to keep watching for changes.');
|
244
257
|
}
|
245
258
|
|
246
|
-
return (
|
259
|
+
return _objectSpread({}, config, {
|
247
260
|
watchman: watchman
|
248
261
|
});
|
249
262
|
});
|
@@ -251,23 +264,25 @@ function _getWatchConfig() {
|
|
251
264
|
}
|
252
265
|
|
253
266
|
function getCodegenRunner(config) {
|
254
|
-
var
|
267
|
+
var _parserConfigs;
|
255
268
|
|
256
269
|
var reporter = new ConsoleReporter({
|
257
270
|
verbose: config.verbose,
|
258
271
|
quiet: config.quiet
|
259
272
|
});
|
260
273
|
var schema = getSchemaSource(config.schema);
|
261
|
-
var languagePlugin = getLanguagePlugin(config.language
|
274
|
+
var languagePlugin = getLanguagePlugin(config.language, {
|
275
|
+
eagerESModules: config.eagerESModules === true
|
276
|
+
});
|
262
277
|
var persistQueryFunction = getPersistQueryFunction(config);
|
263
278
|
var inputExtensions = config.extensions || languagePlugin.inputExtensions;
|
264
279
|
var outputExtension = languagePlugin.outputExtension;
|
265
280
|
var sourceParserName = inputExtensions.join('/');
|
266
281
|
var sourceWriterName = outputExtension;
|
267
|
-
var sourceModuleParser = RelaySourceModuleParser(languagePlugin.findGraphQLTags);
|
282
|
+
var sourceModuleParser = RelaySourceModuleParser(languagePlugin.findGraphQLTags, languagePlugin.getFileFilter);
|
268
283
|
var providedArtifactDirectory = config.artifactDirectory;
|
269
284
|
var artifactDirectory = providedArtifactDirectory != null ? path.resolve(process.cwd(), providedArtifactDirectory) : null;
|
270
|
-
var generatedDirectoryName =
|
285
|
+
var generatedDirectoryName = artifactDirectory !== null && artifactDirectory !== void 0 ? artifactDirectory : '__generated__';
|
271
286
|
var sourceSearchOptions = {
|
272
287
|
extensions: inputExtensions,
|
273
288
|
include: config.include,
|
@@ -278,6 +293,11 @@ function getCodegenRunner(config) {
|
|
278
293
|
include: config.include,
|
279
294
|
exclude: [path.relative(config.src, config.schema)].concat(config.exclude)
|
280
295
|
};
|
296
|
+
|
297
|
+
var defaultIsGeneratedFile = function defaultIsGeneratedFile(filePath) {
|
298
|
+
return filePath.endsWith('.graphql.' + outputExtension) && filePath.includes(generatedDirectoryName);
|
299
|
+
};
|
300
|
+
|
281
301
|
var schemaExtensions = languagePlugin.schemaExtensions ? [].concat((0, _toConsumableArray2["default"])(languagePlugin.schemaExtensions), (0, _toConsumableArray2["default"])(relaySchemaExtensions)) : relaySchemaExtensions;
|
282
302
|
var parserConfigs = (_parserConfigs = {}, (0, _defineProperty2["default"])(_parserConfigs, sourceParserName, {
|
283
303
|
baseDir: config.src,
|
@@ -300,10 +320,8 @@ function getCodegenRunner(config) {
|
|
300
320
|
filepaths: config.watchman ? null : getFilepathsFromGlob(config.src, graphqlSearchOptions)
|
301
321
|
}), _parserConfigs);
|
302
322
|
var writerConfigs = (0, _defineProperty2["default"])({}, sourceWriterName, {
|
303
|
-
writeFiles: getRelayFileWriter(config.src, languagePlugin, config.noFutureProofEnums, artifactDirectory, config.persistOutput, config.customScalars, persistQueryFunction),
|
304
|
-
isGeneratedFile:
|
305
|
-
return filePath.endsWith('.graphql.' + outputExtension) && filePath.includes(generatedDirectoryName);
|
306
|
-
},
|
323
|
+
writeFiles: getRelayFileWriter(config.src, languagePlugin, config.noFutureProofEnums, artifactDirectory, config.persistOutput, config.customScalars, persistQueryFunction, config.repersist),
|
324
|
+
isGeneratedFile: languagePlugin.isGeneratedFile ? languagePlugin.isGeneratedFile : defaultIsGeneratedFile,
|
307
325
|
parser: sourceParserName,
|
308
326
|
baseParsers: ['graphql']
|
309
327
|
});
|
@@ -325,128 +343,115 @@ function defaultPersistFunction(text) {
|
|
325
343
|
return Promise.resolve(id);
|
326
344
|
}
|
327
345
|
|
328
|
-
function getRelayFileWriter(baseDir, languagePlugin, noFutureProofEnums, outputDir, persistedQueryPath, customScalars, persistFunction) {
|
329
|
-
return (
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
function persistQuery(_x4) {
|
357
|
-
return _persistQuery.apply(this, arguments);
|
358
|
-
}
|
346
|
+
function getRelayFileWriter(baseDir, languagePlugin, noFutureProofEnums, outputDir, persistedQueryPath, customScalars, persistFunction, repersist) {
|
347
|
+
return /*#__PURE__*/function () {
|
348
|
+
var _ref2 = _asyncToGenerator(function* (_ref) {
|
349
|
+
var onlyValidate = _ref.onlyValidate,
|
350
|
+
schema = _ref.schema,
|
351
|
+
documents = _ref.documents,
|
352
|
+
baseDocuments = _ref.baseDocuments,
|
353
|
+
sourceControl = _ref.sourceControl,
|
354
|
+
reporter = _ref.reporter;
|
355
|
+
var persistQuery;
|
356
|
+
var queryMap;
|
357
|
+
|
358
|
+
if (persistFunction != null || persistedQueryPath != null) {
|
359
|
+
queryMap = new Map();
|
360
|
+
var persistImplmentation = persistFunction || defaultPersistFunction;
|
361
|
+
|
362
|
+
persistQuery = /*#__PURE__*/function () {
|
363
|
+
var _persistQuery = _asyncToGenerator(function* (text) {
|
364
|
+
var id = yield persistImplmentation(text);
|
365
|
+
!(typeof id === 'string') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected persist function to return a string, got `%s`.', id) : invariant(false) : void 0;
|
366
|
+
queryMap.set(id, text);
|
367
|
+
return id;
|
368
|
+
});
|
369
|
+
|
370
|
+
function persistQuery(_x4) {
|
371
|
+
return _persistQuery.apply(this, arguments);
|
372
|
+
}
|
359
373
|
|
360
|
-
|
361
|
-
|
362
|
-
|
374
|
+
return persistQuery;
|
375
|
+
}();
|
376
|
+
}
|
363
377
|
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
},
|
375
|
-
customScalars: customScalars || {},
|
376
|
-
formatModule: languagePlugin.formatModule,
|
377
|
-
optionalInputFieldsForFlow: [],
|
378
|
-
schemaExtensions: schemaExtensions,
|
379
|
-
useHaste: false,
|
380
|
-
noFutureProofEnums: noFutureProofEnums,
|
381
|
-
extension: languagePlugin.outputExtension,
|
382
|
-
typeGenerator: languagePlugin.typeGenerator,
|
383
|
-
outputDir: outputDir,
|
384
|
-
persistQuery: persistQuery
|
378
|
+
var schemaExtensions = languagePlugin.schemaExtensions ? [].concat((0, _toConsumableArray2["default"])(languagePlugin.schemaExtensions), (0, _toConsumableArray2["default"])(relaySchemaExtensions)) : relaySchemaExtensions;
|
379
|
+
var results = yield RelayFileWriter.writeAll({
|
380
|
+
config: {
|
381
|
+
baseDir: baseDir,
|
382
|
+
compilerTransforms: {
|
383
|
+
commonTransforms: commonTransforms,
|
384
|
+
codegenTransforms: codegenTransforms,
|
385
|
+
fragmentTransforms: fragmentTransforms,
|
386
|
+
printTransforms: printTransforms,
|
387
|
+
queryTransforms: queryTransforms
|
385
388
|
},
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
}
|
407
|
-
} catch (error) {
|
408
|
-
console.error(error);
|
409
|
-
}
|
410
|
-
}
|
389
|
+
customScalars: customScalars || {},
|
390
|
+
formatModule: languagePlugin.formatModule,
|
391
|
+
optionalInputFieldsForFlow: [],
|
392
|
+
schemaExtensions: schemaExtensions,
|
393
|
+
useHaste: false,
|
394
|
+
noFutureProofEnums: noFutureProofEnums,
|
395
|
+
extension: languagePlugin.outputExtension,
|
396
|
+
typeGenerator: languagePlugin.typeGenerator,
|
397
|
+
outputDir: outputDir,
|
398
|
+
persistQuery: persistQuery,
|
399
|
+
repersist: repersist
|
400
|
+
},
|
401
|
+
onlyValidate: onlyValidate,
|
402
|
+
schema: schema,
|
403
|
+
baseDocuments: baseDocuments,
|
404
|
+
documents: documents,
|
405
|
+
reporter: reporter,
|
406
|
+
sourceControl: sourceControl,
|
407
|
+
languagePlugin: languagePlugin
|
408
|
+
});
|
411
409
|
|
412
|
-
|
413
|
-
|
414
|
-
var _iteratorError = undefined;
|
410
|
+
if (queryMap != null && persistedQueryPath != null) {
|
411
|
+
var object = {};
|
415
412
|
|
413
|
+
if (fs.existsSync(persistedQueryPath)) {
|
416
414
|
try {
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
object
|
422
|
-
}
|
423
|
-
|
424
|
-
_didIteratorError = true;
|
425
|
-
_iteratorError = err;
|
426
|
-
} finally {
|
427
|
-
try {
|
428
|
-
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
|
429
|
-
_iterator["return"]();
|
430
|
-
}
|
431
|
-
} finally {
|
432
|
-
if (_didIteratorError) {
|
433
|
-
throw _iteratorError;
|
434
|
-
}
|
415
|
+
var prevText = fs.readFileSync(persistedQueryPath, 'utf8');
|
416
|
+
var prevData = JSON.parse(prevText);
|
417
|
+
|
418
|
+
if (prevData != null && typeof prevData === 'object') {
|
419
|
+
object = prevData;
|
420
|
+
} else {
|
421
|
+
console.error("Invalid data in persisted query file '".concat(persistedQueryPath, "', expected an object."));
|
435
422
|
}
|
423
|
+
} catch (error) {
|
424
|
+
console.error(error);
|
436
425
|
}
|
426
|
+
}
|
437
427
|
|
438
|
-
|
439
|
-
|
428
|
+
var _iterator = _createForOfIteratorHelper(queryMap.entries()),
|
429
|
+
_step;
|
430
|
+
|
431
|
+
try {
|
432
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
433
|
+
var _step$value = _step.value,
|
434
|
+
id = _step$value[0],
|
435
|
+
_text = _step$value[1];
|
436
|
+
object[id] = _text;
|
437
|
+
}
|
438
|
+
} catch (err) {
|
439
|
+
_iterator.e(err);
|
440
|
+
} finally {
|
441
|
+
_iterator.f();
|
440
442
|
}
|
441
443
|
|
442
|
-
|
443
|
-
|
444
|
+
var data = JSON.stringify(object, null, 2);
|
445
|
+
fs.writeFileSync(persistedQueryPath, data, 'utf8');
|
446
|
+
}
|
447
|
+
|
448
|
+
return results;
|
449
|
+
});
|
444
450
|
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
);
|
451
|
+
return function (_x3) {
|
452
|
+
return _ref2.apply(this, arguments);
|
453
|
+
};
|
454
|
+
}();
|
450
455
|
}
|
451
456
|
|
452
457
|
function getSchemaSource(schemaPath) {
|
@@ -22,11 +22,10 @@ var crypto = require('crypto');
|
|
22
22
|
|
23
23
|
var invariant = require("fbjs/lib/invariant");
|
24
24
|
|
25
|
-
var path = require('path');
|
25
|
+
var path = require('path'); // flowlint nonstrict-import:warn
|
26
26
|
|
27
|
-
|
28
|
-
/*#__PURE__*/
|
29
|
-
function () {
|
27
|
+
|
28
|
+
var CodegenDirectory = /*#__PURE__*/function () {
|
30
29
|
function CodegenDirectory(dir, options) {
|
31
30
|
var _this = this;
|
32
31
|
|
@@ -152,9 +151,7 @@ function () {
|
|
152
151
|
};
|
153
152
|
};
|
154
153
|
|
155
|
-
CodegenDirectory.sourceControlAddRemove =
|
156
|
-
/*#__PURE__*/
|
157
|
-
function () {
|
154
|
+
CodegenDirectory.sourceControlAddRemove = /*#__PURE__*/function () {
|
158
155
|
var _sourceControlAddRemove = _asyncToGenerator(function* (sourceControl, dirs) {
|
159
156
|
var _CodegenDirectory$get = CodegenDirectory.getAddedRemovedFiles(dirs),
|
160
157
|
added = _CodegenDirectory$get.added,
|
@@ -244,7 +241,7 @@ function () {
|
|
244
241
|
*/
|
245
242
|
;
|
246
243
|
|
247
|
-
_proto.deleteExtraFiles = function deleteExtraFiles() {
|
244
|
+
_proto.deleteExtraFiles = function deleteExtraFiles(keepExtraFile) {
|
248
245
|
var _this3 = this;
|
249
246
|
|
250
247
|
Profiler.run('CodegenDirectory.deleteExtraFiles', function () {
|
@@ -266,6 +263,10 @@ function () {
|
|
266
263
|
}
|
267
264
|
|
268
265
|
_this3._filesystem.readdirSync(firstLevelPath).forEach(function (actualFile) {
|
266
|
+
if (keepExtraFile && keepExtraFile(actualFile)) {
|
267
|
+
return;
|
268
|
+
}
|
269
|
+
|
269
270
|
if (_this3._files.has(actualFile)) {
|
270
271
|
return;
|
271
272
|
}
|
@@ -283,6 +284,10 @@ function () {
|
|
283
284
|
});
|
284
285
|
} else {
|
285
286
|
_this3._filesystem.readdirSync(_this3._dir).forEach(function (actualFile) {
|
287
|
+
if (keepExtraFile && keepExtraFile(actualFile)) {
|
288
|
+
return;
|
289
|
+
}
|
290
|
+
|
286
291
|
if (actualFile.startsWith('.') || _this3._files.has(actualFile)) {
|
287
292
|
return;
|
288
293
|
}
|