relay-compiler 0.0.0-main-4d287de9 → 0.0.0-main-9a79039d

Sign up to get free protection for your applications and to get access to all the features.
Files changed (259) hide show
  1. package/cli.js +23 -0
  2. package/index.js +19 -3
  3. package/linux-x64/relay +0 -0
  4. package/macos-x64/relay +0 -0
  5. package/package.json +2 -26
  6. package/win-x64/relay.exe +0 -0
  7. package/bin/RelayCompilerBin.js.flow +0 -168
  8. package/bin/RelayCompilerMain.js.flow +0 -513
  9. package/bin/__fixtures__/plugin-module.js.flow +0 -17
  10. package/bin/relay-compiler +0 -19066
  11. package/codegen/CodegenDirectory.js.flow +0 -372
  12. package/codegen/CodegenRunner.js.flow +0 -424
  13. package/codegen/CodegenTypes.js.flow +0 -28
  14. package/codegen/CodegenWatcher.js.flow +0 -250
  15. package/codegen/NormalizationCodeGenerator.js.flow +0 -565
  16. package/codegen/ReaderCodeGenerator.js.flow +0 -510
  17. package/codegen/RelayCodeGenerator.js.flow +0 -85
  18. package/codegen/RelayFileWriter.js.flow +0 -365
  19. package/codegen/SourceControl.js.flow +0 -58
  20. package/codegen/compileRelayArtifacts.js.flow +0 -181
  21. package/codegen/createPrintRequireModuleDependency.js.flow +0 -19
  22. package/codegen/sortObjectByKey.js.flow +0 -25
  23. package/codegen/writeRelayGeneratedFile.js.flow +0 -235
  24. package/core/ASTCache.js.flow +0 -73
  25. package/core/ASTConvert.js.flow +0 -230
  26. package/core/CompilerContext.js.flow +0 -189
  27. package/core/CompilerError.js.flow +0 -255
  28. package/core/DotGraphQLParser.js.flow +0 -37
  29. package/core/GraphQLCompilerProfiler.js.flow +0 -341
  30. package/core/GraphQLDerivedFromMetadata.js.flow +0 -36
  31. package/core/GraphQLWatchmanClient.js.flow +0 -109
  32. package/core/IR.js.flow +0 -326
  33. package/core/IRPrinter.js.flow +0 -472
  34. package/core/IRTransformer.js.flow +0 -376
  35. package/core/IRValidator.js.flow +0 -259
  36. package/core/IRVisitor.js.flow +0 -150
  37. package/core/JSModuleParser.js.flow +0 -24
  38. package/core/RelayCompilerScope.js.flow +0 -199
  39. package/core/RelayFindGraphQLTags.js.flow +0 -118
  40. package/core/RelayGraphQLEnumsGenerator.js.flow +0 -55
  41. package/core/RelayIRTransforms.js.flow +0 -138
  42. package/core/RelayParser.js.flow +0 -1731
  43. package/core/RelaySourceModuleParser.js.flow +0 -133
  44. package/core/Schema.js.flow +0 -2035
  45. package/core/SchemaUtils.js.flow +0 -120
  46. package/core/filterContextForNode.js.flow +0 -49
  47. package/core/getFieldDefinition.js.flow +0 -156
  48. package/core/getIdentifierForArgumentValue.js.flow +0 -49
  49. package/core/getIdentifierForSelection.js.flow +0 -68
  50. package/core/getLiteralArgumentValues.js.flow +0 -32
  51. package/core/getNormalizationOperationName.js.flow +0 -19
  52. package/core/inferRootArgumentDefinitions.js.flow +0 -322
  53. package/index.js.flow +0 -198
  54. package/language/RelayLanguagePluginInterface.js.flow +0 -283
  55. package/language/javascript/FindGraphQLTags.js.flow +0 -136
  56. package/language/javascript/RelayFlowBabelFactories.js.flow +0 -176
  57. package/language/javascript/RelayFlowGenerator.js.flow +0 -1096
  58. package/language/javascript/RelayFlowTypeTransformers.js.flow +0 -181
  59. package/language/javascript/RelayLanguagePluginJavaScript.js.flow +0 -33
  60. package/language/javascript/formatGeneratedModule.js.flow +0 -65
  61. package/lib/bin/RelayCompilerBin.js +0 -143
  62. package/lib/bin/RelayCompilerMain.js +0 -486
  63. package/lib/bin/__fixtures__/plugin-module.js +0 -16
  64. package/lib/codegen/CodegenDirectory.js +0 -335
  65. package/lib/codegen/CodegenRunner.js +0 -433
  66. package/lib/codegen/CodegenTypes.js +0 -11
  67. package/lib/codegen/CodegenWatcher.js +0 -271
  68. package/lib/codegen/NormalizationCodeGenerator.js +0 -487
  69. package/lib/codegen/ReaderCodeGenerator.js +0 -473
  70. package/lib/codegen/RelayCodeGenerator.js +0 -75
  71. package/lib/codegen/RelayFileWriter.js +0 -270
  72. package/lib/codegen/SourceControl.js +0 -60
  73. package/lib/codegen/compileRelayArtifacts.js +0 -157
  74. package/lib/codegen/createPrintRequireModuleDependency.js +0 -19
  75. package/lib/codegen/sortObjectByKey.js +0 -41
  76. package/lib/codegen/writeRelayGeneratedFile.js +0 -206
  77. package/lib/core/ASTCache.js +0 -70
  78. package/lib/core/ASTConvert.js +0 -198
  79. package/lib/core/CompilerContext.js +0 -165
  80. package/lib/core/CompilerError.js +0 -252
  81. package/lib/core/DotGraphQLParser.js +0 -40
  82. package/lib/core/GraphQLCompilerProfiler.js +0 -299
  83. package/lib/core/GraphQLDerivedFromMetadata.js +0 -31
  84. package/lib/core/GraphQLWatchmanClient.js +0 -150
  85. package/lib/core/IR.js +0 -11
  86. package/lib/core/IRPrinter.js +0 -388
  87. package/lib/core/IRTransformer.js +0 -345
  88. package/lib/core/IRValidator.js +0 -226
  89. package/lib/core/IRVisitor.js +0 -45
  90. package/lib/core/JSModuleParser.js +0 -18
  91. package/lib/core/RelayCompilerScope.js +0 -183
  92. package/lib/core/RelayFindGraphQLTags.js +0 -79
  93. package/lib/core/RelayGraphQLEnumsGenerator.js +0 -50
  94. package/lib/core/RelayIRTransforms.js +0 -109
  95. package/lib/core/RelayParser.js +0 -1381
  96. package/lib/core/RelaySourceModuleParser.js +0 -104
  97. package/lib/core/Schema.js +0 -1877
  98. package/lib/core/SchemaUtils.js +0 -98
  99. package/lib/core/filterContextForNode.js +0 -50
  100. package/lib/core/getFieldDefinition.js +0 -145
  101. package/lib/core/getIdentifierForArgumentValue.js +0 -54
  102. package/lib/core/getIdentifierForSelection.js +0 -49
  103. package/lib/core/getLiteralArgumentValues.js +0 -26
  104. package/lib/core/getNormalizationOperationName.js +0 -17
  105. package/lib/core/inferRootArgumentDefinitions.js +0 -351
  106. package/lib/index.js +0 -178
  107. package/lib/language/RelayLanguagePluginInterface.js +0 -26
  108. package/lib/language/javascript/FindGraphQLTags.js +0 -126
  109. package/lib/language/javascript/RelayFlowBabelFactories.js +0 -160
  110. package/lib/language/javascript/RelayFlowGenerator.js +0 -856
  111. package/lib/language/javascript/RelayFlowTypeTransformers.js +0 -119
  112. package/lib/language/javascript/RelayLanguagePluginJavaScript.js +0 -30
  113. package/lib/language/javascript/formatGeneratedModule.js +0 -36
  114. package/lib/reporters/ConsoleReporter.js +0 -61
  115. package/lib/reporters/MultiReporter.js +0 -45
  116. package/lib/reporters/Reporter.js +0 -11
  117. package/lib/runner/Artifacts.js +0 -323
  118. package/lib/runner/BufferedFilesystem.js +0 -262
  119. package/lib/runner/GraphQLASTNodeGroup.js +0 -256
  120. package/lib/runner/GraphQLASTUtils.js +0 -23
  121. package/lib/runner/GraphQLNodeMap.js +0 -81
  122. package/lib/runner/Sources.js +0 -271
  123. package/lib/runner/StrictMap.js +0 -134
  124. package/lib/runner/compileArtifacts.js +0 -39
  125. package/lib/runner/extractAST.js +0 -77
  126. package/lib/runner/getChangedNodeNames.js +0 -82
  127. package/lib/runner/getSchemaInstance.js +0 -30
  128. package/lib/runner/types.js +0 -12
  129. package/lib/transforms/ApplyFragmentArgumentTransform.js +0 -393
  130. package/lib/transforms/ClientExtensionsTransform.js +0 -221
  131. package/lib/transforms/ConnectionTransform.js +0 -639
  132. package/lib/transforms/DeclarativeConnectionMutationTransform.js +0 -218
  133. package/lib/transforms/DeferStreamTransform.js +0 -246
  134. package/lib/transforms/DisallowIdAsAlias.js +0 -40
  135. package/lib/transforms/DisallowTypenameOnRoot.js +0 -53
  136. package/lib/transforms/FieldHandleTransform.js +0 -79
  137. package/lib/transforms/FilterCompilerDirectivesTransform.js +0 -29
  138. package/lib/transforms/FilterDirectivesTransform.js +0 -42
  139. package/lib/transforms/FlattenTransform.js +0 -306
  140. package/lib/transforms/GenerateIDFieldTransform.js +0 -135
  141. package/lib/transforms/GenerateTypeNameTransform.js +0 -149
  142. package/lib/transforms/InlineDataFragmentTransform.js +0 -100
  143. package/lib/transforms/InlineFragmentsTransform.js +0 -61
  144. package/lib/transforms/MaskTransform.js +0 -117
  145. package/lib/transforms/MatchTransform.js +0 -434
  146. package/lib/transforms/ReactFlightComponentTransform.js +0 -158
  147. package/lib/transforms/RefetchableFragmentTransform.js +0 -249
  148. package/lib/transforms/RelayDirectiveTransform.js +0 -83
  149. package/lib/transforms/RequiredFieldTransform.js +0 -369
  150. package/lib/transforms/SkipClientExtensionsTransform.js +0 -46
  151. package/lib/transforms/SkipHandleFieldTransform.js +0 -45
  152. package/lib/transforms/SkipRedundantNodesTransform.js +0 -261
  153. package/lib/transforms/SkipSplitOperationTransform.js +0 -32
  154. package/lib/transforms/SkipUnreachableNodeTransform.js +0 -158
  155. package/lib/transforms/SkipUnusedVariablesTransform.js +0 -75
  156. package/lib/transforms/SplitModuleImportTransform.js +0 -82
  157. package/lib/transforms/TestOperationTransform.js +0 -144
  158. package/lib/transforms/TransformUtils.js +0 -21
  159. package/lib/transforms/ValidateGlobalVariablesTransform.js +0 -92
  160. package/lib/transforms/ValidateRequiredArgumentsTransform.js +0 -114
  161. package/lib/transforms/ValidateServerOnlyDirectivesTransform.js +0 -108
  162. package/lib/transforms/ValidateUnusedVariablesTransform.js +0 -96
  163. package/lib/transforms/query-generators/FetchableQueryGenerator.js +0 -157
  164. package/lib/transforms/query-generators/NodeQueryGenerator.js +0 -166
  165. package/lib/transforms/query-generators/QueryQueryGenerator.js +0 -48
  166. package/lib/transforms/query-generators/ViewerQueryGenerator.js +0 -77
  167. package/lib/transforms/query-generators/index.js +0 -60
  168. package/lib/transforms/query-generators/utils.js +0 -92
  169. package/lib/util/CodeMarker.js +0 -80
  170. package/lib/util/DefaultHandleKey.js +0 -15
  171. package/lib/util/RelayCompilerCache.js +0 -97
  172. package/lib/util/Rollout.js +0 -40
  173. package/lib/util/TimeReporter.js +0 -83
  174. package/lib/util/areEqualArgValues.js +0 -135
  175. package/lib/util/argumentContainsVariables.js +0 -37
  176. package/lib/util/dedupeJSONStringify.js +0 -160
  177. package/lib/util/generateAbstractTypeRefinementKey.js +0 -24
  178. package/lib/util/getDefinitionNodeHash.js +0 -22
  179. package/lib/util/getModuleName.js +0 -32
  180. package/lib/util/joinArgumentDefinitions.js +0 -67
  181. package/lib/util/md5.js +0 -17
  182. package/lib/util/murmurHash.js +0 -86
  183. package/lib/util/nullthrowsOSS.js +0 -23
  184. package/lib/util/orList.js +0 -36
  185. package/lib/util/partitionArray.js +0 -35
  186. package/relay-compiler.js +0 -17
  187. package/relay-compiler.min.js +0 -22
  188. package/reporters/ConsoleReporter.js.flow +0 -81
  189. package/reporters/MultiReporter.js.flow +0 -43
  190. package/reporters/Reporter.js.flow +0 -19
  191. package/runner/Artifacts.js.flow +0 -215
  192. package/runner/BufferedFilesystem.js.flow +0 -194
  193. package/runner/GraphQLASTNodeGroup.js.flow +0 -174
  194. package/runner/GraphQLASTUtils.js.flow +0 -26
  195. package/runner/GraphQLNodeMap.js.flow +0 -55
  196. package/runner/Sources.js.flow +0 -227
  197. package/runner/StrictMap.js.flow +0 -96
  198. package/runner/compileArtifacts.js.flow +0 -75
  199. package/runner/extractAST.js.flow +0 -98
  200. package/runner/getChangedNodeNames.js.flow +0 -48
  201. package/runner/getSchemaInstance.js.flow +0 -36
  202. package/runner/types.js.flow +0 -37
  203. package/transforms/ApplyFragmentArgumentTransform.js.flow +0 -524
  204. package/transforms/ClientExtensionsTransform.js.flow +0 -224
  205. package/transforms/ConnectionTransform.js.flow +0 -850
  206. package/transforms/DeclarativeConnectionMutationTransform.js.flow +0 -245
  207. package/transforms/DeferStreamTransform.js.flow +0 -263
  208. package/transforms/DisallowIdAsAlias.js.flow +0 -46
  209. package/transforms/DisallowTypenameOnRoot.js.flow +0 -44
  210. package/transforms/FieldHandleTransform.js.flow +0 -77
  211. package/transforms/FilterCompilerDirectivesTransform.js.flow +0 -33
  212. package/transforms/FilterDirectivesTransform.js.flow +0 -45
  213. package/transforms/FlattenTransform.js.flow +0 -458
  214. package/transforms/GenerateIDFieldTransform.js.flow +0 -151
  215. package/transforms/GenerateTypeNameTransform.js.flow +0 -159
  216. package/transforms/InlineDataFragmentTransform.js.flow +0 -123
  217. package/transforms/InlineFragmentsTransform.js.flow +0 -70
  218. package/transforms/MaskTransform.js.flow +0 -124
  219. package/transforms/MatchTransform.js.flow +0 -587
  220. package/transforms/ReactFlightComponentTransform.js.flow +0 -194
  221. package/transforms/RefetchableFragmentTransform.js.flow +0 -266
  222. package/transforms/RelayDirectiveTransform.js.flow +0 -96
  223. package/transforms/RequiredFieldTransform.js.flow +0 -413
  224. package/transforms/SkipClientExtensionsTransform.js.flow +0 -54
  225. package/transforms/SkipHandleFieldTransform.js.flow +0 -44
  226. package/transforms/SkipRedundantNodesTransform.js.flow +0 -255
  227. package/transforms/SkipSplitOperationTransform.js.flow +0 -37
  228. package/transforms/SkipUnreachableNodeTransform.js.flow +0 -148
  229. package/transforms/SkipUnusedVariablesTransform.js.flow +0 -59
  230. package/transforms/SplitModuleImportTransform.js.flow +0 -97
  231. package/transforms/TestOperationTransform.js.flow +0 -142
  232. package/transforms/TransformUtils.js.flow +0 -26
  233. package/transforms/ValidateGlobalVariablesTransform.js.flow +0 -80
  234. package/transforms/ValidateRequiredArgumentsTransform.js.flow +0 -126
  235. package/transforms/ValidateServerOnlyDirectivesTransform.js.flow +0 -111
  236. package/transforms/ValidateUnusedVariablesTransform.js.flow +0 -88
  237. package/transforms/query-generators/FetchableQueryGenerator.js.flow +0 -188
  238. package/transforms/query-generators/NodeQueryGenerator.js.flow +0 -217
  239. package/transforms/query-generators/QueryQueryGenerator.js.flow +0 -57
  240. package/transforms/query-generators/ViewerQueryGenerator.js.flow +0 -97
  241. package/transforms/query-generators/index.js.flow +0 -89
  242. package/transforms/query-generators/utils.js.flow +0 -76
  243. package/util/CodeMarker.js.flow +0 -79
  244. package/util/DefaultHandleKey.js.flow +0 -17
  245. package/util/RelayCompilerCache.js.flow +0 -86
  246. package/util/Rollout.js.flow +0 -39
  247. package/util/TimeReporter.js.flow +0 -79
  248. package/util/areEqualArgValues.js.flow +0 -126
  249. package/util/argumentContainsVariables.js.flow +0 -38
  250. package/util/dedupeJSONStringify.js.flow +0 -152
  251. package/util/generateAbstractTypeRefinementKey.js.flow +0 -29
  252. package/util/getDefinitionNodeHash.js.flow +0 -24
  253. package/util/getModuleName.js.flow +0 -39
  254. package/util/joinArgumentDefinitions.js.flow +0 -105
  255. package/util/md5.js.flow +0 -19
  256. package/util/murmurHash.js.flow +0 -94
  257. package/util/nullthrowsOSS.js.flow +0 -25
  258. package/util/orList.js.flow +0 -37
  259. package/util/partitionArray.js.flow +0 -37
