relay-compiler 0.0.0-main-f0b65f0b → 0.0.0-main-e0026a71

Sign up to get free protection for your applications and to get access to all the features.
Files changed (263) 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 -24
  6. package/win-x64/relay.exe +0 -0
  7. package/bin/RelayCompilerBin.js.flow +0 -168
  8. package/bin/RelayCompilerMain.js.flow +0 -515
  9. package/bin/__fixtures__/plugin-module.js.flow +0 -17
  10. package/bin/relay-compiler +0 -19068
  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 -566
  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 -1741
  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 -488
  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/test-utils/TestSchema.js +0 -27
  130. package/lib/test-utils/parseGraphQLText.js +0 -30
  131. package/lib/transforms/ApplyFragmentArgumentTransform.js +0 -393
  132. package/lib/transforms/ClientExtensionsTransform.js +0 -221
  133. package/lib/transforms/ConnectionTransform.js +0 -639
  134. package/lib/transforms/DeclarativeConnectionMutationTransform.js +0 -218
  135. package/lib/transforms/DeferStreamTransform.js +0 -246
  136. package/lib/transforms/DisallowIdAsAlias.js +0 -40
  137. package/lib/transforms/DisallowTypenameOnRoot.js +0 -53
  138. package/lib/transforms/FieldHandleTransform.js +0 -79
  139. package/lib/transforms/FilterCompilerDirectivesTransform.js +0 -29
  140. package/lib/transforms/FilterDirectivesTransform.js +0 -42
  141. package/lib/transforms/FlattenTransform.js +0 -306
  142. package/lib/transforms/GenerateIDFieldTransform.js +0 -135
  143. package/lib/transforms/GenerateTypeNameTransform.js +0 -149
  144. package/lib/transforms/InlineDataFragmentTransform.js +0 -100
  145. package/lib/transforms/InlineFragmentsTransform.js +0 -61
  146. package/lib/transforms/MaskTransform.js +0 -117
  147. package/lib/transforms/MatchTransform.js +0 -434
  148. package/lib/transforms/ReactFlightComponentTransform.js +0 -158
  149. package/lib/transforms/RefetchableFragmentTransform.js +0 -249
  150. package/lib/transforms/RelayDirectiveTransform.js +0 -83
  151. package/lib/transforms/RequiredFieldTransform.js +0 -369
  152. package/lib/transforms/SkipClientExtensionsTransform.js +0 -46
  153. package/lib/transforms/SkipHandleFieldTransform.js +0 -45
  154. package/lib/transforms/SkipRedundantNodesTransform.js +0 -261
  155. package/lib/transforms/SkipSplitOperationTransform.js +0 -32
  156. package/lib/transforms/SkipUnreachableNodeTransform.js +0 -158
  157. package/lib/transforms/SkipUnusedVariablesTransform.js +0 -75
  158. package/lib/transforms/SplitModuleImportTransform.js +0 -82
  159. package/lib/transforms/TestOperationTransform.js +0 -144
  160. package/lib/transforms/TransformUtils.js +0 -21
  161. package/lib/transforms/ValidateGlobalVariablesTransform.js +0 -92
  162. package/lib/transforms/ValidateRequiredArgumentsTransform.js +0 -114
  163. package/lib/transforms/ValidateServerOnlyDirectivesTransform.js +0 -108
  164. package/lib/transforms/ValidateUnusedVariablesTransform.js +0 -96
  165. package/lib/transforms/query-generators/FetchableQueryGenerator.js +0 -157
  166. package/lib/transforms/query-generators/NodeQueryGenerator.js +0 -166
  167. package/lib/transforms/query-generators/QueryQueryGenerator.js +0 -48
  168. package/lib/transforms/query-generators/ViewerQueryGenerator.js +0 -77
  169. package/lib/transforms/query-generators/index.js +0 -60
  170. package/lib/transforms/query-generators/utils.js +0 -92
  171. package/lib/util/CodeMarker.js +0 -80
  172. package/lib/util/DefaultHandleKey.js +0 -15
  173. package/lib/util/RelayCompilerCache.js +0 -97
  174. package/lib/util/Rollout.js +0 -40
  175. package/lib/util/TimeReporter.js +0 -83
  176. package/lib/util/areEqualArgValues.js +0 -135
  177. package/lib/util/argumentContainsVariables.js +0 -37
  178. package/lib/util/dedupeJSONStringify.js +0 -160
  179. package/lib/util/generateAbstractTypeRefinementKey.js +0 -24
  180. package/lib/util/getDefinitionNodeHash.js +0 -22
  181. package/lib/util/getModuleName.js +0 -32
  182. package/lib/util/joinArgumentDefinitions.js +0 -67
  183. package/lib/util/md5.js +0 -17
  184. package/lib/util/murmurHash.js +0 -86
  185. package/lib/util/nullthrowsOSS.js +0 -23
  186. package/lib/util/orList.js +0 -36
  187. package/lib/util/partitionArray.js +0 -35
  188. package/relay-compiler.js +0 -17
  189. package/relay-compiler.min.js +0 -22
  190. package/reporters/ConsoleReporter.js.flow +0 -81
  191. package/reporters/MultiReporter.js.flow +0 -43
  192. package/reporters/Reporter.js.flow +0 -19
  193. package/runner/Artifacts.js.flow +0 -215
  194. package/runner/BufferedFilesystem.js.flow +0 -194
  195. package/runner/GraphQLASTNodeGroup.js.flow +0 -174
  196. package/runner/GraphQLASTUtils.js.flow +0 -26
  197. package/runner/GraphQLNodeMap.js.flow +0 -55
  198. package/runner/Sources.js.flow +0 -227
  199. package/runner/StrictMap.js.flow +0 -96
  200. package/runner/compileArtifacts.js.flow +0 -75
  201. package/runner/extractAST.js.flow +0 -98
  202. package/runner/getChangedNodeNames.js.flow +0 -48
  203. package/runner/getSchemaInstance.js.flow +0 -36
  204. package/runner/types.js.flow +0 -37
  205. package/test-utils/TestSchema.js.flow +0 -30
  206. package/test-utils/parseGraphQLText.js.flow +0 -41
  207. package/transforms/ApplyFragmentArgumentTransform.js.flow +0 -524
  208. package/transforms/ClientExtensionsTransform.js.flow +0 -224
  209. package/transforms/ConnectionTransform.js.flow +0 -850
  210. package/transforms/DeclarativeConnectionMutationTransform.js.flow +0 -245
  211. package/transforms/DeferStreamTransform.js.flow +0 -263
  212. package/transforms/DisallowIdAsAlias.js.flow +0 -46
  213. package/transforms/DisallowTypenameOnRoot.js.flow +0 -44
  214. package/transforms/FieldHandleTransform.js.flow +0 -77
  215. package/transforms/FilterCompilerDirectivesTransform.js.flow +0 -33
  216. package/transforms/FilterDirectivesTransform.js.flow +0 -45
  217. package/transforms/FlattenTransform.js.flow +0 -458
  218. package/transforms/GenerateIDFieldTransform.js.flow +0 -151
  219. package/transforms/GenerateTypeNameTransform.js.flow +0 -159
  220. package/transforms/InlineDataFragmentTransform.js.flow +0 -123
  221. package/transforms/InlineFragmentsTransform.js.flow +0 -70
  222. package/transforms/MaskTransform.js.flow +0 -124
  223. package/transforms/MatchTransform.js.flow +0 -587
  224. package/transforms/ReactFlightComponentTransform.js.flow +0 -207
  225. package/transforms/RefetchableFragmentTransform.js.flow +0 -266
  226. package/transforms/RelayDirectiveTransform.js.flow +0 -96
  227. package/transforms/RequiredFieldTransform.js.flow +0 -413
  228. package/transforms/SkipClientExtensionsTransform.js.flow +0 -54
  229. package/transforms/SkipHandleFieldTransform.js.flow +0 -44
  230. package/transforms/SkipRedundantNodesTransform.js.flow +0 -277
  231. package/transforms/SkipSplitOperationTransform.js.flow +0 -37
  232. package/transforms/SkipUnreachableNodeTransform.js.flow +0 -148
  233. package/transforms/SkipUnusedVariablesTransform.js.flow +0 -59
  234. package/transforms/SplitModuleImportTransform.js.flow +0 -97
  235. package/transforms/TestOperationTransform.js.flow +0 -142
  236. package/transforms/TransformUtils.js.flow +0 -26
  237. package/transforms/ValidateGlobalVariablesTransform.js.flow +0 -80
  238. package/transforms/ValidateRequiredArgumentsTransform.js.flow +0 -130
  239. package/transforms/ValidateServerOnlyDirectivesTransform.js.flow +0 -128
  240. package/transforms/ValidateUnusedVariablesTransform.js.flow +0 -88
  241. package/transforms/query-generators/FetchableQueryGenerator.js.flow +0 -188
  242. package/transforms/query-generators/NodeQueryGenerator.js.flow +0 -217
  243. package/transforms/query-generators/QueryQueryGenerator.js.flow +0 -57
  244. package/transforms/query-generators/ViewerQueryGenerator.js.flow +0 -97
  245. package/transforms/query-generators/index.js.flow +0 -89
  246. package/transforms/query-generators/utils.js.flow +0 -76
  247. package/util/CodeMarker.js.flow +0 -79
  248. package/util/DefaultHandleKey.js.flow +0 -17
  249. package/util/RelayCompilerCache.js.flow +0 -86
  250. package/util/Rollout.js.flow +0 -39
  251. package/util/TimeReporter.js.flow +0 -79
  252. package/util/areEqualArgValues.js.flow +0 -126
  253. package/util/argumentContainsVariables.js.flow +0 -38
  254. package/util/dedupeJSONStringify.js.flow +0 -156
  255. package/util/generateAbstractTypeRefinementKey.js.flow +0 -29
  256. package/util/getDefinitionNodeHash.js.flow +0 -24
  257. package/util/getModuleName.js.flow +0 -39
  258. package/util/joinArgumentDefinitions.js.flow +0 -105
  259. package/util/md5.js.flow +0 -19
  260. package/util/murmurHash.js.flow +0 -94
  261. package/util/nullthrowsOSS.js.flow +0 -25
  262. package/util/orList.js.flow +0 -37
  263. package/util/partitionArray.js.flow +0 -37
@@ -1,488 +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
- // $FlowFixMe[cannot-read]
183
-
184
- var codegenRunner = module.exports.getCodegenRunner(config);
185
- var result = config.watch ? yield codegenRunner.watchAll() : yield codegenRunner.compileAll();
186
-
187
- if (result === 'ERROR') {
188
- process.exit(100);
189
- }
190
-
191
- if (config.validate && result !== 'NO_CHANGES') {
192
- process.exit(101);
193
- }
194
- });
195
- return _main.apply(this, arguments);
196
- }
197
-
198
- function getPathBasedConfig(config) {
199
- var schema = path.resolve(process.cwd(), config.schema);
200
-
201
- if (!fs.existsSync(schema)) {
202
- throw new Error("--schema path does not exist: ".concat(schema));
203
- }
204
-
205
- var src = path.resolve(process.cwd(), config.src);
206
-
207
- if (!fs.existsSync(src)) {
208
- throw new Error("--src path does not exist: ".concat(src));
209
- }
210
-
211
- var persistOutput = config.persistOutput;
212
-
213
- if (typeof persistOutput === 'string') {
214
- persistOutput = path.resolve(process.cwd(), persistOutput);
215
- var persistOutputDir = path.dirname(persistOutput);
216
-
217
- if (!fs.existsSync(persistOutputDir)) {
218
- throw new Error("--persistOutput path does not exist: ".concat(persistOutput));
219
- }
220
- }
221
-
222
- return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, config), {}, {
223
- schema: schema,
224
- src: src,
225
- persistOutput: persistOutput
226
- });
227
- }
228
-
229
- function getWatchConfig(_x2) {
230
- return _getWatchConfig.apply(this, arguments);
231
- }
232
-
233
- function _getWatchConfig() {
234
- _getWatchConfig = _asyncToGenerator(function* (config) {
235
- var watchman = config.watchman && (yield WatchmanClient.isAvailable());
236
-
237
- if (config.watch) {
238
- if (!watchman) {
239
- console.error('Watchman is required to watch for changes. Running with watch mode disabled.');
240
- return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, config), {}, {
241
- watch: false,
242
- watchman: false
243
- });
244
- } // $FlowFixMe[cannot-read]
245
-
246
-
247
- if (!module.exports.hasWatchmanRootFile(config.src)) {
248
- 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());
249
- }
250
- } else if (watchman && !config.validate) {
251
- // eslint-disable-next-line no-console
252
- console.log('HINT: pass --watch to keep watching for changes.');
253
- }
254
-
255
- return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, config), {}, {
256
- watchman: watchman
257
- });
258
- });
259
- return _getWatchConfig.apply(this, arguments);
260
- }
261
-
262
- function getCodegenRunner(config) {
263
- var _parserConfigs;
264
-
265
- var reporter = new ConsoleReporter({
266
- verbose: config.verbose,
267
- quiet: config.quiet
268
- });
269
- var schema = getSchemaSource(config.schema);
270
- var languagePlugin = getLanguagePlugin(config.language, {
271
- eagerESModules: config.eagerESModules === true
272
- });
273
- var persistQueryFunction = getPersistQueryFunction(config);
274
- var inputExtensions = config.extensions || languagePlugin.inputExtensions;
275
- var outputExtension = languagePlugin.outputExtension;
276
- var sourceParserName = inputExtensions.join('/');
277
- var sourceWriterName = outputExtension;
278
- var sourceModuleParser = RelaySourceModuleParser(languagePlugin.findGraphQLTags, languagePlugin.getFileFilter);
279
- var providedArtifactDirectory = config.artifactDirectory;
280
- var artifactDirectory = providedArtifactDirectory != null ? path.resolve(process.cwd(), providedArtifactDirectory) : null;
281
- var generatedDirectoryName = artifactDirectory !== null && artifactDirectory !== void 0 ? artifactDirectory : '__generated__';
282
- var sourceSearchOptions = {
283
- extensions: inputExtensions,
284
- include: config.include,
285
- exclude: ['**/*.graphql.*'].concat((0, _toConsumableArray2["default"])(config.exclude))
286
- };
287
- var graphqlSearchOptions = {
288
- extensions: ['graphql'],
289
- include: config.include,
290
- exclude: [path.relative(config.src, config.schema)].concat(config.exclude)
291
- };
292
-
293
- var defaultIsGeneratedFile = function defaultIsGeneratedFile(filePath) {
294
- return filePath.endsWith('.graphql.' + outputExtension) && filePath.includes(generatedDirectoryName);
295
- };
296
-
297
- var schemaExtensions = languagePlugin.schemaExtensions ? [].concat((0, _toConsumableArray2["default"])(languagePlugin.schemaExtensions), (0, _toConsumableArray2["default"])(relaySchemaExtensions)) : relaySchemaExtensions;
298
- var parserConfigs = (_parserConfigs = {}, (0, _defineProperty2["default"])(_parserConfigs, sourceParserName, {
299
- baseDir: config.src,
300
- getFileFilter: sourceModuleParser.getFileFilter,
301
- getParser: sourceModuleParser.getParser,
302
- getSchemaSource: function getSchemaSource() {
303
- return schema;
304
- },
305
- schemaExtensions: schemaExtensions,
306
- watchmanExpression: config.watchman ? buildWatchExpression(sourceSearchOptions) : null,
307
- filepaths: config.watchman ? null : getFilepathsFromGlob(config.src, sourceSearchOptions)
308
- }), (0, _defineProperty2["default"])(_parserConfigs, "graphql", {
309
- baseDir: config.src,
310
- getParser: DotGraphQLParser.getParser,
311
- getSchemaSource: function getSchemaSource() {
312
- return schema;
313
- },
314
- schemaExtensions: schemaExtensions,
315
- watchmanExpression: config.watchman ? buildWatchExpression(graphqlSearchOptions) : null,
316
- filepaths: config.watchman ? null : getFilepathsFromGlob(config.src, graphqlSearchOptions)
317
- }), _parserConfigs);
318
- var writerConfigs = (0, _defineProperty2["default"])({}, sourceWriterName, {
319
- writeFiles: getRelayFileWriter(config.src, languagePlugin, config.noFutureProofEnums, artifactDirectory, config.persistOutput, config.customScalars, persistQueryFunction, config.repersist),
320
- isGeneratedFile: languagePlugin.isGeneratedFile ? languagePlugin.isGeneratedFile : defaultIsGeneratedFile,
321
- parser: sourceParserName,
322
- baseParsers: ['graphql']
323
- });
324
- var codegenRunner = new CodegenRunner({
325
- reporter: reporter,
326
- parserConfigs: parserConfigs,
327
- writerConfigs: writerConfigs,
328
- onlyValidate: config.validate,
329
- // TODO: allow passing in a flag or detect?
330
- sourceControl: null
331
- });
332
- return codegenRunner;
333
- }
334
-
335
- function defaultPersistFunction(text) {
336
- var hasher = crypto.createHash('md5');
337
- hasher.update(text);
338
- var id = hasher.digest('hex');
339
- return Promise.resolve(id);
340
- }
341
-
342
- function getRelayFileWriter(baseDir, languagePlugin, noFutureProofEnums, outputDir, persistedQueryPath, customScalars, persistFunction, repersist) {
343
- return /*#__PURE__*/function () {
344
- var _ref2 = _asyncToGenerator(function* (_ref) {
345
- var onlyValidate = _ref.onlyValidate,
346
- schema = _ref.schema,
347
- documents = _ref.documents,
348
- baseDocuments = _ref.baseDocuments,
349
- sourceControl = _ref.sourceControl,
350
- reporter = _ref.reporter;
351
- var persistQuery;
352
- var queryMap;
353
-
354
- if (persistFunction != null || persistedQueryPath != null) {
355
- queryMap = new Map();
356
- var persistImplmentation = persistFunction || defaultPersistFunction;
357
-
358
- persistQuery = /*#__PURE__*/function () {
359
- var _persistQuery = _asyncToGenerator(function* (text) {
360
- var id = yield persistImplmentation(text);
361
- !(typeof id === 'string') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected persist function to return a string, got `%s`.', id) : invariant(false) : void 0;
362
- queryMap.set(id, text);
363
- return id;
364
- });
365
-
366
- function persistQuery(_x4) {
367
- return _persistQuery.apply(this, arguments);
368
- }
369
-
370
- return persistQuery;
371
- }();
372
- }
373
-
374
- var schemaExtensions = languagePlugin.schemaExtensions ? [].concat((0, _toConsumableArray2["default"])(languagePlugin.schemaExtensions), (0, _toConsumableArray2["default"])(relaySchemaExtensions)) : relaySchemaExtensions;
375
- var results = yield RelayFileWriter.writeAll({
376
- config: {
377
- baseDir: baseDir,
378
- compilerTransforms: {
379
- commonTransforms: commonTransforms,
380
- codegenTransforms: codegenTransforms,
381
- fragmentTransforms: fragmentTransforms,
382
- printTransforms: printTransforms,
383
- queryTransforms: queryTransforms
384
- },
385
- customScalars: customScalars || {},
386
- formatModule: languagePlugin.formatModule,
387
- optionalInputFieldsForFlow: [],
388
- schemaExtensions: schemaExtensions,
389
- useHaste: false,
390
- noFutureProofEnums: noFutureProofEnums,
391
- extension: languagePlugin.outputExtension,
392
- typeGenerator: languagePlugin.typeGenerator,
393
- outputDir: outputDir,
394
- persistQuery: persistQuery,
395
- repersist: repersist
396
- },
397
- onlyValidate: onlyValidate,
398
- schema: schema,
399
- baseDocuments: baseDocuments,
400
- documents: documents,
401
- reporter: reporter,
402
- sourceControl: sourceControl,
403
- languagePlugin: languagePlugin
404
- });
405
-
406
- if (queryMap != null && persistedQueryPath != null) {
407
- var object = {};
408
-
409
- if (fs.existsSync(persistedQueryPath)) {
410
- try {
411
- var prevText = fs.readFileSync(persistedQueryPath, 'utf8');
412
- var prevData = JSON.parse(prevText);
413
-
414
- if (prevData != null && typeof prevData === 'object') {
415
- object = prevData;
416
- } else {
417
- console.error("Invalid data in persisted query file '".concat(persistedQueryPath, "', expected an object."));
418
- }
419
- } catch (error) {
420
- console.error(error);
421
- }
422
- }
423
-
424
- var _iterator = (0, _createForOfIteratorHelper2["default"])(queryMap.entries()),
425
- _step;
426
-
427
- try {
428
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
429
- var _step$value = _step.value,
430
- id = _step$value[0],
431
- _text = _step$value[1];
432
- object[id] = _text;
433
- }
434
- } catch (err) {
435
- _iterator.e(err);
436
- } finally {
437
- _iterator.f();
438
- }
439
-
440
- var data = JSON.stringify(object, null, 2);
441
- fs.writeFileSync(persistedQueryPath, data, 'utf8');
442
- }
443
-
444
- return results;
445
- });
446
-
447
- return function (_x3) {
448
- return _ref2.apply(this, arguments);
449
- };
450
- }();
451
- }
452
-
453
- function getSchemaSource(schemaPath) {
454
- var source = fs.readFileSync(schemaPath, 'utf8');
455
-
456
- if (path.extname(schemaPath) === '.json') {
457
- source = printSchema(buildClientSchema(JSON.parse(source).data));
458
- }
459
-
460
- 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 ");
461
- return new Source(source, schemaPath);
462
- } // Ensure that a watchman "root" file exists in the given directory
463
- // or a parent so that it can be watched
464
-
465
-
466
- var WATCHMAN_ROOT_FILES = ['.git', '.hg', '.watchmanconfig'];
467
-
468
- function hasWatchmanRootFile(testPath) {
469
- while (path.dirname(testPath) !== testPath) {
470
- if (WATCHMAN_ROOT_FILES.some(function (file) {
471
- return fs.existsSync(path.join(testPath, file));
472
- })) {
473
- return true;
474
- }
475
-
476
- testPath = path.dirname(testPath);
477
- }
478
-
479
- return false;
480
- }
481
-
482
- module.exports = {
483
- getCodegenRunner: getCodegenRunner,
484
- getLanguagePlugin: getLanguagePlugin,
485
- getWatchConfig: getWatchConfig,
486
- hasWatchmanRootFile: hasWatchmanRootFile,
487
- main: main
488
- };
@@ -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;