getBuildStats.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = getBuildStats;
  6. var _path = require('path');
  7. var _path2 = _interopRequireDefault(_path);
  8. var _sortChunks = require('./sortChunks');
  9. var _sortChunks2 = _interopRequireDefault(_sortChunks);
  10. var _getAffectedModuleIds = require('./getAffectedModuleIds');
  11. var _getAffectedModuleIds2 = _interopRequireDefault(_getAffectedModuleIds);
  12. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  13. function getBuildStats(stats, outputPath) {
  14. var _stats$compilation = stats.compilation,
  15. chunks = _stats$compilation.chunks,
  16. chunkGroups = _stats$compilation.chunkGroups,
  17. modules = _stats$compilation.modules;
  18. var sortedChunks = (0, _sortChunks2.default)(chunks, chunkGroups);
  19. var affectedModules = (0, _getAffectedModuleIds2.default)(chunks, modules);
  20. var entries = [];
  21. var js = [];
  22. var pathHelper = function pathHelper(f) {
  23. return _path2.default.join(outputPath, f);
  24. };
  25. sortedChunks.forEach(function (chunk) {
  26. var files = Array.isArray(chunk.files) ? chunk.files : [chunk.files];
  27. if (chunk.isOnlyInitial()) {
  28. // only entry files
  29. var entry = files[0];
  30. entries.push(entry);
  31. }
  32. if (chunk.getModules().some(function (module) {
  33. return affectedModules.indexOf(module.id) !== -1;
  34. })) {
  35. files.forEach(function (file) {
  36. if (/\.js$/.test(file)) {
  37. js.push(file);
  38. }
  39. });
  40. }
  41. });
  42. var buildStats = {
  43. affectedModules: affectedModules,
  44. affectedFiles: js.map(pathHelper),
  45. entries: entries.map(pathHelper)
  46. };
  47. return buildStats;
  48. }