@@ -1,486 +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 _asyncToGenerator = require("@babel/runtime/helpers/asyncToGenerator");
16
-
17
- var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
18
-
19
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
20
-
21
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
22
-
23
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
24
-
25
- var CodegenRunner = require('../codegen/CodegenRunner');
26
-
27
- var RelayFileWriter = require('../codegen/RelayFileWriter');
28
-
29
- var DotGraphQLParser = require('../core/DotGraphQLParser');
30
-
31
- var WatchmanClient = require('../core/GraphQLWatchmanClient');
32
-
33
- var RelayIRTransforms = require('../core/RelayIRTransforms');
34
-
35
- var RelaySourceModuleParser = require('../core/RelaySourceModuleParser');
36
-
37
- var RelayLanguagePluginJavaScript = require('../language/javascript/RelayLanguagePluginJavaScript');
38
-
39
- var ConsoleReporter = require('../reporters/ConsoleReporter');
40
-
41
- var crypto = require('crypto');
42
-
43
- var fs = require('fs');
44
-
45
- var glob = require('glob');
46
-
47
- var _require = require('graphql'),
48
- Source = _require.Source,
49
- buildClientSchema = _require.buildClientSchema,
50
- printSchema = _require.printSchema;
51
-
52
- var invariant = require('invariant');
53
-
54
- var path = require('path');
55
-
56
- var commonTransforms = RelayIRTransforms.commonTransforms,
57
- codegenTransforms = RelayIRTransforms.codegenTransforms,
58
- fragmentTransforms = RelayIRTransforms.fragmentTransforms,
59
- printTransforms = RelayIRTransforms.printTransforms,
60
- queryTransforms = RelayIRTransforms.queryTransforms,
61
- relaySchemaExtensions = RelayIRTransforms.schemaExtensions;
62
-
63
- function buildWatchExpression(config) {
64
- return ['allof', ['type', 'f'], ['anyof'].concat((0, _toConsumableArray2["default"])(config.extensions.map(function (ext) {
65
- return ['suffix', ext];
66
- }))), ['anyof'].concat((0, _toConsumableArray2["default"])(config.include.map(function (include) {
67
- return ['match', include, 'wholename'];
68
- })))].concat((0, _toConsumableArray2["default"])(config.exclude.map(function (exclude) {
69
- return ['not', ['match', exclude, 'wholename']];
70
- })));
71
- }
72
-
73
- function getFilepathsFromGlob(baseDir, config) {
74
- var extensions = config.extensions,
75
- include = config.include,
76
- exclude = config.exclude;
77
- var files = new Set();
78
- include.forEach(function (inc) {
79
- return glob.sync("".concat(inc, "/*.+(").concat(extensions.join('|'), ")"), {
80
- cwd: baseDir,
81
- ignore: exclude
82
- }).forEach(function (file) {
83
- return files.add(file);
84
- });
85
- });
86
- return Array.from(files);
87
- }
88
-
89
- /**
90
- * Unless the requested plugin is the builtin `javascript` one, import a
91
- * language plugin as either a CommonJS or ES2015 module.
92
- *
93
- * When importing, first check if it’s a path to an existing file, otherwise
94
- * assume it’s a package and prepend the plugin namespace prefix.
95
- *
96
- * Make sure to always use Node's `require` function, which otherwise would get
97
- * replaced with `__webpack_require__` when bundled using webpack, by using
98
- * `eval` to get it at runtime.
99
- */
100
- function getLanguagePlugin(language, options) {
101
- if (language === 'javascript') {
102
- return RelayLanguagePluginJavaScript({
103
- eagerESModules: Boolean(options && options.eagerESModules)
104
- });
105
- } else {
106
- var languagePlugin;
107
-
108
- if (typeof language === 'string') {
109
- var pluginPath = path.resolve(process.cwd(), language);
110
- var requirePath = fs.existsSync(pluginPath) ? pluginPath : "relay-compiler-language-".concat(language);
111
-
112
- try {
113
- // eslint-disable-next-line no-eval
114
- languagePlugin = eval('require')(requirePath);
115
-
116
- if (languagePlugin["default"]) {
117
- languagePlugin = languagePlugin["default"];
118
- }
119
- } catch (err) {
120
- var e = new Error("Unable to load language plugin ".concat(requirePath, ": ").concat(err.message));
121
- e.stack = err.stack;
122
- throw e;
123
- }
124
- } else {
125
- languagePlugin = language;
126
- }
127
-
128
- if (languagePlugin["default"] != null) {
129
- /* $FlowFixMe[incompatible-type] - Flow no longer considers statics of
130
- * functions as any */
131
- languagePlugin = languagePlugin["default"];
132
- }
133
-
134
- if (typeof languagePlugin === 'function') {
135
- // $FlowFixMe[incompatible-use]
136
- return languagePlugin();
137
- } else {
138
- throw new Error('Expected plugin to be a initializer function.');
139
- }
140
- }
141
- }
142
-
143
- function getPersistQueryFunction(config) {
144
- var configValue = config.persistFunction;
145
-
146
- if (configValue == null) {
147
- return null;
148
- } else if (typeof configValue === 'string') {
149
- try {
150
- // eslint-disable-next-line no-eval
151
- var persistFunction = eval('require')(path.resolve(process.cwd(), configValue));
152
-
153
- if (persistFunction["default"]) {
154
- return persistFunction["default"];
155
- }
156
-
157
- return persistFunction;
158
- } catch (err) {
159
- var e = new Error("Unable to load persistFunction ".concat(configValue, ": ").concat(err.message));
160
- e.stack = err.stack;
161
- throw e;
162
- }
163
- } else if (typeof configValue === 'function') {
164
- return configValue;
165
- } else {
166
- throw new Error('Expected persistFunction to be a path string or a function.');
167
- }
168
- }
169
-
170
- function main(_x) {
171
- return _main.apply(this, arguments);
172
- }
173
-
174
- function _main() {
175
- _main = _asyncToGenerator(function* (defaultConfig) {
176
- if (defaultConfig.verbose && defaultConfig.quiet) {
177
- throw new Error("I can't be quiet and verbose at the same time");
178
- }
179
-
180
- var config = getPathBasedConfig(defaultConfig);
181
- config = yield getWatchConfig(config); // Use function from module.exports to be able to mock it for tests
182
-
183
- var codegenRunner = module.exports.getCodegenRunner(config);
184
- var result = config.watch ? yield codegenRunner.watchAll() : yield codegenRunner.compileAll();
185
-
186
- if (result === 'ERROR') {
187
- process.exit(100);
188
- }
189
-
190
- if (config.validate && result !== 'NO_CHANGES') {
191
- process.exit(101);
192
- }
193
- });
194
- return _main.apply(this, arguments);
195
- }
196
-
197
- function getPathBasedConfig(config) {
198
- var schema = path.resolve(process.cwd(), config.schema);
199
-
200
- if (!fs.existsSync(schema)) {
201
- throw new Error("--schema path does not exist: ".concat(schema));
202
- }
203
-
204
- var src = path.resolve(process.cwd(), config.src);
205
-
206
- if (!fs.existsSync(src)) {
207
- throw new Error("--src path does not exist: ".concat(src));
208
- }
209
-
210
- var persistOutput = config.persistOutput;
211
-
212
- if (typeof persistOutput === 'string') {
213
- persistOutput = path.resolve(process.cwd(), persistOutput);
214
- var persistOutputDir = path.dirname(persistOutput);
215
-
216
- if (!fs.existsSync(persistOutputDir)) {
217
- throw new Error("--persistOutput path does not exist: ".concat(persistOutput));
218
- }
219
- }
220
-
221
- return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, config), {}, {
222
- schema: schema,
223
- src: src,
224
- persistOutput: persistOutput
225
- });
226
- }
227
-
228
- function getWatchConfig(_x2) {
229
- return _getWatchConfig.apply(this, arguments);
230
- }
231
-
232
- function _getWatchConfig() {
233
- _getWatchConfig = _asyncToGenerator(function* (config) {
234
- var watchman = config.watchman && (yield WatchmanClient.isAvailable());
235
-
236
- if (config.watch) {
237
- if (!watchman) {
238
- console.error('Watchman is required to watch for changes. Running with watch mode disabled.');
239
- return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, config), {}, {
240
- watch: false,
241
- watchman: false
242
- });
243
- }
244
-
245
- if (!module.exports.hasWatchmanRootFile(config.src)) {
246
- throw new Error("\n--watch requires that the src directory have a valid watchman \"root\" file.\n\nRoot files can include:\n- A .git/ Git folder\n- A .hg/ Mercurial folder\n- A .watchmanconfig file\n\nEnsure that one such file exists in ".concat(config.src, " or its parents.\n ").trim());
247
- }
248
- } else if (watchman && !config.validate) {
249
- // eslint-disable-next-line no-console
250
- console.log('HINT: pass --watch to keep watching for changes.');
251
- }
252
-
253
- return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, config), {}, {
254
- watchman: watchman
255
- });
256
- });
257
- return _getWatchConfig.apply(this, arguments);
258
- }
259
-
260
- function getCodegenRunner(config) {
261
- var _parserConfigs;
262
-
263
- var reporter = new ConsoleReporter({
264
- verbose: config.verbose,
265
- quiet: config.quiet
266
- });
267
- var schema = getSchemaSource(config.schema);
268
- var languagePlugin = getLanguagePlugin(config.language, {
269
- eagerESModules: config.eagerESModules === true
270
- });
271
- var persistQueryFunction = getPersistQueryFunction(config);
272
- var inputExtensions = config.extensions || languagePlugin.inputExtensions;
273
- var outputExtension = languagePlugin.outputExtension;
274
- var sourceParserName = inputExtensions.join('/');
275
- var sourceWriterName = outputExtension;
276
- var sourceModuleParser = RelaySourceModuleParser(languagePlugin.findGraphQLTags, languagePlugin.getFileFilter);
277
- var providedArtifactDirectory = config.artifactDirectory;
278
- var artifactDirectory = providedArtifactDirectory != null ? path.resolve(process.cwd(), providedArtifactDirectory) : null;
279
- var generatedDirectoryName = artifactDirectory !== null && artifactDirectory !== void 0 ? artifactDirectory : '__generated__';
280
- var sourceSearchOptions = {
281
- extensions: inputExtensions,
282
- include: config.include,
283
- exclude: ['**/*.graphql.*'].concat((0, _toConsumableArray2["default"])(config.exclude))
284
- };
285
- var graphqlSearchOptions = {
286
- extensions: ['graphql'],
287
- include: config.include,
288
- exclude: [path.relative(config.src, config.schema)].concat(config.exclude)
289
- };
290
-
291
- var defaultIsGeneratedFile = function defaultIsGeneratedFile(filePath) {
292
- return filePath.endsWith('.graphql.' + outputExtension) && filePath.includes(generatedDirectoryName);
293
- };
294
-
295
- var schemaExtensions = languagePlugin.schemaExtensions ? [].concat((0, _toConsumableArray2["default"])(languagePlugin.schemaExtensions), (0, _toConsumableArray2["default"])(relaySchemaExtensions)) : relaySchemaExtensions;
296
- var parserConfigs = (_parserConfigs = {}, (0, _defineProperty2["default"])(_parserConfigs, sourceParserName, {
297
- baseDir: config.src,
298
- getFileFilter: sourceModuleParser.getFileFilter,
299
- getParser: sourceModuleParser.getParser,
300
- getSchemaSource: function getSchemaSource() {
301
- return schema;
302
- },
303
- schemaExtensions: schemaExtensions,
304
- watchmanExpression: config.watchman ? buildWatchExpression(sourceSearchOptions) : null,
305
- filepaths: config.watchman ? null : getFilepathsFromGlob(config.src, sourceSearchOptions)
306
- }), (0, _defineProperty2["default"])(_parserConfigs, "graphql", {
307
- baseDir: config.src,
308
- getParser: DotGraphQLParser.getParser,
309
- getSchemaSource: function getSchemaSource() {
310
- return schema;
311
- },
312
- schemaExtensions: schemaExtensions,
313
- watchmanExpression: config.watchman ? buildWatchExpression(graphqlSearchOptions) : null,
314
- filepaths: config.watchman ? null : getFilepathsFromGlob(config.src, graphqlSearchOptions)
315
- }), _parserConfigs);
316
- var writerConfigs = (0, _defineProperty2["default"])({}, sourceWriterName, {
317
- writeFiles: getRelayFileWriter(config.src, languagePlugin, config.noFutureProofEnums, artifactDirectory, config.persistOutput, config.customScalars, persistQueryFunction, config.repersist),
318
- isGeneratedFile: languagePlugin.isGeneratedFile ? languagePlugin.isGeneratedFile : defaultIsGeneratedFile,
319
- parser: sourceParserName,
320
- baseParsers: ['graphql']
321
- });
322
- var codegenRunner = new CodegenRunner({
323
- reporter: reporter,
324
- parserConfigs: parserConfigs,
325
- writerConfigs: writerConfigs,
326
- onlyValidate: config.validate,
327
- // TODO: allow passing in a flag or detect?
328
- sourceControl: null
329
- });
330
- return codegenRunner;
331
- }
332
-
333
- function defaultPersistFunction(text) {
334
- var hasher = crypto.createHash('md5');
335
- hasher.update(text);
336
- var id = hasher.digest('hex');
337
- return Promise.resolve(id);
338
- }
339
-
340
- function getRelayFileWriter(baseDir, languagePlugin, noFutureProofEnums, outputDir, persistedQueryPath, customScalars, persistFunction, repersist) {
341
- return /*#__PURE__*/function () {
342
- var _ref2 = _asyncToGenerator(function* (_ref) {
343
- var onlyValidate = _ref.onlyValidate,
344
- schema = _ref.schema,
345
- documents = _ref.documents,
346
- baseDocuments = _ref.baseDocuments,
347
- sourceControl = _ref.sourceControl,
348
- reporter = _ref.reporter;
349
- var persistQuery;
350
- var queryMap;
351
-
352
- if (persistFunction != null || persistedQueryPath != null) {
353
- queryMap = new Map();
354
- var persistImplmentation = persistFunction || defaultPersistFunction;
355
-
356
- persistQuery = /*#__PURE__*/function () {
357
- var _persistQuery = _asyncToGenerator(function* (text) {
358
- var id = yield persistImplmentation(text);
359
- !(typeof id === 'string') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected persist function to return a string, got `%s`.', id) : invariant(false) : void 0;
360
- queryMap.set(id, text);
361
- return id;
362
- });
363
-
364
- function persistQuery(_x4) {
365
- return _persistQuery.apply(this, arguments);
366
- }
367
-
368
- return persistQuery;
369
- }();
370
- }
371
-
372
- var schemaExtensions = languagePlugin.schemaExtensions ? [].concat((0, _toConsumableArray2["default"])(languagePlugin.schemaExtensions), (0, _toConsumableArray2["default"])(relaySchemaExtensions)) : relaySchemaExtensions;
373
- var results = yield RelayFileWriter.writeAll({
374
- config: {
375
- baseDir: baseDir,
376
- compilerTransforms: {
377
- commonTransforms: commonTransforms,
378
- codegenTransforms: codegenTransforms,
379
- fragmentTransforms: fragmentTransforms,
380
- printTransforms: printTransforms,
381
- queryTransforms: queryTransforms
382
- },
383
- customScalars: customScalars || {},
384
- formatModule: languagePlugin.formatModule,
385
- optionalInputFieldsForFlow: [],
386
- schemaExtensions: schemaExtensions,
387
- useHaste: false,
388
- noFutureProofEnums: noFutureProofEnums,
389
- extension: languagePlugin.outputExtension,
390
- typeGenerator: languagePlugin.typeGenerator,
391
- outputDir: outputDir,
392
- persistQuery: persistQuery,
393
- repersist: repersist
394
- },
395
- onlyValidate: onlyValidate,
396
- schema: schema,
397
- baseDocuments: baseDocuments,
398
- documents: documents,
399
- reporter: reporter,
400
- sourceControl: sourceControl,
401
- languagePlugin: languagePlugin
402
- });
403
-
404
- if (queryMap != null && persistedQueryPath != null) {
405
- var object = {};
406
-
407
- if (fs.existsSync(persistedQueryPath)) {
408
- try {
409
- var prevText = fs.readFileSync(persistedQueryPath, 'utf8');
410
- var prevData = JSON.parse(prevText);
411
-
412
- if (prevData != null && typeof prevData === 'object') {
413
- object = prevData;
414
- } else {
415
- console.error("Invalid data in persisted query file '".concat(persistedQueryPath, "', expected an object."));
416
- }
417
- } catch (error) {
418
- console.error(error);
419
- }
420
- }
421
-
422
- var _iterator = (0, _createForOfIteratorHelper2["default"])(queryMap.entries()),
423
- _step;
424
-
425
- try {
426
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
427
- var _step$value = _step.value,
428
- id = _step$value[0],
429
- _text = _step$value[1];
430
- object[id] = _text;
431
- }
432
- } catch (err) {
433
- _iterator.e(err);
434
- } finally {
435
- _iterator.f();
436
- }
437
-
438
- var data = JSON.stringify(object, null, 2);
439
- fs.writeFileSync(persistedQueryPath, data, 'utf8');
440
- }
441
-
442
- return results;
443
- });
444
-
445
- return function (_x3) {
446
- return _ref2.apply(this, arguments);
447
- };
448
- }();
449
- }
450
-
451
- function getSchemaSource(schemaPath) {
452
- var source = fs.readFileSync(schemaPath, 'utf8');
453
-
454
- if (path.extname(schemaPath) === '.json') {
455
- source = printSchema(buildClientSchema(JSON.parse(source).data));
456
- }
457
-
458
- source = "\n directive @include(if: Boolean) on FRAGMENT_SPREAD | FIELD | INLINE_FRAGMENT\n directive @skip(if: Boolean) on FRAGMENT_SPREAD | FIELD | INLINE_FRAGMENT\n\n ".concat(source, "\n ");
459
- return new Source(source, schemaPath);
460
- } // Ensure that a watchman "root" file exists in the given directory
461
- // or a parent so that it can be watched
462
-
463
-
464
- var WATCHMAN_ROOT_FILES = ['.git', '.hg', '.watchmanconfig'];
465
-
466
- function hasWatchmanRootFile(testPath) {
467
- while (path.dirname(testPath) !== testPath) {
468
- if (WATCHMAN_ROOT_FILES.some(function (file) {
469
- return fs.existsSync(path.join(testPath, file));
470
- })) {
471
- return true;
472
- }
473
-
474
- testPath = path.dirname(testPath);
475
- }
476
-
477
- return false;
478
- }
479
-
480
- module.exports = {
481
- getCodegenRunner: getCodegenRunner,
482
- getLanguagePlugin: getLanguagePlugin,
483
- getWatchConfig: getWatchConfig,
484
- hasWatchmanRootFile: hasWatchmanRootFile,
485
- main: main
486
- };
@@ -1,16 +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
- * @emails oncall+relay
10
- */
11
- // flowlint ambiguous-object-type:error
12
- 'use strict';
13
-
14
- var RelayLanguagePluginJavaScript = require('../../language/javascript/RelayLanguagePluginJavaScript');
15
-
16
- module.exports = RelayLanguagePluginJavaScript;