@zohodesk/react-cli 0.0.1-beta.16 → 0.0.1-beta.160

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc.js +46 -3
  3. package/CHANGELOG.md +5 -0
  4. package/README.md +650 -0
  5. package/bin/cli.js +134 -27
  6. package/cert/cert.pem +37 -129
  7. package/cert/key.pem +27 -27
  8. package/cert/passphrase.pem +1 -0
  9. package/files/eslintrc.js +62 -0
  10. package/files/prettierrc.js +3 -0
  11. package/lib/babel/cmjs-plugins-presets.js +16 -9
  12. package/lib/babel/es-plugins-presets.js +26 -14
  13. package/lib/common/getEntries.js +33 -24
  14. package/lib/common/getPublicPathConfig.js +40 -0
  15. package/lib/common/index.js +27 -13
  16. package/lib/common/splitChunks.js +64 -26
  17. package/lib/common/sslcertUpdater.js +59 -0
  18. package/lib/common/templateParameters.js +25 -0
  19. package/lib/configs/jest.config.js +18 -28
  20. package/lib/configs/webpack.component.umd.config.js +31 -37
  21. package/lib/configs/webpack.css.umd.config.js +44 -44
  22. package/lib/configs/webpack.dev.config.js +113 -57
  23. package/lib/configs/webpack.docs.config.js +104 -98
  24. package/lib/configs/webpack.impact.config.js +116 -0
  25. package/lib/configs/webpack.prod.config.js +154 -86
  26. package/lib/hooks/docsProptypeHook.js +32 -38
  27. package/lib/jest/commitedFilesResult.js +144 -71
  28. package/lib/jest/coverageCollector.js +62 -29
  29. package/lib/jest/jsonMaker.js +54 -0
  30. package/lib/jest/preProcessors/cssPreprocessor.js +16 -18
  31. package/lib/jest/preProcessors/jsPreprocessor.js +5 -6
  32. package/lib/jest/preProcessors/otherFilesPreprocessor.js +5 -6
  33. package/lib/jest/result.js +91 -41
  34. package/lib/jest/run.js +74 -27
  35. package/lib/jest/setup.js +103 -102
  36. package/lib/loaderUtils/getCSSLoaders.js +77 -0
  37. package/lib/loaderUtils/getDevJsLoaders.js +30 -23
  38. package/lib/loaderUtils/index.js +14 -7
  39. package/lib/loaders/docsLoader.js +15 -15
  40. package/lib/loaders/docsPropsLoader.js +14 -17
  41. package/lib/loaders/fileBountryLoader.js +17 -0
  42. package/lib/loaders/fileLoader.js +47 -38
  43. package/lib/loaders/scriptInstrumentLoader.js +21 -20
  44. package/lib/loaders/selectorMappingLoader.js +75 -0
  45. package/lib/loaders/workerLoader.js +136 -0
  46. package/lib/middlewares/HMRMiddleware.js +59 -41
  47. package/lib/middlewares/SSTMiddleware.js +21 -0
  48. package/lib/pluginUtils/getDevPlugins.js +173 -26
  49. package/lib/pluginUtils/getDocsPlugins.js +32 -17
  50. package/lib/pluginUtils/getLibraryImactPlugins.js +23 -0
  51. package/lib/pluginUtils/getLibraryPlugins.js +8 -10
  52. package/lib/pluginUtils/getProdPlugins.js +238 -37
  53. package/lib/pluginUtils/getServerPlugins.js +8 -11
  54. package/lib/pluginUtils/getUMDCSSPlugins.js +11 -15
  55. package/lib/pluginUtils/getUMDComponentPlugins.js +11 -15
  56. package/lib/pluginUtils/index.js +36 -43
  57. package/lib/plugins/CdnChangePlugin.js +77 -0
  58. package/lib/plugins/CleanupStatsPlugin.js +28 -0
  59. package/lib/plugins/EFCPlugin.js +211 -0
  60. package/lib/plugins/EFCPlugin.md +6 -0
  61. package/lib/plugins/I18NInjectIntoIndexPlugin.js +141 -0
  62. package/lib/plugins/I18nSplitPlugin/I18nDebugPlugin.js +60 -0
  63. package/lib/plugins/I18nSplitPlugin/I18nDependency.js +44 -0
  64. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +266 -0
  65. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +183 -0
  66. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +100 -0
  67. package/lib/plugins/I18nSplitPlugin/I18nSplit.md +86 -0
  68. package/lib/plugins/I18nSplitPlugin/README.md +25 -0
  69. package/lib/plugins/I18nSplitPlugin/index.js +185 -0
  70. package/lib/plugins/I18nSplitPlugin/utils/collectI18nKeys.js +64 -0
  71. package/lib/plugins/I18nSplitPlugin/utils/getI18nFileUrlPathTemplate.js +13 -0
  72. package/lib/plugins/I18nSplitPlugin/utils/getI18nKeysFormModules.js +26 -0
  73. package/lib/plugins/I18nSplitPlugin/utils/hashUtils.js +40 -0
  74. package/lib/plugins/I18nSplitPlugin/utils/index.js +31 -0
  75. package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +112 -0
  76. package/lib/plugins/ManifestPlugin.js +52 -63
  77. package/lib/plugins/ModuleStatsPlugin.js +98 -97
  78. package/lib/plugins/OptimizeJSPlugin.js +24 -41
  79. package/lib/plugins/PublicPathCallbackPlugin.js +63 -0
  80. package/lib/plugins/PublicPathChangePlugin.js +187 -174
  81. package/lib/plugins/ReportGeneratePlugin.js +181 -0
  82. package/lib/plugins/RequireVariablePublicPlugin.js +30 -0
  83. package/lib/plugins/ResourceHintsPlugin.js +53 -35
  84. package/lib/plugins/RtlSplitPlugin/OverwriteCssPathForRTL.js +80 -0
  85. package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +82 -0
  86. package/lib/plugins/RtlSplitPlugin/RtrSplit.md +30 -0
  87. package/lib/plugins/RtlSplitPlugin/replaceCssDirTemplate.js +26 -0
  88. package/lib/plugins/ScriptInstrumentPlugin.js +22 -37
  89. package/lib/plugins/ServiceWorkerPlugin.js +107 -0
  90. package/lib/plugins/ShadowDOMSupportPlugin.js +270 -0
  91. package/lib/plugins/SourceMapHookPlugin.js +25 -31
  92. package/lib/plugins/TPHashMappingPlugin.js +67 -0
  93. package/lib/plugins/UglifyCSSPlugin.js +23 -30
  94. package/lib/plugins/UnusedFilesFindPlugin.js +150 -97
  95. package/lib/plugins/index.js +118 -55
  96. package/lib/plugins/libraryImpactPlugin.js +190 -0
  97. package/lib/plugins/webpackwatchrunplugin.js +26 -0
  98. package/lib/postcss-plugins/ExcludeRTLPlugin.js +23 -0
  99. package/lib/postcss-plugins/RTLSplitPlugin.js +138 -0
  100. package/lib/schemas/index.js +463 -52
  101. package/lib/servers/clusterHubServer.js +22 -26
  102. package/lib/servers/docsServer.js +3 -5
  103. package/lib/servers/docsServerCore.js +93 -85
  104. package/lib/servers/helpServer.js +19 -21
  105. package/lib/servers/httpsOptions.js +19 -0
  106. package/lib/servers/impactServer.js +99 -92
  107. package/lib/servers/mockserver.js +44 -0
  108. package/lib/servers/nowatchserver.js +275 -0
  109. package/lib/servers/scrServer.js +147 -0
  110. package/lib/servers/server.js +118 -124
  111. package/lib/servers/ssServer.js +107 -65
  112. package/lib/sh/reportPublish.sh +16 -10
  113. package/lib/templates/CoverageScriptTemplate.js +45 -18
  114. package/lib/templates/WMSTemplate.js +17 -18
  115. package/lib/templates/linterConstant.js +10 -0
  116. package/lib/utils/babelPresets.js +12 -5
  117. package/lib/utils/buildstats.html +148 -0
  118. package/lib/utils/clean.js +12 -11
  119. package/lib/utils/copy.js +13 -127
  120. package/lib/utils/copyTimezones.js +21 -0
  121. package/lib/utils/createEventStream.js +24 -19
  122. package/lib/utils/cssClassNameGenerate.js +70 -0
  123. package/lib/utils/cssURLReplacer.js +67 -54
  124. package/lib/utils/dependencyPostPublish.js +42 -0
  125. package/lib/utils/fileUtils.js +125 -0
  126. package/lib/utils/folderIterator.js +47 -0
  127. package/lib/utils/getComponents.js +126 -0
  128. package/lib/utils/getCurrentBranch.js +11 -17
  129. package/lib/utils/getDependenciesImpactList.js +151 -0
  130. package/lib/utils/getHash.js +26 -0
  131. package/lib/utils/getIp.js +20 -0
  132. package/lib/utils/getOptions.js +55 -30
  133. package/lib/utils/getServerURL.js +25 -8
  134. package/lib/utils/index.js +259 -82
  135. package/lib/utils/init.js +2 -2
  136. package/lib/utils/initPreCommitHook.js +40 -31
  137. package/lib/utils/jsonHelper.js +97 -0
  138. package/lib/utils/libraryImpactConfig.js +63 -0
  139. package/lib/utils/lint/addScripts.js +27 -0
  140. package/lib/utils/lint/checkExistingConfig.js +67 -0
  141. package/lib/utils/lint/copyConfigs.js +24 -0
  142. package/lib/utils/lint/index.js +54 -0
  143. package/lib/utils/lint/lintScripts.js +11 -0
  144. package/lib/utils/lint/lintSetup.js +31 -0
  145. package/lib/utils/lint/lintStagedPreCommitHook.js +7 -0
  146. package/lib/utils/lint/question.js +30 -0
  147. package/lib/utils/lintReporter.js +142 -0
  148. package/lib/utils/mailSender.js +16 -25
  149. package/lib/utils/pullOrigin.js +28 -0
  150. package/lib/utils/reinstallDependencies.js +133 -0
  151. package/lib/utils/removeAttributes.js +25 -23
  152. package/lib/utils/repoClone.js +56 -63
  153. package/lib/utils/request.js +64 -77
  154. package/lib/utils/resultSchema.json +73 -0
  155. package/lib/utils/rtl.js +42 -0
  156. package/lib/utils/setEnvVariables.js +5 -6
  157. package/lib/utils/ssTestHack.js +48 -0
  158. package/lib/utils/switchBranch.js +28 -0
  159. package/lib/utils/urlConcat.js +22 -0
  160. package/package.json +92 -64
  161. package/templates/app/.eslintrc.js +140 -0
  162. package/templates/app/README.md +12 -12
  163. package/templates/app/app/index.html +24 -8
  164. package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
  165. package/templates/app/app/properties/i18nkeys.json +3 -3
  166. package/templates/app/docs/all.html +69 -69
  167. package/templates/app/mockapi/index.js +18 -13
  168. package/templates/app/package.json +37 -17
  169. package/templates/app/src/actions/SampleActions/index.js +37 -0
  170. package/templates/app/src/actions/index.js +65 -0
  171. package/templates/app/src/appUrls.js +19 -0
  172. package/templates/app/src/components/Alert/Alert.js +134 -0
  173. package/templates/app/src/components/Alert/Alert.module.css +79 -0
  174. package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -0
  175. package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -0
  176. package/templates/app/src/components/Sample/Sample.module.css +11 -0
  177. package/templates/app/src/components/Sample/SampleList.js +61 -0
  178. package/templates/app/src/components/Slider/Slider.css +41 -0
  179. package/templates/app/src/components/Slider/Slider.js +55 -0
  180. package/templates/app/src/containers/AlertContainer/index.js +15 -0
  181. package/templates/app/src/containers/AppContainer/index.js +96 -0
  182. package/templates/app/src/containers/AppContainer/index.module.css +27 -0
  183. package/templates/app/src/containers/CustomMatch/index.js +65 -0
  184. package/templates/app/src/containers/DevTools/index.js +10 -0
  185. package/templates/app/src/containers/Header/index.js +67 -0
  186. package/templates/app/src/containers/Header/index.module.css +43 -0
  187. package/templates/app/src/containers/Redirect/index.js +63 -0
  188. package/templates/app/src/containers/Redirector/index.js +47 -0
  189. package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -0
  190. package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -0
  191. package/templates/app/src/historyChange.js +5 -0
  192. package/templates/app/src/index.html +10 -0
  193. package/templates/app/src/index.js +24 -0
  194. package/templates/app/src/middleware/PromiseMiddleware.js +59 -0
  195. package/templates/app/src/reducers/alertData.js +11 -0
  196. package/templates/app/src/reducers/index.js +6 -0
  197. package/templates/app/src/reducers/samples.js +19 -0
  198. package/templates/app/src/store/configureStore.dev.js +51 -0
  199. package/templates/app/src/store/configureStore.js +5 -0
  200. package/templates/app/src/store/configureStore.prod.js +26 -0
  201. package/templates/app/src/util/Common.js +5 -0
  202. package/templates/app/src/util/RequestAPI.js +132 -0
  203. package/templates/appold/README.md +12 -0
  204. package/templates/appold/app/index.html +8 -0
  205. package/templates/appold/app/properties/ApplicationResources_en_US.properties +1 -0
  206. package/templates/appold/app/properties/i18nkeys.json +3 -0
  207. package/templates/appold/docs/all.html +69 -0
  208. package/templates/appold/mockapi/index.js +13 -0
  209. package/templates/{app → appold}/mockapi/tickets.json +0 -0
  210. package/templates/appold/package.json +17 -0
  211. package/templates/appold/src/components/Text/Text.css +0 -0
  212. package/templates/appold/src/components/Text/Text.js +23 -0
  213. package/templates/appold/src/components/Text/__tests__/Text.spec.js +30 -0
  214. package/templates/appold/src/components/Text/docs/Text__default.docs.js +16 -0
  215. package/templates/appold/src/components/docs.js +1 -0
  216. package/templates/appold/src/components/index.js +5 -0
  217. package/templates/appold/src/index.js +13 -0
  218. package/templates/docs/all.html +1 -1
  219. package/templates/docs/component.html +110 -69
  220. package/templates/docs/components.html +221 -0
  221. package/templates/docs/css/component.css +12 -14
  222. package/templates/docs/css/componentTest.css +7 -0
  223. package/templates/docs/css/style.css +150 -206
  224. package/templates/docs/impactReportTemplate.html +154 -0
  225. package/templates/docs/index.html +1482 -1336
  226. package/templates/library/src/index.js +0 -0
