packager: TerminalReporter: properly reporting bundle updates
Reviewed By: cpojer Differential Revision: D4357298 fbshipit-source-id: 89c70bb4bee103ad5a6301ac2b0c8712f190ba73
This commit is contained in:
parent
04fdf40c61
commit
3d12ddb1db
|
@ -577,6 +577,11 @@ class Server {
|
|||
action_name: 'Updating existing bundle',
|
||||
outdated_modules: outdated.size,
|
||||
}));
|
||||
this._reporter.update({
|
||||
type: 'bundle_update_existing',
|
||||
entryFilePath: options.entryFile,
|
||||
outdatedModuleCount: outdated.size,
|
||||
});
|
||||
|
||||
debug('Attempt to update existing bundle');
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@ type BundleProgress = {
|
|||
transformedFileCount: number,
|
||||
totalFileCount: number,
|
||||
ratio: number,
|
||||
outdatedModuleCount: number,
|
||||
};
|
||||
|
||||
const DARK_BLOCK_CHAR = '\u2593';
|
||||
|
@ -82,14 +83,22 @@ class TerminalReporter {
|
|||
*
|
||||
*/
|
||||
_getFileTransformMessage(
|
||||
{totalFileCount, transformedFileCount, ratio}: BundleProgress,
|
||||
{totalFileCount, transformedFileCount, ratio, outdatedModuleCount}: BundleProgress,
|
||||
build: 'in_progress' | 'done',
|
||||
): string {
|
||||
if (build === 'done' && totalFileCount === 0) {
|
||||
return 'All files are already up-to-date.';
|
||||
if (outdatedModuleCount > 0) {
|
||||
const plural = outdatedModuleCount > 1;
|
||||
return `Updating ${outdatedModuleCount} ` +
|
||||
`module${plural ? 's' : ''} in place` +
|
||||
(build === 'done' ? ', done' : '...');
|
||||
}
|
||||
if (totalFileCount === 0) {
|
||||
return build === 'done'
|
||||
? 'No module changed.'
|
||||
: 'Analysing...';
|
||||
}
|
||||
return util.format(
|
||||
'Transforming files %s%s% (%s/%s)%s',
|
||||
'Transforming modules %s%s% (%s/%s)%s',
|
||||
build === 'done' ? '' : getProgressBar(ratio, 30) + ' ',
|
||||
(100 * ratio).toFixed(1),
|
||||
transformedFileCount,
|
||||
|
@ -174,9 +183,23 @@ class TerminalReporter {
|
|||
ratio,
|
||||
transformedFileCount,
|
||||
totalFileCount,
|
||||
outdatedModuleCount: 0,
|
||||
});
|
||||
}
|
||||
|
||||
_updateBundleOutdatedModuleCount(
|
||||
{entryFilePath, outdatedModuleCount}: {
|
||||
entryFilePath: string,
|
||||
outdatedModuleCount: number,
|
||||
},
|
||||
) {
|
||||
const currentProgress = this._activeBundles.get(entryFilePath);
|
||||
if (currentProgress == null) {
|
||||
return;
|
||||
}
|
||||
currentProgress.outdatedModuleCount = outdatedModuleCount;
|
||||
}
|
||||
|
||||
/**
|
||||
* This function is exclusively concerned with updating the internal state.
|
||||
* No logging or status updates should be done at this point.
|
||||
|
@ -188,14 +211,23 @@ class TerminalReporter {
|
|||
transformedFileCount: 0,
|
||||
totalFileCount: 0,
|
||||
ratio: 0,
|
||||
outdatedModuleCount: 0,
|
||||
});
|
||||
break;
|
||||
case 'bundle_transform_progressed':
|
||||
this._scheduleUpdateBundleProgress(event);
|
||||
if (event.totalFileCount === event.transformedFileCount) {
|
||||
this._scheduleUpdateBundleProgress.cancel();
|
||||
this._updateBundleProgress(event);
|
||||
} else {
|
||||
this._scheduleUpdateBundleProgress(event);
|
||||
}
|
||||
break;
|
||||
case 'bundle_transform_progressed_throttled':
|
||||
this._updateBundleProgress(event);
|
||||
break;
|
||||
case 'bundle_update_existing':
|
||||
this._updateBundleOutdatedModuleCount(event);
|
||||
break;
|
||||
case 'bundle_built':
|
||||
this._activeBundles.delete(event.entryFilePath);
|
||||
break;
|
||||
|
|
|
@ -34,6 +34,10 @@ export type ReportableEvent = {
|
|||
entryFilePath: string,
|
||||
transformedFileCount: number,
|
||||
totalFileCount: number,
|
||||
} | {
|
||||
entryFilePath: string,
|
||||
outdatedModuleCount: number,
|
||||
type: 'bundle_update_existing',
|
||||
} | {
|
||||
type: 'bundle_built',
|
||||
entryFilePath: string,
|
||||
|
|
Loading…
Reference in New Issue