@zohodesk/react-cli 0.0.1-beta.98 → 0.0.1-betaa.138.1

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 (139) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/README.md +149 -0
  3. package/bin/cli.js +34 -29
  4. package/files/eslintrc.js +57 -0
  5. package/files/prettierrc.js +3 -0
  6. package/lib/babel/cmjs-plugins-presets.js +16 -9
  7. package/lib/babel/es-plugins-presets.js +26 -14
  8. package/lib/common/getEntries.js +31 -22
  9. package/lib/common/getPublicPathConfig.js +27 -13
  10. package/lib/common/index.js +21 -25
  11. package/lib/common/splitChunks.js +62 -53
  12. package/lib/common/templateParameters.js +10 -8
  13. package/lib/configs/jest.config.js +15 -25
  14. package/lib/configs/webpack.component.umd.config.js +31 -37
  15. package/lib/configs/webpack.css.umd.config.js +44 -47
  16. package/lib/configs/webpack.dev.config.js +70 -52
  17. package/lib/configs/webpack.docs.config.js +106 -106
  18. package/lib/configs/webpack.prod.config.js +95 -75
  19. package/lib/hooks/docsProptypeHook.js +32 -38
  20. package/lib/jest/commitedFilesResult.js +103 -74
  21. package/lib/jest/coverageCollector.js +41 -21
  22. package/lib/jest/jsonMaker.js +15 -16
  23. package/lib/jest/preProcessors/cssPreprocessor.js +16 -18
  24. package/lib/jest/preProcessors/jsPreprocessor.js +3 -5
  25. package/lib/jest/preProcessors/otherFilesPreprocessor.js +5 -6
  26. package/lib/jest/result.js +90 -45
  27. package/lib/jest/run.js +43 -43
  28. package/lib/jest/setup.js +102 -95
  29. package/lib/loaderUtils/getCSSLoaders.js +21 -22
  30. package/lib/loaderUtils/getDevJsLoaders.js +25 -23
  31. package/lib/loaderUtils/index.js +11 -13
  32. package/lib/loaders/docsLoader.js +15 -15
  33. package/lib/loaders/docsPropsLoader.js +14 -17
  34. package/lib/loaders/fileLoader.js +33 -35
  35. package/lib/loaders/scriptInstrumentLoader.js +21 -20
  36. package/lib/loaders/workerLoader.js +136 -0
  37. package/lib/middlewares/HMRMiddleware.js +54 -45
  38. package/lib/middlewares/SSTMiddleware.js +8 -5
  39. package/lib/pluginUtils/getDevPlugins.js +114 -52
  40. package/lib/pluginUtils/getDocsPlugins.js +25 -29
  41. package/lib/pluginUtils/getLibraryPlugins.js +8 -10
  42. package/lib/pluginUtils/getProdPlugins.js +163 -74
  43. package/lib/pluginUtils/getServerPlugins.js +8 -11
  44. package/lib/pluginUtils/getUMDCSSPlugins.js +11 -15
  45. package/lib/pluginUtils/getUMDComponentPlugins.js +11 -15
  46. package/lib/pluginUtils/index.js +36 -43
  47. package/lib/plugins/CdnChangePlugin.js +63 -0
  48. package/lib/plugins/CleanupStatsPlugin.js +18 -32
  49. package/lib/plugins/CustomAttributePlugin.js +79 -0
  50. package/lib/plugins/CustomAttributePlugin.md +35 -0
  51. package/lib/plugins/EFCPlugin.js +185 -0
  52. package/lib/plugins/I18NInjectIntoIndexPlugin.js +118 -52
  53. package/lib/plugins/I18nSplitPlugin/I18nDebugPlugin.js +60 -0
  54. package/lib/plugins/I18nSplitPlugin/I18nDependency.js +44 -0
  55. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +266 -0
  56. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +183 -0
  57. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +100 -0
  58. package/lib/plugins/I18nSplitPlugin/I18nSplit.md +86 -0
  59. package/lib/plugins/I18nSplitPlugin/README.md +25 -0
  60. package/lib/plugins/I18nSplitPlugin/index.js +185 -0
  61. package/lib/plugins/I18nSplitPlugin/utils/collectI18nKeys.js +64 -0
  62. package/lib/plugins/I18nSplitPlugin/utils/getI18nFileUrlPathTemplate.js +13 -0
  63. package/lib/plugins/I18nSplitPlugin/utils/getI18nKeysFormModules.js +26 -0
  64. package/lib/plugins/I18nSplitPlugin/utils/hashUtils.js +40 -0
  65. package/lib/plugins/I18nSplitPlugin/utils/index.js +31 -0
  66. package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +112 -0
  67. package/lib/plugins/ManifestPlugin.js +52 -63
  68. package/lib/plugins/ModuleStatsPlugin.js +83 -173
  69. package/lib/plugins/OptimizeJSPlugin.js +24 -41
  70. package/lib/plugins/PublicPathCallbackPlugin.js +42 -116
  71. package/lib/plugins/PublicPathChangePlugin.js +175 -284
  72. package/lib/plugins/ReportGeneratePlugin.js +150 -151
  73. package/lib/plugins/ResourceHintsPlugin.js +53 -35
  74. package/lib/plugins/ScriptInstrumentPlugin.js +22 -37
  75. package/lib/plugins/ServiceWorkerPlugin.js +81 -57
  76. package/lib/plugins/ShadowDOMSupportPlugin.js +153 -234
  77. package/lib/plugins/SourceMapHookPlugin.js +21 -33
  78. package/lib/plugins/TPHashMappingPlugin.js +67 -0
  79. package/lib/plugins/UglifyCSSPlugin.js +23 -30
  80. package/lib/plugins/UnusedFilesFindPlugin.js +137 -152
  81. package/lib/plugins/index.js +100 -91
  82. package/lib/plugins/webpackwatchrunplugin.js +18 -30
  83. package/lib/postcss-plugins/ExcludeRTLPlugin.js +14 -17
  84. package/lib/schemas/index.js +336 -81
  85. package/lib/servers/clusterHubServer.js +22 -26
  86. package/lib/servers/docsServer.js +3 -5
  87. package/lib/servers/docsServerCore.js +84 -91
  88. package/lib/servers/helpServer.js +19 -21
  89. package/lib/servers/impactServer.js +99 -92
  90. package/lib/servers/mockserver.js +24 -24
  91. package/lib/servers/scrServer.js +78 -98
  92. package/lib/servers/server.js +101 -122
  93. package/lib/servers/ssServer.js +63 -61
  94. package/lib/sh/reportPublish.sh +1 -2
  95. package/lib/templates/CoverageScriptTemplate.js +45 -18
  96. package/lib/templates/WMSTemplate.js +17 -18
  97. package/lib/templates/linterConstant.js +6 -4
  98. package/lib/utils/babelPresets.js +12 -5
  99. package/lib/utils/clean.js +12 -11
  100. package/lib/utils/copy.js +12 -34
  101. package/lib/utils/copyTimezones.js +9 -16
  102. package/lib/utils/createEventStream.js +24 -19
  103. package/lib/utils/cssClassNameGenerate.js +44 -73
  104. package/lib/utils/cssURLReplacer.js +62 -56
  105. package/lib/utils/dependencyPostPublish.js +20 -19
  106. package/lib/utils/fileUtils.js +66 -54
  107. package/lib/utils/folderIterator.js +20 -21
  108. package/lib/utils/getComponents.js +70 -27
  109. package/lib/utils/getCurrentBranch.js +11 -17
  110. package/lib/utils/getDependenciesImpactList.js +114 -187
  111. package/lib/utils/getHash.js +9 -13
  112. package/lib/utils/getIp.js +9 -9
  113. package/lib/utils/getOptions.js +26 -29
  114. package/lib/utils/getServerURL.js +19 -10
  115. package/lib/utils/index.js +147 -126
  116. package/lib/utils/init.js +2 -2
  117. package/lib/utils/initPreCommitHook.js +40 -32
  118. package/lib/utils/jsonHelper.js +37 -21
  119. package/lib/utils/lint/addScripts.js +27 -0
  120. package/lib/utils/lint/checkExistingConfig.js +67 -0
  121. package/lib/utils/lint/copyConfigs.js +24 -0
  122. package/lib/utils/lint/index.js +54 -0
  123. package/lib/utils/lint/lintScripts.js +11 -0
  124. package/lib/utils/lint/lintSetup.js +31 -0
  125. package/lib/utils/lint/lintStagedPreCommitHook.js +7 -0
  126. package/lib/utils/lint/question.js +30 -0
  127. package/lib/utils/lintReporter.js +70 -56
  128. package/lib/utils/mailSender.js +12 -27
  129. package/lib/utils/pullOrigin.js +21 -18
  130. package/lib/utils/reinstallDependencies.js +76 -85
  131. package/lib/utils/removeAttributes.js +25 -23
  132. package/lib/utils/repoClone.js +47 -45
  133. package/lib/utils/request.js +64 -77
  134. package/lib/utils/rtl.js +22 -29
  135. package/lib/utils/setEnvVariables.js +5 -6
  136. package/lib/utils/ssTestHack.js +21 -19
  137. package/lib/utils/switchBranch.js +21 -20
  138. package/lib/utils/urlConcat.js +22 -0
  139. package/package.json +72 -67
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _webpack = require("webpack");
9
+
10
+ var _fs = _interopRequireDefault(require("fs"));
11
+
12
+ var _path = _interopRequireDefault(require("path"));
13
+
14
+ var _crypto = _interopRequireDefault(require("crypto"));
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ /**
19
+ * Plugin that generates hash for the provided list of third party files
20
+ * Map the provided key with the file hash and add it to the list of exisiting global constants.
21
+ * Plugin in turn uses the defineplugin to generate global constants.
22
+ */
23
+ class TPHashMappingPlugin {
24
+ constructor(options) {
25
+ this.fileMappings = options.fileMappings;
26
+ this.tpFolder = options.tpFolder;
27
+ return new _webpack.DefinePlugin(this.getFiles());
28
+ }
29
+
30
+ getHash(content) {
31
+ let hash = _crypto.default.createHash('md5');
32
+
33
+ let data = hash.update(content, 'utf-8');
34
+ let gen_hash = data.digest('hex');
35
+ return gen_hash;
36
+ }
37
+
38
+ getFiles() {
39
+ let hashMapping = {};
40
+ this.fileMappings.forEach(fileInfo => {
41
+ let filePath = `${_path.default.join(this.tpFolder, fileInfo.filePath, fileInfo.fileName)}`;
42
+
43
+ if (_fs.default.existsSync(filePath)) {
44
+ let fileContent = _fs.default.readFileSync(filePath, {
45
+ encoding: 'utf-8'
46
+ });
47
+
48
+ let generatedHash = this.getHash(fileContent);
49
+ let outputFileSplit = fileInfo.fileName.split('.');
50
+ outputFileSplit.splice(outputFileSplit.length - 1, 0, generatedHash);
51
+ let outputFileName = outputFileSplit.join('.');
52
+ let outputFilePath = `${_path.default.join(this.tpFolder, fileInfo.filePath, outputFileName)}`;
53
+
54
+ _fs.default.writeFileSync(outputFilePath, fileContent);
55
+
56
+ hashMapping[fileInfo.key] = JSON.stringify(generatedHash);
57
+ } else {
58
+ throw new Error(`Third party file ${fileInfo.fileName} does not exist`);
59
+ }
60
+ });
61
+ return hashMapping;
62
+ }
63
+
64
+ }
65
+
66
+ var _default = TPHashMappingPlugin;
67
+ exports.default = _default;
@@ -1,46 +1,39 @@
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 _webpackSources = require("webpack-sources");
8
9
 