@@ -1,138 +1,191 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.default = void 0;
6
7
 
7
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
8
+ var _path = _interopRequireDefault(require("path"));
8
9
 
9
- var _path = require('path');
10
+ var _fs = _interopRequireDefault(require("fs"));
10
11
 
11
- var _path2 = _interopRequireDefault(_path);
12
-
13
- var _fs = require('fs');
14
-
15
- var _fs2 = _interopRequireDefault(_fs);
16
-
17
- var _utils = require('../utils');
12
+ var _utils = require("../utils");
18
13
 
19
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
15
 
21
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
16
+ let excludeDocsJSON = '{}';
22
17
 
23
- var getRegex = function getRegex(regexString) {
24
- return regexString.map(function (str) {
25
- return new RegExp(str);
26
- });
27
- };
18
+ if (_fs.default.existsSync('./__testUtils__/conf/excludeDocs.json')) {
19
+ excludeDocsJSON = _fs.default.readFileSync('./__testUtils__/conf/excludeDocs.json').toString();
28
20
 
29
- var UnusedFilesFindPlugin = function () {
30
- function UnusedFilesFindPlugin() {
31
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
21
+ if (excludeDocsJSON.indexOf('\\') !== -1) {
22
+ excludeDocsJSON = excludeDocsJSON.replace(/\\/g, '\\\\');
23
+ }
24
+ }
25
+
26
+ let excludeDocsArray = JSON.parse(excludeDocsJSON); // if (Object.keys(excludeDocsArray).length > 0) {
27
+ // }
32
28
 
33
- _classCallCheck(this, UnusedFilesFindPlugin);
29
+ let getRegex = regexString => regexString.map(str => new RegExp(str));
34
30
 
31
+ class UnusedFilesFindPlugin {
32
+ constructor(options = {}) {
35
33
  this.usedFilesExcludes = getRegex(options.usedFilesExcludes);
36
34
  this.appFilesExcludes = getRegex(options.appFilesExcludes);
37
35
  this.origin = options.origin;
38
36
  this.delete = options.delete;
37
+ this.sstest = options.ssTest || false;
39
38
  this.outputFileName = options.outputFileName;
39
+ this.docsFilename = options.docsFilename || 'Undocsfiles.json';
40
+
40
41
  if (!this.origin) {
41
42
  throw new Error('You must provide origin point of the app');
42
43
  }
43
44
  }
44
45
 
45
- _createClass(UnusedFilesFindPlugin, [{
46
- key: 'isIgnoredUsedFile',
47
- value: function isIgnoredUsedFile(file) {
48
- var result = void 0;
49
- for (var i = 0; i < this.usedFilesExcludes.length; i++) {
50
- var exclude = this.usedFilesExcludes[i];
51
- result = exclude.test(file);
52
- if (result) {
53
- break;
54
- }
55
- }
56
- return result;
57
- }
58
- }, {
59
- key: 'isIgnoredAllFile',
60
- value: function isIgnoredAllFile(file) {
61
- var result = void 0;
62
- for (var i = 0; i < this.appFilesExcludes.length; i++) {
63
- var exclude = this.appFilesExcludes[i];
64
- result = exclude.test(file);
65
- if (result) {
66
- break;
67
- }
46
+ isIgnoredUsedFile(file) {
47
+ let result;
48
+
49
+ for (let i = 0; i < this.usedFilesExcludes.length; i++) {
50
+ let exclude = this.usedFilesExcludes[i];
51
+ result = exclude.test(file);
52
+
53
+ if (result) {
54
+ break;
68
55
  }
69
- return result;
70
56
  }
71
- }, {
72
- key: 'getAllFiles',
73
- value: function getAllFiles(rootPath) {
74
- var _this = this;
75
-
76
- var allFiles = [];
77
- var files = _fs2.default.readdirSync(rootPath).map(function (file) {
78
- return _path2.default.join(rootPath, file);
79
- });
80
- files.forEach(function (file) {
81
- if (_fs2.default.statSync(file).isDirectory()) {
82
- allFiles = allFiles.concat(_this.getAllFiles(file));
83
- } else {
84
- if (!_this.isIgnoredAllFile(file)) {
85
- allFiles.push(file);
57
+
58
+ return result;
59
+ }
60
+
61
+ unDocumentedFiles(outputPath) {
62
+ let status = _fs.default.existsSync(_path.default.join(outputPath, this.outputFileName));
63
+
64
+ let unDocsCompObj = {};
65
+
66
+ if (status) {
67
+ let data = _fs.default.readFileSync(_path.default.join(outputPath, this.outputFileName)).toString();
68
+
69
+ let walkSync = (dir, filelist = [], undocList = []) => {
70
+ let files = _fs.default.readdirSync(dir);
71
+
72
+ files.forEach(file => {
73
+ if (_fs.default.statSync(`${dir}/${file}`).isDirectory()) {
74
+ filelist = walkSync(`${dir}/${file}`, filelist, undocList); //eslint-disable-line
75
+ } else {
76
+ if (file.includes('.docs')) {
77
+ if (!(`${dir}/${file}` in JSON.parse(data))) {
78
+ filelist.push(`${dir.replace(_path.default.join(process.cwd(), 'src', 'components'), '')}/${file}`);
79
+ }
80
+ } else {
81
+ if (file.includes('.js') && !file.includes('.spec') && !file.includes('.json')) {
82
+ if (!files.includes('docs')) {
83
+ if (!excludeDocsArray.docs.exclude.includes(`${dir.replace(_path.default.join(process.cwd(), 'src', 'components'), '')}/${file}`)) {
84
+ undocList.push(`${dir.replace(_path.default.join(process.cwd(), 'src', 'components'), '')}/${file}`);
85
+ }
86
+ }
87
+ }
88
+ }
89
+ }
90
+ });
91
+ unDocsCompObj.withoutDocs = undocList;
92
+ return filelist;
93
+ };
94
+
95
+ unDocsCompObj.noEnteredComp = walkSync(_path.default.join(process.cwd(), 'src', 'components'), [], []);
96
+ (0, _utils.writeFile)(_path.default.join(outputPath, this.docsFilename), JSON.stringify(unDocsCompObj));
97
+ Object.keys(unDocsCompObj).forEach(key => {
98
+ if (unDocsCompObj[key].length > 0) {
99
+ if (key === 'withoutDocs') {
100
+ (0, _utils.log)('\x1b[36m%s\x1b[0m', '\nPlease write docs file for below componenst :- \n');
101
+ unDocsCompObj[key].forEach(value => {
102
+ if (!excludeDocsArray.docs.exclude.includes(value)) {
103
+ (0, _utils.log)('\x1b[33m%s\x1b[0m', `${value}`);
104
+ }
105
+ });
86
106
  }
87
107
  }
88
108
  });
89
- return allFiles;
90
109
  }
91
- }, {
92
- key: 'apply',
93
- value: function apply(compiler) {
94
- var _this2 = this;
110
+ }
95
111
 
96
- compiler.hooks.afterEmit.tap('UnusedFilesShowPlugin', function (compilation) {
97
- var outputPath = compilation.compiler.options.output.path;
112
+ isIgnoredAllFile(file) {
113
+ let result;
98
114
 
99
- var usedFiles = Array.from(compilation.fileDependencies).reduce(function (files, usedFile) {
100
- if (!_this2.isIgnoredUsedFile(usedFile)) {
101
- files[usedFile] = true;
102
- }
103
- return files;
104
- }, {});
115
+ for (let i = 0; i < this.appFilesExcludes.length; i++) {
116
+ let exclude = this.appFilesExcludes[i];
117
+ result = exclude.test(file);
105
118
 
106
- var allFiles = _this2.getAllFiles(_this2.origin);
119
+ if (result) {
120
+ break;
121
+ }
122
+ }
107
123
 
108
- var unusedFiles = [];
109
- allFiles.forEach(function (file) {
110
- if (!usedFiles[file]) {
111
- unusedFiles.push(file);
112
- }
113
- });
124
+ return result;
125
+ }
114
126
 
115
- if (!unusedFiles.length) {
116
- (0, _utils.log)('There is no unused files');
117
- } else {
118
- if (_this2.outputFileName) {
119
- (0, _utils.log)('You can see unused files info from ' + _path2.default.join(outputPath, _this2.outputFileName) + ' path');
120
- (0, _utils.makeDir)(outputPath);
121
- (0, _utils.writeFile)(_path2.default.join(outputPath, _this2.outputFileName), JSON.stringify(unusedFiles));
122
- }
127
+ getAllFiles(rootPath) {
128
+ let allFiles = [];
129
+
130
+ let files = _fs.default.readdirSync(rootPath).map(file => _path.default.join(rootPath, file));
131
+
132
+ files.forEach(file => {
133
+ if (_fs.default.statSync(file).isDirectory()) {
134
+ allFiles = allFiles.concat(this.getAllFiles(file));
135
+ } else {
136
+ if (!this.isIgnoredAllFile(file)) {
137
+ allFiles.push(file);
123
138
  }
139
+ }
140
+ });
141
+ return allFiles;
142
+ }
124
143
 
125
- if (_this2.delete) {
126
- unusedFiles.forEach(function (file) {
127
- _fs2.default.unlinkSync(file);
128
- (0, _utils.log)('Deleted - ' + file);
129
- });
144
+ apply(compiler) {
145
+ compiler.hooks.afterEmit.tap('UnusedFilesShowPlugin', compilation => {
146
+ let {
147
+ path: outputPath
148
+ } = compilation.compiler.options.output;
149
+ let usedFiles = Array.from(compilation.fileDependencies).reduce((files, usedFile) => {
150
+ if (!this.isIgnoredUsedFile(usedFile)) {
151
+ files[usedFile] = true;
152
+ }
153
+
154
+ return files;
155
+ }, {});
156
+ let allFiles = this.getAllFiles(this.origin);
157
+ let unusedFiles = [];
158
+ allFiles.forEach(file => {
159
+ if (!usedFiles[file]) {
160
+ unusedFiles.push(file);
130
161
  }
131
162
  });
132
- }
133
- }]);
134
163
 
135
- return UnusedFilesFindPlugin;
136
- }();
164
+ if (!unusedFiles.length) {
165
+ (0, _utils.log)('There is no unused files');
166
+ } else {
167
+ if (this.outputFileName) {
168
+ (0, _utils.log)(`You can see unused files info from ${_path.default.join(outputPath, this.outputFileName)} path`);
169
+ (0, _utils.makeDir)(outputPath);
170
+ (0, _utils.writeFile)(_path.default.join(outputPath, this.outputFileName), JSON.stringify(unusedFiles)).then(() => {
171
+ if (this.sstest) {
172
+ this.unDocumentedFiles(outputPath);
173
+ }
174
+ });
175
+ }
176
+ }
177
+
178
+ if (this.delete) {
179
+ unusedFiles.forEach(file => {
180
+ _fs.default.unlinkSync(file);
181
+
182
+ (0, _utils.log)(`Deleted - ${file}`);
183
+ });
184
+ }
185
+ });
186
+ }
187
+
188
+ }
137
189
 
138
- exports.default = UnusedFilesFindPlugin;
190
+ var _default = UnusedFilesFindPlugin;
191
+ exports.default = _default;
@@ -1,88 +1,151 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
7
- var _ModuleStatsPlugin = require('./ModuleStatsPlugin');
8
-
9
- Object.defineProperty(exports, 'ModuleStatsPlugin', {
6
+ Object.defineProperty(exports, "ModuleStatsPlugin", {
10
7
  enumerable: true,
11
- get: function get() {
12
- return _interopRequireDefault(_ModuleStatsPlugin).default;
8
+ get: function () {
9
+ return _ModuleStatsPlugin.default;
13
10
  }
14
11
  });
15
-
16
- var _SourceMapHookPlugin = require('./SourceMapHookPlugin');
17
-
18
- Object.defineProperty(exports, 'SourceMapHookPlugin', {
12
+ Object.defineProperty(exports, "SourceMapHookPlugin", {
19
13
  enumerable: true,
20
- get: function get() {
21
- return _interopRequireDefault(_SourceMapHookPlugin).default;
14
+ get: function () {
15
+ return _SourceMapHookPlugin.default;
22
16
  }
23
17
  });
24
-
25
- var _UnusedFilesFindPlugin = require('./UnusedFilesFindPlugin');
26
-
27
- Object.defineProperty(exports, 'UnusedFilesFindPlugin', {
18
+ Object.defineProperty(exports, "UnusedFilesFindPlugin", {
28
19
  enumerable: true,
29
- get: function get() {
30
- return _interopRequireDefault(_UnusedFilesFindPlugin).default;
20
+ get: function () {
21
+ return _UnusedFilesFindPlugin.default;
31
22
  }
32
23
  });
33
-
34
- var _ScriptInstrumentPlugin = require('./ScriptInstrumentPlugin');
35
-
36
- Object.defineProperty(exports, 'ScriptInstrumentPlugin', {
24
+ Object.defineProperty(exports, "ScriptInstrumentPlugin", {
37
25
  enumerable: true,
38
- get: function get() {
39
- return _interopRequireDefault(_ScriptInstrumentPlugin).default;
26
+ get: function () {
27
+ return _ScriptInstrumentPlugin.default;
40
28
  }
41
29
  });
42
-
43
- var _PublicPathChangePlugin = require('./PublicPathChangePlugin');
44
-
45
- Object.defineProperty(exports, 'PublicPathChangePlugin', {
30
+ Object.defineProperty(exports, "PublicPathChangePlugin", {
46
31
  enumerable: true,
47
- get: function get() {
48
- return _interopRequireDefault(_PublicPathChangePlugin).default;
32
+ get: function () {
33
+ return _PublicPathChangePlugin.default;
49
34
  }
50
35
  });
51
-
52
- var _OptimizeJSPlugin = require('./OptimizeJSPlugin');
53
-
54
- Object.defineProperty(exports, 'OptimizeJSPlugin', {
36
+ Object.defineProperty(exports, "OptimizeJSPlugin", {
55
37
  enumerable: true,
56
- get: function get() {
57
- return _interopRequireDefault(_OptimizeJSPlugin).default;
38
+ get: function () {
39
+ return _OptimizeJSPlugin.default;
58
40
  }
59
41
  });
60
-
61
- var _ResourceHintsPlugin = require('./ResourceHintsPlugin');
62
-
63
- Object.defineProperty(exports, 'ResourceHintsPlugin', {
42
+ Object.defineProperty(exports, "ResourceHintsPlugin", {
64
43
  enumerable: true,
65
- get: function get() {
66
- return _interopRequireDefault(_ResourceHintsPlugin).default;
44
+ get: function () {
45
+ return _ResourceHintsPlugin.default;
67
46
  }
68
47
  });
69
-
70
- var _UglifyCSSPlugin = require('./UglifyCSSPlugin');
71
-
72
- Object.defineProperty(exports, 'UglifyCSSPlugin', {
48
+ Object.defineProperty(exports, "UglifyCSSPlugin", {
73
49
  enumerable: true,
74
- get: function get() {
75
- return _interopRequireDefault(_UglifyCSSPlugin).default;
50
+ get: function () {
51
+ return _UglifyCSSPlugin.default;
76
52
  }
77
53
  });
78
-
79
- var _ManifestPlugin = require('./ManifestPlugin');
80
-
81
- Object.defineProperty(exports, 'ManifestPlugin', {
54
+ Object.defineProperty(exports, "ManifestPlugin", {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _ManifestPlugin.default;
58
+ }
59
+ });
60
+ Object.defineProperty(exports, "CleanUpStatsPlugin", {
61
+ enumerable: true,
62
+ get: function () {
63
+ return _CleanupStatsPlugin.default;
64
+ }
65
+ });
66
+ Object.defineProperty(exports, "EFCPlugin", {
82
67
  enumerable: true,
83
- get: function get() {
84
- return _interopRequireDefault(_ManifestPlugin).default;
68
+ get: function () {
69
+ return _EFCPlugin.default;
85
70
  }
86
71
  });
72
+ Object.defineProperty(exports, "PublicPathCallbackPlugin", {
73
+ enumerable: true,
74
+ get: function () {
75
+ return _PublicPathCallbackPlugin.default;
76
+ }
77
+ });
78
+ Object.defineProperty(exports, "I18NInjectIntoIndexPlugin", {
79
+ enumerable: true,
80
+ get: function () {
81
+ return _I18NInjectIntoIndexPlugin.default;
82
+ }
83
+ });
84
+ Object.defineProperty(exports, "ReportGeneratePlugin", {
85
+ enumerable: true,
86
+ get: function () {
87
+ return _ReportGeneratePlugin.default;
88
+ }
89
+ });
90
+ Object.defineProperty(exports, "ShadowDOMSupportPlugin", {
91
+ enumerable: true,
92
+ get: function () {
93
+ return _ShadowDOMSupportPlugin.default;
94
+ }
95
+ });
96
+ Object.defineProperty(exports, "ServiceWorkerPlugin", {
97
+ enumerable: true,
98
+ get: function () {
99
+ return _ServiceWorkerPlugin.default;
100
+ }
101
+ });
102
+ Object.defineProperty(exports, "TPHashMappingPlugin", {
103
+ enumerable: true,
104
+ get: function () {
105
+ return _TPHashMappingPlugin.default;
106
+ }
107
+ });
108
+ Object.defineProperty(exports, "CdnChangePlugin", {
109
+ enumerable: true,
110
+ get: function () {
111
+ return _CdnChangePlugin.default;
112
+ }
113
+ });
114
+
115
+ var _ModuleStatsPlugin = _interopRequireDefault(require("./ModuleStatsPlugin"));
116
+
117
+ var _SourceMapHookPlugin = _interopRequireDefault(require("./SourceMapHookPlugin"));
118
+
119
+ var _UnusedFilesFindPlugin = _interopRequireDefault(require("./UnusedFilesFindPlugin"));
120
+
121
+ var _ScriptInstrumentPlugin = _interopRequireDefault(require("./ScriptInstrumentPlugin"));
122
+
123
+ var _PublicPathChangePlugin = _interopRequireDefault(require("./PublicPathChangePlugin"));
124
+
125
+ var _OptimizeJSPlugin = _interopRequireDefault(require("./OptimizeJSPlugin"));
126
+
127
+ var _ResourceHintsPlugin = _interopRequireDefault(require("./ResourceHintsPlugin"));
128
+
129
+ var _UglifyCSSPlugin = _interopRequireDefault(require("./UglifyCSSPlugin"));
130
+
131
+ var _ManifestPlugin = _interopRequireDefault(require("./ManifestPlugin"));
132
+
133
+ var _CleanupStatsPlugin = _interopRequireDefault(require("./CleanupStatsPlugin"));
134
+
135
+ var _EFCPlugin = _interopRequireDefault(require("./EFCPlugin"));
136
+
137
+ var _PublicPathCallbackPlugin = _interopRequireDefault(require("./PublicPathCallbackPlugin"));
138
+
139
+ var _I18NInjectIntoIndexPlugin = _interopRequireDefault(require("./I18NInjectIntoIndexPlugin"));
140
+
141
+ var _ReportGeneratePlugin = _interopRequireDefault(require("./ReportGeneratePlugin"));
142
+
143
+ var _ShadowDOMSupportPlugin = _interopRequireDefault(require("./ShadowDOMSupportPlugin"));
144
+
145
+ var _ServiceWorkerPlugin = _interopRequireDefault(require("./ServiceWorkerPlugin"));
146
+
147
+ var _TPHashMappingPlugin = _interopRequireDefault(require("./TPHashMappingPlugin"));
148
+
149
+ var _CdnChangePlugin = _interopRequireDefault(require("./CdnChangePlugin"));
87
150
 
88
151
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }