relay-compiler 1.3.0 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- package/LICENSE +16 -26
- package/bin/relay-compiler +7348 -5939
- package/index.js +3 -6
- package/lib/{FileParser.js → ASTCache.js} +17 -14
- package/lib/ASTConvert.js +84 -70
- package/lib/CodegenDirectory.js +122 -28
- package/lib/{RelayCodegenRunner.js → CodegenRunner.js} +110 -186
- package/lib/CodegenTypes.js +12 -0
- package/lib/{RelayCodegenWatcher.js → CodegenWatcher.js} +53 -43
- package/lib/DefaultHandleKey.js +2 -4
- package/lib/DotGraphQLParser.js +27 -0
- package/lib/FilterDirectivesTransform.js +11 -11
- package/lib/FindGraphQLTags.js +33 -52
- package/lib/FlattenTransform.js +197 -0
- package/lib/GraphQLCompilerContext.js +158 -0
- package/lib/GraphQLCompilerProfiler.js +271 -0
- package/lib/GraphQLCompilerPublic.js +27 -22
- package/lib/GraphQLCompilerUserError.js +26 -0
- package/lib/GraphQLConsoleReporter.js +58 -0
- package/lib/GraphQLIR.js +12 -0
- package/lib/{RelayPrinter.js → GraphQLIRPrinter.js} +42 -38
- package/lib/{RelayIRTransformer.js → GraphQLIRTransformer.js} +47 -38
- package/lib/GraphQLIRTransforms.js +6 -15
- package/lib/{RelayIRVisitor.js → GraphQLIRVisitor.js} +7 -6
- package/lib/GraphQLMultiReporter.js +50 -0
- package/lib/GraphQLParser.js +743 -0
- package/lib/GraphQLReporter.js +12 -0
- package/lib/GraphQLSchemaUtils.js +10 -36
- package/lib/GraphQLValidator.js +13 -15
- package/lib/{RelayWatchmanClient.js → GraphQLWatchmanClient.js} +15 -17
- package/lib/InlineFragmentsTransform.js +48 -0
- package/lib/PatchedBabelGenerator.js +58 -0
- package/lib/RelayApplyFragmentArgumentTransform.js +37 -18
- package/lib/RelayCodeGenerator.js +130 -60
- package/lib/RelayCompilerBin.js +80 -35
- package/lib/RelayCompilerCache.js +18 -11
- package/lib/RelayCompilerPublic.js +24 -10
- package/lib/RelayCompilerScope.js +2 -4
- package/lib/RelayConcreteNode.js +31 -14
- package/lib/RelayConnectionConstants.js +2 -4
- package/lib/RelayConnectionTransform.js +34 -38
- package/lib/RelayDefaultHandleKey.js +2 -4
- package/lib/RelayDeferrableFragmentTransform.js +464 -0
- package/lib/RelayError.js +2 -6
- package/lib/RelayFieldHandleTransform.js +15 -11
- package/lib/RelayFileWriter.js +119 -98
- package/lib/RelayFlowBabelFactories.js +113 -0
- package/lib/RelayFlowGenerator.js +180 -200
- package/lib/RelayFlowTypeTransformers.js +109 -0
- package/lib/RelayGenerateIDFieldTransform.js +131 -0
- package/lib/RelayGenerateTypeNameTransform.js +75 -0
- package/lib/RelayGraphQLEnumsGenerator.js +65 -0
- package/lib/RelayIRTransforms.js +19 -23
- package/lib/RelayInternalTypes.js +2 -5
- package/lib/RelayInternals.js +2 -5
- package/lib/RelayJSModuleParser.js +64 -0
- package/lib/RelayMaskTransform.js +129 -0
- package/lib/RelayMetricsRecorder.js +9 -9
- package/lib/RelayMockRenderer.js +3 -8
- package/lib/RelayNetworkDebug.js +4 -7
- package/lib/RelayParser.js +28 -645
- package/lib/RelayProfiler.js +7 -7
- package/lib/RelayQueryCaching.js +2 -5
- package/lib/RelayRelayDirectiveTransform.js +47 -33
- package/lib/RelayRuntimeTypes.js +22 -0
- package/lib/RelayShallowMock.js +4 -7
- package/lib/RelaySkipHandleFieldTransform.js +13 -11
- package/lib/RelayTaskQueue.js +2 -5
- package/lib/RelayTransformUtils.js +20 -0
- package/lib/RelayTypes.js +2 -5
- package/lib/RelayValidator.js +9 -8
- package/lib/RelayViewerHandleTransform.js +22 -18
- package/lib/SkipClientFieldTransform.js +36 -53
- package/lib/SkipRedundantNodesTransform.js +22 -29
- package/lib/SkipUnreachableNodeTransform.js +57 -36
- package/lib/SourceControl.js +61 -0
- package/lib/StripUnusedVariablesTransform.js +86 -41
- package/lib/areEqualOSS.js +2 -4
- package/lib/compileRelayArtifacts.js +72 -0
- package/lib/dedent.js +2 -5
- package/lib/dedupeJSONStringify.js +132 -0
- package/lib/deepFreeze.js +3 -5
- package/lib/deepMergeAssignments.js +68 -0
- package/lib/filterContextForNode.js +5 -7
- package/lib/formatGeneratedModule.js +5 -9
- package/lib/{getIdentifierForRelayArgumentValue.js → getIdentifierForArgumentValue.js} +8 -10
- package/lib/getIdentifierForSelection.js +37 -0
- package/lib/getLiteralArgumentValues.js +26 -0
- package/lib/getModuleName.js +2 -4
- package/lib/getRelayHandleKey.js +2 -4
- package/lib/isCompatibleRelayFragmentType.js +2 -5
- package/lib/isEquivalentType.js +55 -0
- package/lib/isPromise.js +2 -5
- package/lib/isScalarAndEqual.js +3 -5
- package/lib/murmurHash.js +2 -4
- package/lib/nullthrowsOSS.js +7 -5
- package/lib/recycleNodesInto.js +2 -4
- package/lib/relayUnstableBatchedUpdates.js +2 -5
- package/lib/relayUnstableBatchedUpdates.native.js +2 -5
- package/lib/requestsForOperation.js +75 -0
- package/lib/simpleClone.js +2 -4
- package/lib/stableCopy.js +35 -0
- package/lib/testEditDistance.js +2 -5
- package/lib/throwFailedPromise.js +2 -5
- package/lib/writeRelayGeneratedFile.js +84 -50
- package/package.json +16 -15
- package/relay-compiler.js +7208 -5872
- package/relay-compiler.min.js +7200 -5867
- package/ARCHITECTURE.md +0 -94
- package/PATENTS +0 -33
- package/lib/AutoAliasTransform.js +0 -80
- package/lib/GraphQLFileParser.js +0 -27
- package/lib/GraphQLTextParser.js +0 -46
- package/lib/RelayCodegenTypes.js +0 -14
- package/lib/RelayCompiledTypes.js +0 -13
- package/lib/RelayCompiler.js +0 -144
- package/lib/RelayCompilerContext.js +0 -133
- package/lib/RelayCompilerUserError.js +0 -30
- package/lib/RelayConsoleReporter.js +0 -40
- package/lib/RelayFileIRParser.js +0 -66
- package/lib/RelayFlattenTransform.js +0 -278
- package/lib/RelayFlowParser.js +0 -188
- package/lib/RelayGenerateRequisiteFieldsTransform.js +0 -189
- package/lib/RelayIR.js +0 -14
- package/lib/RelayMultiReporter.js +0 -40
- package/lib/RelayReporter.js +0 -14
- package/lib/RelayTestSchema.js +0 -21
- package/lib/formatStorageKey.js +0 -37
- package/lib/getIdentifierForRelaySelection.js +0 -54
- package/lib/getRelayLiteralArgumentValues.js +0 -28
- package/lib/parseGraphQLText.js +0 -33
- package/lib/prettyStringify.js +0 -35
- package/lib/printFlowTypes.js +0 -282
- package/lib/stableJSONStringify.js +0 -45
- package/lib/stableJSONStringifyOSS.js +0 -44
- package/lib/transformInputObjectToIR.js +0 -85
- package/lib/writeLegacyFlowFile.js +0 -24
@@ -1,12 +1,10 @@
|
|
1
1
|
/**
|
2
2
|
* Copyright (c) 2013-present, Facebook, Inc.
|
3
|
-
* All rights reserved.
|
4
3
|
*
|
5
|
-
* This source code is licensed under the
|
6
|
-
* LICENSE file in the root directory of this source tree.
|
7
|
-
* of patent rights can be found in the PATENTS file in the same directory.
|
4
|
+
* This source code is licensed under the MIT license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
8
6
|
*
|
9
|
-
* @providesModule
|
7
|
+
* @providesModule CodegenRunner
|
10
8
|
*
|
11
9
|
* @format
|
12
10
|
*/
|
@@ -26,20 +24,18 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'd
|
|
26
24
|
var _require = require('immutable'),
|
27
25
|
ImmutableMap = _require.Map;
|
28
26
|
|
29
|
-
|
30
|
-
|
31
|
-
var RelayCodegenRunner = function () {
|
32
|
-
// parser => writers that are affected by it
|
33
|
-
function RelayCodegenRunner(options) {
|
27
|
+
var CodegenRunner = function () {
|
28
|
+
function CodegenRunner(options) {
|
34
29
|
var _this = this;
|
35
30
|
|
36
|
-
(0, _classCallCheck3['default'])(this,
|
37
|
-
this.parsers = {};
|
31
|
+
(0, _classCallCheck3['default'])(this, CodegenRunner);
|
38
32
|
|
33
|
+
this.parsers = {};
|
39
34
|
this.parserConfigs = options.parserConfigs;
|
40
35
|
this.writerConfigs = options.writerConfigs;
|
41
36
|
this.onlyValidate = options.onlyValidate;
|
42
37
|
this._reporter = options.reporter;
|
38
|
+
this._sourceControl = options.sourceControl;
|
43
39
|
|
44
40
|
this.parserWriters = {};
|
45
41
|
for (var _parser in options.parserConfigs) {
|
@@ -58,8 +54,10 @@ var RelayCodegenRunner = function () {
|
|
58
54
|
_loop(_writer);
|
59
55
|
}
|
60
56
|
}
|
57
|
+
// parser => writers that are affected by it
|
58
|
+
|
61
59
|
|
62
|
-
|
60
|
+
CodegenRunner.prototype.compileAll = (() => {
|
63
61
|
var _ref = (0, _asyncToGenerator3.default)(function* () {
|
64
62
|
// reset the parsers
|
65
63
|
this.parsers = {};
|
@@ -67,7 +65,7 @@ var RelayCodegenRunner = function () {
|
|
67
65
|
try {
|
68
66
|
yield this.parseEverything(parserName);
|
69
67
|
} catch (e) {
|
70
|
-
this._reporter.reportError('
|
68
|
+
this._reporter.reportError('CodegenRunner.compileAll', e);
|
71
69
|
return 'ERROR';
|
72
70
|
}
|
73
71
|
}
|
@@ -92,7 +90,7 @@ var RelayCodegenRunner = function () {
|
|
92
90
|
return compileAll;
|
93
91
|
})();
|
94
92
|
|
95
|
-
|
93
|
+
CodegenRunner.prototype.compile = (() => {
|
96
94
|
var _ref2 = (0, _asyncToGenerator3.default)(function* (writerName) {
|
97
95
|
var _this2 = this;
|
98
96
|
|
@@ -105,9 +103,11 @@ var RelayCodegenRunner = function () {
|
|
105
103
|
});
|
106
104
|
}
|
107
105
|
// Don't bother resetting the parsers
|
108
|
-
yield
|
109
|
-
return
|
110
|
-
|
106
|
+
yield require('./GraphQLCompilerProfiler').asyncContext('CodegenRunner:parseEverything', function () {
|
107
|
+
return Promise.all(parsers.map(function (parser) {
|
108
|
+
return _this2.parseEverything(parser);
|
109
|
+
}));
|
110
|
+
});
|
111
111
|
|
112
112
|
return yield this.write(writerName);
|
113
113
|
});
|
@@ -119,15 +119,15 @@ var RelayCodegenRunner = function () {
|
|
119
119
|
return compile;
|
120
120
|
})();
|
121
121
|
|
122
|
-
|
123
|
-
var
|
124
|
-
var _this3 = this;
|
122
|
+
CodegenRunner.prototype.getDirtyWriters = function getDirtyWriters(filePaths) {
|
123
|
+
var _this3 = this;
|
125
124
|
|
125
|
+
return require('./GraphQLCompilerProfiler').asyncContext('CodegenRunner:getDirtyWriters', (0, _asyncToGenerator3.default)(function* () {
|
126
126
|
var dirtyWriters = new Set();
|
127
127
|
|
128
128
|
// Check if any files are in the output
|
129
|
-
for (var configName in
|
130
|
-
var config =
|
129
|
+
for (var configName in _this3.writerConfigs) {
|
130
|
+
var config = _this3.writerConfigs[configName];
|
131
131
|
var _iteratorNormalCompletion = true;
|
132
132
|
var _didIteratorError = false;
|
133
133
|
var _iteratorError = undefined;
|
@@ -156,11 +156,10 @@ var RelayCodegenRunner = function () {
|
|
156
156
|
}
|
157
157
|
}
|
158
158
|
|
159
|
-
var client = new (require('./RelayWatchmanClient'))();
|
160
|
-
|
161
159
|
// Check for files in the input
|
162
|
-
yield Promise.all(Object.keys(
|
163
|
-
|
160
|
+
yield Promise.all(Object.keys(_this3.parserConfigs).map(function (parserConfigName) {
|
161
|
+
return require('./GraphQLCompilerProfiler').waitFor('Watchman:query', (0, _asyncToGenerator3.default)(function* () {
|
162
|
+
var client = new (require('./GraphQLWatchmanClient'))();
|
164
163
|
var config = _this3.parserConfigs[parserConfigName];
|
165
164
|
var dirs = yield client.watchProject(config.baseDir);
|
166
165
|
|
@@ -175,30 +174,21 @@ var RelayCodegenRunner = function () {
|
|
175
174
|
};
|
176
175
|
|
177
176
|
var result = yield client.command('query', dirs.root, query);
|
177
|
+
client.end();
|
178
|
+
|
178
179
|
if (result.files.length > 0) {
|
179
180
|
_this3.parserWriters[parserConfigName].forEach(function (writerName) {
|
180
181
|
return dirtyWriters.add(writerName);
|
181
182
|
});
|
182
183
|
}
|
183
|
-
});
|
184
|
-
|
185
|
-
return function (_x3) {
|
186
|
-
return _ref4.apply(this, arguments);
|
187
|
-
};
|
188
|
-
})()));
|
184
|
+
}));
|
185
|
+
}));
|
189
186
|
|
190
|
-
client.end();
|
191
187
|
return dirtyWriters;
|
192
|
-
});
|
193
|
-
|
194
|
-
function getDirtyWriters(_x2) {
|
195
|
-
return _ref3.apply(this, arguments);
|
196
|
-
}
|
197
|
-
|
198
|
-
return getDirtyWriters;
|
199
|
-
})();
|
188
|
+
}));
|
189
|
+
};
|
200
190
|
|
201
|
-
|
191
|
+
CodegenRunner.prototype.parseEverything = (() => {
|
202
192
|
var _ref5 = (0, _asyncToGenerator3.default)(function* (parserName) {
|
203
193
|
if (this.parsers[parserName]) {
|
204
194
|
// no need to parse
|
@@ -215,74 +205,43 @@ var RelayCodegenRunner = function () {
|
|
215
205
|
|
216
206
|
var files = void 0;
|
217
207
|
if (parserConfig.watchmanExpression) {
|
218
|
-
files = yield require('./
|
208
|
+
files = yield require('./CodegenWatcher').queryFiles(parserConfig.baseDir, parserConfig.watchmanExpression, filter);
|
219
209
|
} else if (parserConfig.filepaths) {
|
220
|
-
files = yield require('./
|
210
|
+
files = yield require('./CodegenWatcher').queryFilepaths(parserConfig.baseDir, parserConfig.filepaths, filter);
|
221
211
|
} else {
|
222
212
|
throw new Error('Either `watchmanExpression` or `filepaths` is required to query files');
|
223
213
|
}
|
224
214
|
this.parseFileChanges(parserName, files);
|
225
215
|
});
|
226
216
|
|
227
|
-
function parseEverything(
|
217
|
+
function parseEverything(_x2) {
|
228
218
|
return _ref5.apply(this, arguments);
|
229
219
|
}
|
230
220
|
|
231
221
|
return parseEverything;
|
232
222
|
})();
|
233
223
|
|
234
|
-
|
235
|
-
var
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
224
|
+
CodegenRunner.prototype.parseFileChanges = function parseFileChanges(parserName, files) {
|
225
|
+
var _this4 = this;
|
226
|
+
|
227
|
+
return require('./GraphQLCompilerProfiler').run('CodegenRunner.parseFileChanges', function () {
|
228
|
+
var parser = _this4.parsers[parserName];
|
229
|
+
// this maybe should be await parser.parseFiles(files);
|
230
|
+
parser.parseFiles(files);
|
231
|
+
});
|
241
232
|
};
|
242
233
|
|
243
234
|
// We cannot do incremental writes right now.
|
244
235
|
// When we can, this could be writeChanges(writerName, parserName, parsedDefinitions)
|
245
236
|
|
246
237
|
|
247
|
-
|
248
|
-
var
|
249
|
-
var _this4 = this;
|
238
|
+
CodegenRunner.prototype.write = function write(writerName) {
|
239
|
+
var _this5 = this;
|
250
240
|
|
241
|
+
return require('./GraphQLCompilerProfiler').asyncContext('CodegenRunner.write', (0, _asyncToGenerator3.default)(function* () {
|
251
242
|
try {
|
252
|
-
|
253
|
-
|
254
|
-
require('fbjs/lib/invariant')(outputDirectories, 'RelayCodegenRunner: Expected outputDirectories to be set');
|
255
|
-
var _iteratorNormalCompletion2 = true;
|
256
|
-
var _didIteratorError2 = false;
|
257
|
-
var _iteratorError2 = undefined;
|
258
|
-
|
259
|
-
try {
|
260
|
-
for (var _iterator2 = outputDirectories.values()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
261
|
-
var dir = _step2.value;
|
262
|
-
|
263
|
-
combined.push.apply(combined, (0, _toConsumableArray3['default'])(accessor(dir.changes)));
|
264
|
-
}
|
265
|
-
} catch (err) {
|
266
|
-
_didIteratorError2 = true;
|
267
|
-
_iteratorError2 = err;
|
268
|
-
} finally {
|
269
|
-
try {
|
270
|
-
if (!_iteratorNormalCompletion2 && _iterator2['return']) {
|
271
|
-
_iterator2['return']();
|
272
|
-
}
|
273
|
-
} finally {
|
274
|
-
if (_didIteratorError2) {
|
275
|
-
throw _iteratorError2;
|
276
|
-
}
|
277
|
-
}
|
278
|
-
}
|
279
|
-
|
280
|
-
return combined;
|
281
|
-
};
|
282
|
-
|
283
|
-
console.log('\nWriting %s', writerName);
|
284
|
-
var tStart = Date.now();
|
285
|
-
var _writerConfigs$writer = this.writerConfigs[writerName],
|
243
|
+
_this5._reporter.reportMessage('\nWriting ' + writerName);
|
244
|
+
var _writerConfigs$writer = _this5.writerConfigs[writerName],
|
286
245
|
_getWriter = _writerConfigs$writer.getWriter,
|
287
246
|
_parser2 = _writerConfigs$writer.parser,
|
288
247
|
_baseParsers = _writerConfigs$writer.baseParsers,
|
@@ -292,111 +251,89 @@ var RelayCodegenRunner = function () {
|
|
292
251
|
var _baseDocuments = ImmutableMap();
|
293
252
|
if (_baseParsers) {
|
294
253
|
_baseParsers.forEach(function (baseParserName) {
|
295
|
-
_baseDocuments = _baseDocuments.merge(
|
254
|
+
_baseDocuments = _baseDocuments.merge(_this5.parsers[baseParserName].documents());
|
296
255
|
});
|
297
256
|
}
|
298
257
|
|
299
258
|
// always create a new writer: we have to write everything anyways
|
300
|
-
var _documents =
|
301
|
-
var _schema =
|
302
|
-
|
303
|
-
|
304
|
-
var outputDirectories = yield _writer2.writeAll();
|
305
|
-
|
306
|
-
var tWritten = Date.now();
|
307
|
-
|
308
|
-
var created = combineChanges(function (_) {
|
309
|
-
return _.created;
|
310
|
-
});
|
311
|
-
var updated = combineChanges(function (_) {
|
312
|
-
return _.updated;
|
259
|
+
var _documents = _this5.parsers[_parser2].documents();
|
260
|
+
var _schema = require('./GraphQLCompilerProfiler').run('getSchema', function () {
|
261
|
+
return _this5.parserConfigs[_parser2].getSchema();
|
313
262
|
});
|
314
|
-
var
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
263
|
+
var _writer2 = _getWriter({
|
264
|
+
onlyValidate: _this5.onlyValidate,
|
265
|
+
schema: _schema,
|
266
|
+
documents: _documents,
|
267
|
+
baseDocuments: _baseDocuments,
|
268
|
+
sourceControl: _this5._sourceControl,
|
269
|
+
reporter: _this5._reporter
|
319
270
|
});
|
320
271
|
|
321
|
-
var
|
322
|
-
|
323
|
-
var
|
272
|
+
var outputDirectories = yield _writer2.writeAll();
|
273
|
+
|
274
|
+
var _iteratorNormalCompletion2 = true;
|
275
|
+
var _didIteratorError2 = false;
|
276
|
+
var _iteratorError2 = undefined;
|
324
277
|
|
325
278
|
try {
|
326
|
-
for (var
|
327
|
-
var dir =
|
279
|
+
for (var _iterator2 = outputDirectories.values()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
280
|
+
var dir = _step2.value;
|
328
281
|
|
329
282
|
var all = [].concat((0, _toConsumableArray3['default'])(dir.changes.created), (0, _toConsumableArray3['default'])(dir.changes.updated), (0, _toConsumableArray3['default'])(dir.changes.deleted), (0, _toConsumableArray3['default'])(dir.changes.unchanged));
|
330
|
-
|
331
|
-
var
|
332
|
-
var
|
333
|
-
var _iteratorError4 = undefined;
|
283
|
+
var _iteratorNormalCompletion3 = true;
|
284
|
+
var _didIteratorError3 = false;
|
285
|
+
var _iteratorError3 = undefined;
|
334
286
|
|
335
287
|
try {
|
336
|
-
for (var
|
337
|
-
var filename =
|
288
|
+
for (var _iterator3 = all[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
|
289
|
+
var filename = _step3.value;
|
338
290
|
|
339
291
|
var _filePath2 = dir.getPath(filename);
|
340
|
-
require('fbjs/lib/invariant')(_isGeneratedFile(_filePath2), '
|
292
|
+
require('fbjs/lib/invariant')(_isGeneratedFile(_filePath2), 'CodegenRunner: %s returned false for isGeneratedFile, ' + 'but was in generated directory', _filePath2);
|
341
293
|
}
|
342
294
|
} catch (err) {
|
343
|
-
|
344
|
-
|
295
|
+
_didIteratorError3 = true;
|
296
|
+
_iteratorError3 = err;
|
345
297
|
} finally {
|
346
298
|
try {
|
347
|
-
if (!
|
348
|
-
|
299
|
+
if (!_iteratorNormalCompletion3 && _iterator3['return']) {
|
300
|
+
_iterator3['return']();
|
349
301
|
}
|
350
302
|
} finally {
|
351
|
-
if (
|
352
|
-
throw
|
303
|
+
if (_didIteratorError3) {
|
304
|
+
throw _iteratorError3;
|
353
305
|
}
|
354
306
|
}
|
355
307
|
}
|
356
308
|
}
|
357
309
|
} catch (err) {
|
358
|
-
|
359
|
-
|
310
|
+
_didIteratorError2 = true;
|
311
|
+
_iteratorError2 = err;
|
360
312
|
} finally {
|
361
313
|
try {
|
362
|
-
if (!
|
363
|
-
|
314
|
+
if (!_iteratorNormalCompletion2 && _iterator2['return']) {
|
315
|
+
_iterator2['return']();
|
364
316
|
}
|
365
317
|
} finally {
|
366
|
-
if (
|
367
|
-
throw
|
318
|
+
if (_didIteratorError2) {
|
319
|
+
throw _iteratorError2;
|
368
320
|
}
|
369
321
|
}
|
370
322
|
}
|
371
323
|
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
printFiles('Created', created);
|
378
|
-
printFiles('Updated', updated);
|
379
|
-
printFiles('Deleted', deleted);
|
380
|
-
console.log('Unchanged: %s files', unchanged.length);
|
381
|
-
}
|
382
|
-
|
383
|
-
console.log('Written %s in %s', writerName, toSeconds(tStart, tWritten));
|
384
|
-
|
385
|
-
return created.length + updated.length + deleted.length > 0 ? 'HAS_CHANGES' : 'NO_CHANGES';
|
324
|
+
var combinedChanges = require('./CodegenDirectory').combineChanges(Array.from(outputDirectories.values()));
|
325
|
+
require('./CodegenDirectory').printChanges(combinedChanges, {
|
326
|
+
onlyValidate: _this5.onlyValidate
|
327
|
+
});
|
328
|
+
return require('./CodegenDirectory').hasChanges(combinedChanges) ? 'HAS_CHANGES' : 'NO_CHANGES';
|
386
329
|
} catch (e) {
|
387
|
-
|
330
|
+
_this5._reporter.reportError('CodegenRunner.write', e);
|
388
331
|
return 'ERROR';
|
389
332
|
}
|
390
|
-
});
|
391
|
-
|
392
|
-
function write(_x5) {
|
393
|
-
return _ref6.apply(this, arguments);
|
394
|
-
}
|
395
|
-
|
396
|
-
return write;
|
397
|
-
})();
|
333
|
+
}));
|
334
|
+
};
|
398
335
|
|
399
|
-
|
336
|
+
CodegenRunner.prototype.watchAll = (() => {
|
400
337
|
var _ref7 = (0, _asyncToGenerator3.default)(function* () {
|
401
338
|
// get everything set up for watching
|
402
339
|
yield this.compileAll();
|
@@ -413,9 +350,9 @@ var RelayCodegenRunner = function () {
|
|
413
350
|
return watchAll;
|
414
351
|
})();
|
415
352
|
|
416
|
-
|
353
|
+
CodegenRunner.prototype.watch = (() => {
|
417
354
|
var _ref8 = (0, _asyncToGenerator3.default)(function* (parserName) {
|
418
|
-
var
|
355
|
+
var _this6 = this;
|
419
356
|
|
420
357
|
var parserConfig = this.parserConfigs[parserName];
|
421
358
|
|
@@ -428,66 +365,53 @@ var RelayCodegenRunner = function () {
|
|
428
365
|
// we should prevent the first watch callback from doing anything.
|
429
366
|
var firstChange = true;
|
430
367
|
|
431
|
-
yield require('./
|
368
|
+
yield require('./CodegenWatcher').watchCompile(parserConfig.baseDir, parserConfig.watchmanExpression, parserConfig.getFileFilter ? parserConfig.getFileFilter(parserConfig.baseDir) : anyFileFilter, (() => {
|
432
369
|
var _ref9 = (0, _asyncToGenerator3.default)(function* (files) {
|
433
|
-
require('fbjs/lib/invariant')(
|
370
|
+
require('fbjs/lib/invariant')(_this6.parsers[parserName], 'Trying to watch an uncompiled parser config: %s', parserName);
|
434
371
|
if (firstChange) {
|
435
372
|
firstChange = false;
|
436
373
|
return;
|
437
374
|
}
|
438
375
|
var dependentWriters = [];
|
439
|
-
|
376
|
+
_this6.parserWriters[parserName].forEach(function (writer) {
|
440
377
|
return dependentWriters.push(writer);
|
441
378
|
});
|
442
379
|
|
443
380
|
try {
|
444
|
-
if (!
|
381
|
+
if (!_this6.parsers[parserName]) {
|
445
382
|
// have to load the parser and make sure all of its dependents are set
|
446
|
-
yield
|
383
|
+
yield _this6.parseEverything(parserName);
|
447
384
|
} else {
|
448
|
-
|
385
|
+
_this6.parseFileChanges(parserName, files);
|
449
386
|
}
|
450
387
|
yield Promise.all(dependentWriters.map(function (writer) {
|
451
|
-
return
|
388
|
+
return _this6.write(writer);
|
452
389
|
}));
|
453
390
|
} catch (error) {
|
454
|
-
|
391
|
+
_this6._reporter.reportError('CodegenRunner.watch', error);
|
455
392
|
}
|
456
|
-
|
393
|
+
_this6._reporter.reportMessage('Watching for changes to ' + parserName + '...');
|
457
394
|
});
|
458
395
|
|
459
|
-
return function (
|
396
|
+
return function (_x4) {
|
460
397
|
return _ref9.apply(this, arguments);
|
461
398
|
};
|
462
399
|
})());
|
463
|
-
|
400
|
+
this._reporter.reportMessage('Watching for changes to ' + parserName + '...');
|
464
401
|
});
|
465
402
|
|
466
|
-
function watch(
|
403
|
+
function watch(_x3) {
|
467
404
|
return _ref8.apply(this, arguments);
|
468
405
|
}
|
469
406
|
|
470
407
|
return watch;
|
471
408
|
})();
|
472
409
|
|
473
|
-
return
|
410
|
+
return CodegenRunner;
|
474
411
|
}();
|
475
412
|
|
476
413
|
function anyFileFilter(file) {
|
477
414
|
return true;
|
478
415
|
}
|
479
416
|
|
480
|
-
|
481
|
-
return ((t1 - t0) / 1000).toFixed(2) + 's';
|
482
|
-
}
|
483
|
-
|
484
|
-
function printFiles(label, files) {
|
485
|
-
if (files.length > 0) {
|
486
|
-
console.log(label + ':');
|
487
|
-
files.forEach(function (file) {
|
488
|
-
console.log(' - ' + file);
|
489
|
-
});
|
490
|
-
}
|
491
|
-
}
|
492
|
-
|
493
|
-
module.exports = RelayCodegenRunner;
|
417
|
+
module.exports = CodegenRunner;
|
@@ -0,0 +1,12 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (c) 2013-present, Facebook, Inc.
|
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
|
+
* @providesModule CodegenTypes
|
8
|
+
*
|
9
|
+
* @format
|
10
|
+
*/
|
11
|
+
|
12
|
+
'use strict';
|