9
- var _webpackSources = require('webpack-sources');
10
-
11
- var _uglifycss = require('uglifycss');
12
-
13
- var _uglifycss2 = _interopRequireDefault(_uglifycss);
10
+ var _uglifycss = _interopRequireDefault(require("uglifycss"));
14
11
 
15
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
13
 
17
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
18
-
19
- var UglifyCSSPlugin = function () {
20
- function UglifyCSSPlugin() {
21
- _classCallCheck(this, UglifyCSSPlugin);
22
- }
14
+ class UglifyCSSPlugin {
15
+ apply(compiler) {
16
+ compiler.hooks.emit.tap('UglifyCSSPlugin', compilation => {
17
+ Object.keys(compilation.assets).forEach(filename => {
18
+ if (/\.css$/.test(filename)) {
19
+ try {
20
+ let asset = compilation.assets[filename].source();
23
21
 
24
- _createClass(UglifyCSSPlugin, [{
25
- key: 'apply',
26
- value: function apply(compiler) {
27
- compiler.hooks.emit.tap('UglifyCSSPlugin', function (compilation) {
28
- Object.keys(compilation.assets).forEach(function (filename) {
29
- if (/\.css$/.test(filename)) {
30
- try {
31
- var asset = compilation.assets[filename].source();
32
- var result = _uglifycss2.default.processString(asset);
33
- compilation.assets[filename] = new _webpackSources.RawSource(result);
34
- } catch (e) {
35
- compilation.errors.push(e);
22
+ if (typeof asset !== 'string') {
23
+ asset = asset.toString();
36
24
  }
25
+
26
+ const result = _uglifycss.default.processString(asset);
27
+
28
+ compilation.assets[filename] = new _webpackSources.RawSource(result);
29
+ } catch (e) {
30
+ compilation.errors.push(e);
37
31
  }
38
- });
32
+ }
39
33
  });
40
- }
41
- }]);
34
+ });
35
+ }
42
36
 
43
- return UglifyCSSPlugin;
44
- }();
37
+ }
45
38
 
46
39
  exports.default = UglifyCSSPlugin;
@@ -1,48 +1,35 @@
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 = '{}';
17
+
18
+ if (_fs.default.existsSync('./__testUtils__/conf/excludeDocs.json')) {
19
+ excludeDocsJSON = _fs.default.readFileSync('./__testUtils__/conf/excludeDocs.json').toString();
22
20
 
23
- var excludeDocsJSON = '{}';
24
- if (_fs2.default.existsSync('./__testUtils__/conf/excludeDocs.json')) {
25
- excludeDocsJSON = _fs2.default.readFileSync('./__testUtils__/conf/excludeDocs.json').toString();
26
21
  if (excludeDocsJSON.indexOf('\\') !== -1) {
27
22
  excludeDocsJSON = excludeDocsJSON.replace(/\\/g, '\\\\');
28
23
  }
29
24
  }
30
- var excludeDocsArray = JSON.parse(excludeDocsJSON);
31
- // if (Object.keys(excludeDocsArray).length > 0) {
32
- // }
33
-
34
- var getRegex = function getRegex(regexString) {
35
- return regexString.map(function (str) {
36
- return new RegExp(str);
37
- });
38
- };
39
25
 
40
- var UnusedFilesFindPlugin = function () {
41
- function UnusedFilesFindPlugin() {
42
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
26
+ let excludeDocsArray = JSON.parse(excludeDocsJSON); // if (Object.keys(excludeDocsArray).length > 0) {
27
+ // }
43
28
 
44
- _classCallCheck(this, UnusedFilesFindPlugin);
29
+ let getRegex = regexString => regexString.map(str => new RegExp(str));
45
30
 
31
+ class UnusedFilesFindPlugin {
32
+ constructor(options = {}) {
46
33
  this.usedFilesExcludes = getRegex(options.usedFilesExcludes);
47
34
  this.appFilesExcludes = getRegex(options.appFilesExcludes);
48
35
  this.origin = options.origin;
@@ -50,157 +37,155 @@ var UnusedFilesFindPlugin = function () {
50
37
  this.sstest = options.ssTest || false;
51
38
  this.outputFileName = options.outputFileName;
52
39
  this.docsFilename = options.docsFilename || 'Undocsfiles.json';
40
+
53
41
  if (!this.origin) {
54
42
  throw new Error('You must provide origin point of the app');
55
43
  }
56
44
  }
57
45
 
58
- _createClass(UnusedFilesFindPlugin, [{
59
- key: 'isIgnoredUsedFile',
60
- value: function isIgnoredUsedFile(file) {
61
- var result = void 0;
62
- for (var i = 0; i < this.usedFilesExcludes.length; i++) {
63
- var exclude = this.usedFilesExcludes[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: 'unDocumentedFiles',
73
- value: function unDocumentedFiles(outputPath) {
74
- var status = _fs2.default.existsSync(_path2.default.join(outputPath, this.outputFileName));
75
- var unDocsCompObj = {};
76
- if (status) {
77
- var data = _fs2.default.readFileSync(_path2.default.join(outputPath, this.outputFileName)).toString();
78
- var walkSync = function walkSync(dir) {
79
- var filelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
80
- var undocList = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
81
-
82
- var files = _fs2.default.readdirSync(dir);
83
- files.forEach(function (file) {
84
- if (_fs2.default.statSync(dir + '/' + file).isDirectory()) {
85
- filelist = walkSync(dir + '/' + file, filelist, undocList); //eslint-disable-line
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
+ }
86
80
  } else {
87
- if (file.includes('.docs')) {
88
- if (!(dir + '/' + file in JSON.parse(data))) {
89
- filelist.push(dir.replace(_path2.default.join(process.cwd(), 'src', 'components'), '') + '/' + file);
90
- }
91
- } else {
92
- if (file.includes('.js') && !file.includes('.spec') && !file.includes('.json')) {
93
- if (!files.includes('docs')) {
94
- if (!excludeDocsArray.docs.exclude.includes(dir.replace(_path2.default.join(process.cwd(), 'src', 'components'), '') + '/' + file)) {
95
- undocList.push(dir.replace(_path2.default.join(process.cwd(), 'src', 'components'), '') + '/' + file);
96
- }
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}`);
97
85
  }
98
86
  }
99
87
  }
100
88
  }
101
- });
102
- unDocsCompObj.withoutDocs = undocList;
103
- return filelist;
104
- };
105
- unDocsCompObj.noEnteredComp = walkSync(_path2.default.join(process.cwd(), 'src', 'components'), [], []);
106
-
107
- (0, _utils.writeFile)(_path2.default.join(outputPath, this.docsFilename), JSON.stringify(unDocsCompObj));
108
- Object.keys(unDocsCompObj).forEach(function (key) {
109
- if (unDocsCompObj[key].length > 0) {
110
- if (key === 'withoutDocs') {
111
- (0, _utils.log)('\x1b[36m%s\x1b[0m', '\nPlease write docs file for below componenst :- \n');
112
- unDocsCompObj[key].forEach(function (value) {
113
- if (!excludeDocsArray.docs.exclude.includes(value)) {
114
- (0, _utils.log)('\x1b[33m%s\x1b[0m', '' + value);
115
- }
116
- });
117
- }
118
89
  }
119
90
  });
120
- }
121
- }
122
- }, {
123
- key: 'isIgnoredAllFile',
124
- value: function isIgnoredAllFile(file) {
125
- var result = void 0;
126
- for (var i = 0; i < this.appFilesExcludes.length; i++) {
127
- var exclude = this.appFilesExcludes[i];
128
- result = exclude.test(file);
129
- if (result) {
130
- break;
131
- }
132
- }
133
- return result;
134
- }
135
- }, {
136
- key: 'getAllFiles',
137
- value: function getAllFiles(rootPath) {
138
- var _this = this;
139
-
140
- var allFiles = [];
141
- var files = _fs2.default.readdirSync(rootPath).map(function (file) {
142
- return _path2.default.join(rootPath, file);
143
- });
144
- files.forEach(function (file) {
145
- if (_fs2.default.statSync(file).isDirectory()) {
146
- allFiles = allFiles.concat(_this.getAllFiles(file));
147
- } else {
148
- if (!_this.isIgnoredAllFile(file)) {
149
- allFiles.push(file);
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
+ });
150
106
  }
151
107
  }
152
108
  });
153
- return allFiles;
154
109
  }
155
- }, {
156
- key: 'apply',
157
- value: function apply(compiler) {
158
- var _this2 = this;
110
+ }
159
111
 
160
- compiler.hooks.afterEmit.tap('UnusedFilesShowPlugin', function (compilation) {
161
- var outputPath = compilation.compiler.options.output.path;
112
+ isIgnoredAllFile(file) {
113
+ let result;
162
114
 
163
- var usedFiles = Array.from(compilation.fileDependencies).reduce(function (files, usedFile) {
164
- if (!_this2.isIgnoredUsedFile(usedFile)) {
165
- files[usedFile] = true;
166
- }
167
- return files;
168
- }, {});
115
+ for (let i = 0; i < this.appFilesExcludes.length; i++) {
116
+ let exclude = this.appFilesExcludes[i];
117
+ result = exclude.test(file);
169
118
 
170
- var allFiles = _this2.getAllFiles(_this2.origin);
119
+ if (result) {
120
+ break;
121
+ }
122
+ }
171
123
 
172
- var unusedFiles = [];
173
- allFiles.forEach(function (file) {
174
- if (!usedFiles[file]) {
175
- unusedFiles.push(file);
176
- }
177
- });
124
+ return result;
125
+ }
178
126
 
179
- if (!unusedFiles.length) {
180
- (0, _utils.log)('There is no unused files');
181
- } else {
182
- if (_this2.outputFileName) {
183
- (0, _utils.log)('You can see unused files info from ' + _path2.default.join(outputPath, _this2.outputFileName) + ' path');
184
- (0, _utils.makeDir)(outputPath);
185
- (0, _utils.writeFile)(_path2.default.join(outputPath, _this2.outputFileName), JSON.stringify(unusedFiles)).then(function () {
186
- if (_this2.sstest) {
187
- _this2.unDocumentedFiles(outputPath);
188
- }
189
- });
190
- }
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);
138
+ }
139
+ }
140
+ });
141
+ return allFiles;
142
+ }
143
+
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;
191
152
  }
192
153
 
193
- if (_this2.delete) {
194
- unusedFiles.forEach(function (file) {
195
- _fs2.default.unlinkSync(file);
196
- (0, _utils.log)('Deleted - ' + file);
197
- });
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);
198
161
  }
199
162
  });
200
- }
201
- }]);
202
163
 
203
- return UnusedFilesFindPlugin;
204
- }();
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
+ }
205
189
 
206
- exports.default = UnusedFilesFindPlugin;
190
+ var _default = UnusedFilesFindPlugin;
191
+ exports.default = _default;