@zohodesk/react-cli 0.0.1-beta.99 → 0.0.1-betaa.138.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (202) hide show
  1. package/.eslintignore +7 -7
  2. package/.eslintrc.js +183 -183
  3. package/CHANGELOG.md +5 -0
  4. package/README.md +636 -491
  5. package/bin/cli.js +372 -367
  6. package/files/eslintrc.js +57 -0
  7. package/files/prettierrc.js +3 -0
  8. package/lib/babel/cmjs-plugins-presets.js +16 -9
  9. package/lib/babel/es-plugins-presets.js +26 -14
  10. package/lib/common/getEntries.js +31 -22
  11. package/lib/common/getPublicPathConfig.js +27 -13
  12. package/lib/common/index.js +21 -25
  13. package/lib/common/splitChunks.js +62 -53
  14. package/lib/common/templateParameters.js +10 -8
  15. package/lib/configs/jest.config.js +15 -25
  16. package/lib/configs/webpack.component.umd.config.js +31 -37
  17. package/lib/configs/webpack.css.umd.config.js +44 -47
  18. package/lib/configs/webpack.dev.config.js +70 -52
  19. package/lib/configs/webpack.docs.config.js +106 -106
  20. package/lib/configs/webpack.prod.config.js +95 -75
  21. package/lib/hooks/docsProptypeHook.js +32 -38
  22. package/lib/jest/commitedFilesResult.js +103 -74
  23. package/lib/jest/coverageCollector.js +41 -21
  24. package/lib/jest/jsonMaker.js +15 -16
  25. package/lib/jest/preProcessors/cssPreprocessor.js +16 -18
  26. package/lib/jest/preProcessors/jsPreprocessor.js +3 -5
  27. package/lib/jest/preProcessors/otherFilesPreprocessor.js +5 -6
  28. package/lib/jest/result.js +90 -45
  29. package/lib/jest/run.js +43 -43
  30. package/lib/jest/setup.js +102 -95
  31. package/lib/loaderUtils/getCSSLoaders.js +21 -22
  32. package/lib/loaderUtils/getDevJsLoaders.js +25 -23
  33. package/lib/loaderUtils/index.js +11 -13
  34. package/lib/loaders/docsLoader.js +15 -15
  35. package/lib/loaders/docsPropsLoader.js +14 -17
  36. package/lib/loaders/fileLoader.js +33 -35
  37. package/lib/loaders/scriptInstrumentLoader.js +21 -20
  38. package/lib/loaders/workerLoader.js +136 -0
  39. package/lib/middlewares/HMRMiddleware.js +54 -45
  40. package/lib/middlewares/SSTMiddleware.js +8 -5
  41. package/lib/pluginUtils/getDevPlugins.js +114 -52
  42. package/lib/pluginUtils/getDocsPlugins.js +25 -29
  43. package/lib/pluginUtils/getLibraryPlugins.js +8 -10
  44. package/lib/pluginUtils/getProdPlugins.js +163 -74
  45. package/lib/pluginUtils/getServerPlugins.js +8 -11
  46. package/lib/pluginUtils/getUMDCSSPlugins.js +11 -15
  47. package/lib/pluginUtils/getUMDComponentPlugins.js +11 -15
  48. package/lib/pluginUtils/index.js +36 -43
  49. package/lib/plugins/CdnChangePlugin.js +63 -0
  50. package/lib/plugins/CleanupStatsPlugin.js +18 -32
  51. package/lib/plugins/CustomAttributePlugin.js +79 -0
  52. package/lib/plugins/CustomAttributePlugin.md +35 -0
  53. package/lib/plugins/EFCPlugin.js +185 -0
  54. package/lib/plugins/I18NInjectIntoIndexPlugin.js +118 -52
  55. package/lib/plugins/I18nSplitPlugin/I18nDebugPlugin.js +60 -0
  56. package/lib/plugins/I18nSplitPlugin/I18nDependency.js +44 -0
  57. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +266 -0
  58. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +183 -0
  59. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +100 -0
  60. package/lib/plugins/I18nSplitPlugin/I18nSplit.md +86 -0
  61. package/lib/plugins/I18nSplitPlugin/README.md +25 -0
  62. package/lib/plugins/I18nSplitPlugin/index.js +185 -0
  63. package/lib/plugins/I18nSplitPlugin/utils/collectI18nKeys.js +64 -0
  64. package/lib/plugins/I18nSplitPlugin/utils/getI18nFileUrlPathTemplate.js +13 -0
  65. package/lib/plugins/I18nSplitPlugin/utils/getI18nKeysFormModules.js +26 -0
  66. package/lib/plugins/I18nSplitPlugin/utils/hashUtils.js +40 -0
  67. package/lib/plugins/I18nSplitPlugin/utils/index.js +31 -0
  68. package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +112 -0
  69. package/lib/plugins/ManifestPlugin.js +52 -63
  70. package/lib/plugins/ModuleStatsPlugin.js +83 -173
  71. package/lib/plugins/OptimizeJSPlugin.js +24 -41
  72. package/lib/plugins/PublicPathCallbackPlugin.js +42 -116
  73. package/lib/plugins/PublicPathChangePlugin.js +175 -284
  74. package/lib/plugins/ReportGeneratePlugin.js +150 -151
  75. package/lib/plugins/ResourceHintsPlugin.js +53 -35
  76. package/lib/plugins/ScriptInstrumentPlugin.js +22 -37
  77. package/lib/plugins/ServiceWorkerPlugin.js +81 -57
  78. package/lib/plugins/ShadowDOMSupportPlugin.js +153 -234
  79. package/lib/plugins/SourceMapHookPlugin.js +21 -33
  80. package/lib/plugins/TPHashMappingPlugin.js +67 -0
  81. package/lib/plugins/UglifyCSSPlugin.js +23 -30
  82. package/lib/plugins/UnusedFilesFindPlugin.js +137 -152
  83. package/lib/plugins/index.js +100 -91
  84. package/lib/plugins/webpackwatchrunplugin.js +18 -30
  85. package/lib/postcss-plugins/ExcludeRTLPlugin.js +14 -17
  86. package/lib/schemas/index.js +336 -81
  87. package/lib/servers/clusterHubServer.js +22 -26
  88. package/lib/servers/docsServer.js +3 -5
  89. package/lib/servers/docsServerCore.js +84 -91
  90. package/lib/servers/helpServer.js +19 -21
  91. package/lib/servers/impactServer.js +99 -92
  92. package/lib/servers/mockserver.js +24 -24
  93. package/lib/servers/scrServer.js +78 -98
  94. package/lib/servers/server.js +101 -122
  95. package/lib/servers/ssServer.js +63 -61
  96. package/lib/sh/pre-commit.sh +34 -34
  97. package/lib/sh/reportPublish.sh +45 -46
  98. package/lib/templates/CoverageScriptTemplate.js +45 -18
  99. package/lib/templates/WMSTemplate.js +17 -18
  100. package/lib/templates/linterConstant.js +6 -4
  101. package/lib/utils/babelPresets.js +12 -5
  102. package/lib/utils/buildstats.html +148 -148
  103. package/lib/utils/clean.js +12 -11
  104. package/lib/utils/copy.js +12 -34
  105. package/lib/utils/copyTimezones.js +9 -16
  106. package/lib/utils/createEventStream.js +24 -19
  107. package/lib/utils/cssClassNameGenerate.js +44 -73
  108. package/lib/utils/cssURLReplacer.js +60 -54
  109. package/lib/utils/dependencyPostPublish.js +20 -19
  110. package/lib/utils/fileUtils.js +66 -54
  111. package/lib/utils/folderIterator.js +20 -21
  112. package/lib/utils/getComponents.js +70 -27
  113. package/lib/utils/getCurrentBranch.js +11 -17
  114. package/lib/utils/getDependenciesImpactList.js +114 -187
  115. package/lib/utils/getHash.js +9 -13
  116. package/lib/utils/getIp.js +9 -9
  117. package/lib/utils/getOptions.js +26 -29
  118. package/lib/utils/getServerURL.js +19 -10
  119. package/lib/utils/index.js +147 -126
  120. package/lib/utils/init.js +2 -2
  121. package/lib/utils/initPreCommitHook.js +40 -32
  122. package/lib/utils/jsonHelper.js +37 -21
  123. package/lib/utils/lint/addScripts.js +27 -0
  124. package/lib/utils/lint/checkExistingConfig.js +67 -0
  125. package/lib/utils/lint/copyConfigs.js +24 -0
  126. package/lib/utils/lint/index.js +54 -0
  127. package/lib/utils/lint/lintScripts.js +11 -0
  128. package/lib/utils/lint/lintSetup.js +31 -0
  129. package/lib/utils/lint/lintStagedPreCommitHook.js +7 -0
  130. package/lib/utils/lint/question.js +30 -0
  131. package/lib/utils/lintReporter.js +70 -56
  132. package/lib/utils/mailSender.js +12 -27
  133. package/lib/utils/pullOrigin.js +21 -18
  134. package/lib/utils/reinstallDependencies.js +76 -85
  135. package/lib/utils/removeAttributes.js +25 -23
  136. package/lib/utils/repoClone.js +47 -45
  137. package/lib/utils/request.js +64 -77
  138. package/lib/utils/resultSchema.json +73 -73
  139. package/lib/utils/rtl.js +22 -29
  140. package/lib/utils/setEnvVariables.js +5 -6
  141. package/lib/utils/ssTestHack.js +21 -19
  142. package/lib/utils/switchBranch.js +21 -20
  143. package/lib/utils/urlConcat.js +22 -0
  144. package/package.json +141 -136
  145. package/templates/app/.eslintrc.js +140 -140
  146. package/templates/app/README.md +12 -12
  147. package/templates/app/app/index.html +24 -24
  148. package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
  149. package/templates/app/app/properties/i18nkeys.json +3 -3
  150. package/templates/app/docs/all.html +69 -69
  151. package/templates/app/mockapi/index.js +18 -18
  152. package/templates/app/package.json +37 -37
  153. package/templates/app/src/actions/SampleActions/index.js +37 -37
  154. package/templates/app/src/actions/index.js +65 -65
  155. package/templates/app/src/appUrls.js +19 -19
  156. package/templates/app/src/components/Alert/Alert.js +134 -134
  157. package/templates/app/src/components/Alert/Alert.module.css +79 -79
  158. package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -37
  159. package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -84
  160. package/templates/app/src/components/Sample/Sample.module.css +11 -11
  161. package/templates/app/src/components/Sample/SampleList.js +61 -61
  162. package/templates/app/src/components/Slider/Slider.css +41 -41
  163. package/templates/app/src/components/Slider/Slider.js +55 -55
  164. package/templates/app/src/containers/AlertContainer/index.js +15 -15
  165. package/templates/app/src/containers/AppContainer/index.js +96 -96
  166. package/templates/app/src/containers/AppContainer/index.module.css +27 -27
  167. package/templates/app/src/containers/CustomMatch/index.js +65 -65
  168. package/templates/app/src/containers/DevTools/index.js +10 -10
  169. package/templates/app/src/containers/Header/index.js +67 -67
  170. package/templates/app/src/containers/Header/index.module.css +43 -43
  171. package/templates/app/src/containers/Redirect/index.js +63 -63
  172. package/templates/app/src/containers/Redirector/index.js +47 -47
  173. package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -42
  174. package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -3
  175. package/templates/app/src/historyChange.js +5 -5
  176. package/templates/app/src/index.html +10 -10
  177. package/templates/app/src/index.js +24 -24
  178. package/templates/app/src/middleware/PromiseMiddleware.js +59 -59
  179. package/templates/app/src/reducers/alertData.js +11 -11
  180. package/templates/app/src/reducers/index.js +6 -6
  181. package/templates/app/src/reducers/samples.js +19 -19
  182. package/templates/app/src/store/configureStore.dev.js +51 -51
  183. package/templates/app/src/store/configureStore.js +5 -5
  184. package/templates/app/src/store/configureStore.prod.js +26 -26
  185. package/templates/app/src/util/Common.js +5 -5
  186. package/templates/app/src/util/RequestAPI.js +132 -132
  187. package/templates/docs/all.html +249 -249
  188. package/templates/docs/component.html +178 -178
  189. package/templates/docs/components.html +221 -221
  190. package/templates/docs/css/b.min.css +6 -6
  191. package/templates/docs/css/component.css +42 -42
  192. package/templates/docs/css/componentTest.css +6 -6
  193. package/templates/docs/css/hopscotch.css +585 -585
  194. package/templates/docs/css/style.css +1022 -1022
  195. package/templates/docs/index.html +1493 -1493
  196. package/templates/docs/js/active-line.js +72 -72
  197. package/templates/docs/js/b.min.js +7 -7
  198. package/templates/docs/js/codemirror.js +9680 -9680
  199. package/templates/docs/js/designTokens.js +334 -334
  200. package/templates/docs/js/j.min.js +4 -4
  201. package/templates/docs/js/javascript.js +874 -874
  202. package/templates/docs/js/matchbrackets.js +145 -145
@@ -1,21 +1,21 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
- var _path = require('path');
3
+ var _path = _interopRequireDefault(require("path"));
4
4
 
5
- var _path2 = _interopRequireDefault(_path);
6
-
7
- var _utils = require('../utils');
5
+ var _utils = require("../utils");
8
6
 
9
7
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
8
 
11
9
  function jsFileFilter(listOfObject) {
12
- var fileNameList = [];
13
- var curListName = process.cwd().split(_path2.default.sep);
14
- var currentDirName = curListName[curListName.length - 1];
15
- listOfObject.forEach(function (fileObj) {
16
- var fileName = fileObj.FILEPATH;
10
+ let fileNameList = [];
11
+ let curListName = process.cwd().split(_path.default.sep);
12
+ let currentDirName = curListName[curListName.length - 1];
13
+ listOfObject.forEach(fileObj => {
14
+ let fileName = fileObj.FILEPATH;
15
+
17
16
  if (fileName.includes(currentDirName)) {
18
17
  fileName = fileName.split(currentDirName + '/')[1]; //eslint-disable-line
18
+
19
19
  if (fileName.includes('.js') && !fileName.includes('.json') && !fileName.includes('.docs.js') && !fileName.includes('.spec.js')) {
20
20
  fileNameList.push(fileName);
21
21
  }
@@ -25,28 +25,32 @@ function jsFileFilter(listOfObject) {
25
25
  }
26
26
 
27
27
  function coverage(devBranch, compareWith, serviceName, domain) {
28
- return new Promise(function (resolve) {
28
+ return new Promise(resolve => {
29
29
  (0, _utils.request)({
30
- url: domain + '/impact/ImpactModuleAction.do?action=getCommitDiffFileDetail&serviceName=' + serviceName + '&masterBranchCommitHash=' + compareWith + '&buildCommitHash=' + devBranch
31
- }).then(function (_ref) {
32
- var body = _ref.body;
30
+ url: `${domain}/impact/ImpactModuleAction.do?action=getCommitDiffFileDetail&serviceName=${serviceName}&masterBranchCommitHash=${compareWith}&buildCommitHash=${devBranch}`
31
+ }).then(({
32
+ body
33
+ }) => {
34
+ let res = JSON.parse(body);
33
35
 
34
- var res = JSON.parse(body);
35
36
  if (Object.keys(res).length > 0) {
36
37
  if (Object.prototype.hasOwnProperty.call(res, 'STATUS')) {
37
38
  if (res.STATUS) {
38
- var listOfFiles = [];
39
+ let listOfFiles = [];
40
+
39
41
  if (Object.keys(res.DIFF_FILES).length > 0) {
40
42
  if (Object.prototype.hasOwnProperty.call(res.DIFF_FILES, 'ADDED')) {
41
43
  if (res.DIFF_FILES.ADDED.length > 0) {
42
44
  listOfFiles = listOfFiles.concat(jsFileFilter(res.DIFF_FILES.ADDED));
43
45
  }
44
46
  }
47
+
45
48
  if (Object.prototype.hasOwnProperty.call(res.DIFF_FILES, 'UPDATED')) {
46
49
  if (res.DIFF_FILES.UPDATED.length > 0) {
47
50
  listOfFiles = listOfFiles.concat(jsFileFilter(res.DIFF_FILES.UPDATED));
48
51
  }
49
52
  }
53
+
50
54
  if (listOfFiles.length > 0) {
51
55
  resolve({
52
56
  STATUS: true,
@@ -68,17 +72,33 @@ function coverage(devBranch, compareWith, serviceName, domain) {
68
72
  });
69
73
  }
70
74
  } else {
71
- resolve({ STATUS: false, LIST: [], REASON: 'Internal Error' });
75
+ resolve({
76
+ STATUS: false,
77
+ LIST: [],
78
+ REASON: 'Internal Error'
79
+ });
72
80
  }
73
81
  } else {
74
- resolve({ STATUS: false, LIST: [], REASON: 'Internal Error' });
82
+ resolve({
83
+ STATUS: false,
84
+ LIST: [],
85
+ REASON: 'Internal Error'
86
+ });
75
87
  }
76
88
  } else {
77
- resolve({ STATUS: false, LIST: [], REASON: 'Internal Error' });
89
+ resolve({
90
+ STATUS: false,
91
+ LIST: [],
92
+ REASON: 'Internal Error'
93
+ });
78
94
  }
79
- }).catch(function (err) {
95
+ }).catch(err => {
80
96
  (0, _utils.log)(err);
81
- resolve({ STATUS: false, LIST: [], REASON: 'Service Down' });
97
+ resolve({
98
+ STATUS: false,
99
+ LIST: [],
100
+ REASON: 'Service Down'
101
+ });
82
102
  });
83
103
  });
84
104
  }
@@ -1,18 +1,15 @@
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 _jsonHelper = require('../utils/jsonHelper');
8
+ var _jsonHelper = require("../utils/jsonHelper");
8
9
 
9
- exports.default = function (resultObj, coverage) {
10
- var status = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
11
- var type = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'unitcase';
12
- var filecoverage = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
13
-
14
- var pathArray = [];
15
- var resultJson = {};
10
+ var _default = (resultObj, coverage, status = true, type = 'unitcase', filecoverage = 0) => {
11
+ let pathArray = [];
12
+ let resultJson = {};
16
13
  resultJson.isExecuted = status;
17
14
  resultJson.numberOfSuccess = resultObj.numPassedTests;
18
15
  resultJson.numberOfFails = resultObj.numFailedTests;
@@ -24,20 +21,20 @@ exports.default = function (resultObj, coverage) {
24
21
  codeCoveragePercentage: coverage,
25
22
  fileCoveragePercentage: filecoverage
26
23
  };
27
-
28
- var fileDetailList = [];
29
- resultObj.testResults.map(function (testFile) {
30
- var fileObj = {};
24
+ let fileDetailList = [];
25
+ resultObj.testResults.map(testFile => {
26
+ let fileObj = {};
31
27
  fileObj.fileName = testFile.testFilePath;
32
28
  fileObj.CaseList = {};
33
29
  fileObj.CaseList.passedCaseList = [];
34
30
  fileObj.CaseList.failedCaseList = [];
35
- testFile.testResults.map(function (testCase) {
31
+ testFile.testResults.map(testCase => {
36
32
  if (testCase.status === 'failed') {
37
33
  fileObj.CaseList.failedCaseList.push(testCase.title);
38
34
  } else if (testCase.status === 'passed') {
39
35
  fileObj.CaseList.passedCaseList.push(testCase.title);
40
36
  }
37
+
41
38
  return testCase;
42
39
  });
43
40
  fileDetailList.push(fileObj);
@@ -51,5 +48,7 @@ exports.default = function (resultObj, coverage) {
51
48
  }
52
49
 
53
50
  resultJson.fileDetails = fileDetailList;
54
- (0, _jsonHelper.jsonHelper)(process.cwd() + '/result.json', pathArray, resultJson);
55
- };
51
+ (0, _jsonHelper.jsonHelper)(`${process.cwd()}/result.json`, pathArray, resultJson);
52
+ };
53
+
54
+ exports.default = _default;
@@ -1,31 +1,29 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
- var _postcss = require('postcss');
3
+ var _postcss = _interopRequireDefault(require("postcss"));
4
4
 
5
- var _postcss2 = _interopRequireDefault(_postcss);
5
+ var _postcssHashClassname = _interopRequireDefault(require("postcss-hash-classname"));
6
6
 
7
- var _postcssHashClassname = require('postcss-hash-classname');
8
-
9
- var _postcssHashClassname2 = _interopRequireDefault(_postcssHashClassname);
10
-
11
- var _fs = require('fs');
12
-
13
- var _fs2 = _interopRequireDefault(_fs);
7
+ var _fs = _interopRequireDefault(require("fs"));
14
8
 
15
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
10
 
17
- var count = 0;
18
-
11
+ let count = 0;
19
12
  module.exports = {
20
- process: function process(src) {
13
+ process: function (src) {
21
14
  count++;
22
- var opts = { hashType: 'md5', digestType: 'base32' };
15
+ let opts = {
16
+ hashType: 'md5',
17
+ digestType: 'base32'
18
+ };
23
19
  opts.maxLength = 6;
24
20
  opts.type = '.json';
25
- opts.outputName = 'jsonFile_test_' + count;
26
- var processor = (0, _postcss2.default)([(0, _postcssHashClassname2.default)(opts)]);
21
+ opts.outputName = `jsonFile_test_${count}`;
22
+ let processor = (0, _postcss.default)([(0, _postcssHashClassname.default)(opts)]);
27
23
  processor.process(src).css;
28
- var jsonMap = _fs2.default.readFileSync('jsonFile_test_' + count + '.json', 'UTF-8');
29
- return 'module.exports =' + jsonMap;
24
+
25
+ let jsonMap = _fs.default.readFileSync(`jsonFile_test_${count}.json`, 'UTF-8');
26
+
27
+ return `module.exports =${jsonMap}`;
30
28
  }
31
29
  };
@@ -1,12 +1,10 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
- var _babelJest = require('babel-jest');
4
-
5
- var _babelJest2 = _interopRequireDefault(_babelJest);
3
+ var _babelJest = _interopRequireDefault(require("babel-jest"));
6
4
 
7
5
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
6
 
9
- module.exports = _babelJest2.default.createTransformer({
7
+ module.exports = _babelJest.default.createTransformer({
10
8
  presets: [require.resolve('@babel/preset-env'), require.resolve('@babel/preset-react')],
11
9
  plugins: [require.resolve('babel-plugin-transform-dynamic-import')]
12
10
  });
@@ -1,13 +1,12 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
- var _path = require('path');
4
-
5
- var _path2 = _interopRequireDefault(_path);
3
+ var _path = _interopRequireDefault(require("path"));
6
4
 
7
5
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
6
 
9
7
  module.exports = {
10
- process: function process(src, filename) {
11
- return 'module.exports = ' + JSON.stringify(_path2.default.basename(filename)) + ';';
8
+ process(src, filename) {
9
+ return `module.exports = ${JSON.stringify(_path.default.basename(filename))};`;
12
10
  }
11
+
13
12
  };
@@ -1,46 +1,46 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
- var _fs = require('fs');
3
+ var _fs = _interopRequireDefault(require("fs"));
4
4
 
5
- var _fs2 = _interopRequireDefault(_fs);
5
+ var _utils = require("../utils");
6
6
 
7
- var _utils = require('../utils');
8
-
9
- var _jsonMaker = require('./jsonMaker');
10
-
11
- var _jsonMaker2 = _interopRequireDefault(_jsonMaker);
7
+ var _jsonMaker = _interopRequireDefault(require("./jsonMaker"));
12
8
 
13
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
10
 
15
- var unitTestReport = [];
16
- var result = function result(inp) {
11
+ let unitTestReport = [];
12
+
13
+ const result = inp => {
17
14
  inp.endTime = Date.now();
18
- var testPathPattern = process.argv[process.argv.length - 1];
15
+ let testPathPattern = process.argv[process.argv.length - 1];
16
+
19
17
  if (testPathPattern.indexOf('--') !== -1) {
20
18
  testPathPattern = '';
21
19
  } else {
22
- testPathPattern = _fs2.default.realpathSync(process.cwd());
20
+ testPathPattern = _fs.default.realpathSync(process.cwd());
23
21
  }
24
- var testPathRegex = new RegExp(testPathPattern);
25
- var testResults = inp.testResults;
26
22
 
27
- var testFilesArr = [];
28
- testResults.forEach(function (testResult) {
29
- var filePath = testResult.testFilePath;
23
+ let testPathRegex = new RegExp(testPathPattern);
24
+ let {
25
+ testResults
26
+ } = inp;
27
+ let testFilesArr = [];
28
+ testResults.forEach(testResult => {
29
+ let filePath = testResult.testFilePath;
30
+
30
31
  if (!testPathRegex.test(filePath)) {
31
32
  return;
32
33
  }
34
+
33
35
  filePath = filePath.replace('.spec', '');
34
36
  filePath = filePath.replace('/__tests__', '');
35
37
  filePath = filePath.replace('/__test__', '');
36
- var fileJson = {};
38
+ let fileJson = {};
37
39
  fileJson.testPath = testResult.testFilePath;
38
40
  fileJson.sourcePath = filePath;
39
41
  fileJson.data = testResult;
40
42
  testFilesArr.push(fileJson);
41
- testResult.testResults && testResult.testResults.filter(function (t) {
42
- return t.status === 'failed';
43
- }).forEach(function (t) {
43
+ testResult.testResults && testResult.testResults.filter(t => t.status === 'failed').forEach(t => {
44
44
  unitTestReport.push({
45
45
  title: t.title,
46
46
  fullName: t.fullName,
@@ -49,52 +49,97 @@ var result = function result(inp) {
49
49
  });
50
50
  });
51
51
 
52
- var coverageSummary = _fs2.default.readFileSync('./coverage/coverage-summary.json').toString();
52
+ let coverageSummary = _fs.default.readFileSync('./coverage/coverage-summary.json').toString();
53
+
53
54
  if (coverageSummary.indexOf('\\') !== -1) {
54
55
  coverageSummary = coverageSummary.replace(/\\/g, '\\\\');
55
56
  }
56
- var coverageJson = JSON.parse(coverageSummary);
57
- var linesPercent = 0;
58
- var functionPercent = 0;
59
- var statementPerment = 0;
60
- var branchesPercent = 0;
61
- var i = 0;
57
+
58
+ let coverageJson = JSON.parse(coverageSummary);
59
+ let linesPercent = 0;
60
+ let functionPercent = 0;
61
+ let statementPerment = 0;
62
+ let branchesPercent = 0;
63
+ let i = 0;
64
+
62
65
  for (i; i < testFilesArr.length; i++) {
63
- var curSourceFile = testFilesArr[i].sourcePath;
64
- var coverageData = coverageJson[curSourceFile];
66
+ let curSourceFile = testFilesArr[i].sourcePath;
67
+ let coverageData = coverageJson[curSourceFile];
68
+
65
69
  if (!coverageData) {
66
- (0, _utils.log)('Can\'t able to find source for ' + testFilesArr[i].testPath + '\n Or The spec file getting failed during test. Please check the file name and the path is correct for test file or Make them pass.');
70
+ (0, _utils.log)(`Can't able to find source for ${testFilesArr[i].testPath}\n Or The spec file getting failed during test. Please check the file name and the path is correct for test file or Make them pass.`);
67
71
  continue;
68
72
  }
73
+
69
74
  linesPercent += coverageData.lines.pct;
70
75
  functionPercent += coverageData.functions.pct;
71
76
  statementPerment += coverageData.statements.pct;
72
77
  branchesPercent += coverageData.branches.pct;
73
78
  }
74
- var totalLinesPercent = linesPercent / (i * 100) * 100;
75
- var totalFunctionPercent = functionPercent / (i * 100) * 100;
76
- var totalStatementPercent = statementPerment / (i * 100) * 100;
77
- var totalBranchesPercent = branchesPercent / (i * 100) * 100;
78
- var totalPercentage = totalLinesPercent + totalFunctionPercent + totalStatementPercent + totalBranchesPercent;
79
- var coverage = (totalPercentage / 4).toFixed(2);
79
+
80
+ let totalLinesPercent = linesPercent / (i * 100) * 100;
81
+ let totalFunctionPercent = functionPercent / (i * 100) * 100;
82
+ let totalStatementPercent = statementPerment / (i * 100) * 100;
83
+ let totalBranchesPercent = branchesPercent / (i * 100) * 100;
84
+ let totalPercentage = totalLinesPercent + totalFunctionPercent + totalStatementPercent + totalBranchesPercent;
85
+ let coverage = (totalPercentage / 4).toFixed(2);
80
86
  coverage = Number(coverage);
81
- (0, _jsonMaker2.default)(inp, coverage, 'Yes', 'unitcase');
87
+ (0, _jsonMaker.default)(inp, coverage, 'Yes', 'unitcase');
82
88
 
83
89
  if (Number.isNaN(coverage)) {
84
90
  (0, _utils.log)('This build does\'t have any JS changes!');
85
91
  coverage = 0;
86
92
  } else {
87
- (0, _utils.log)('COVERAGE ' + coverage + '%');
93
+ (0, _utils.log)(`COVERAGE ${coverage}%`);
88
94
  }
89
95
 
90
- var html = '<html>\n\t<head>\n\t<style>\n\t.red{\n\t\tfont-weight:bold;\n\t\tcolor:red;\n\t}\n\t.green{\n\t\tfont-weight:bold;\n\t\tcolor:green;\n\t}\n\ttable\n\t\t{\n font-family: arial, sans-serif;\n border-collapse: collapse;\n\t\t}\n\n\t\ttd, th\n\t\t{\n border: 1px solid #dddddd;\n padding: 8px;\n\t\t}\n\t</style>\n\t</head>\n\t\t<body>\n\t\t\t<table>\n\t\t\t<tr>\n\t\t\t\t<th>Title</th>\n\t\t\t\t<th>FullName</th>\n\t\t\t\t<th>Test Case Path</th>\n\t\t\t</tr>\n\t\t\t' + unitTestReport.map(function (t) {
91
- return '<tr>\n\t\t\t\t\t<td>' + t.title + '</td>\n\t\t\t\t\t<td>' + t.fullName + '</td>\n\t\t\t\t\t<td>' + t.filePath + '</td>\n\t\t\t\t</tr>';
92
- }) + '\n\t\t\t</table>\n\t\t\t<br/>COVERAGE <span class="' + (coverage < 60 ? 'red' : 'green') + '">' + coverage + '%</span> <br/> less than 60% consider failure\n\t\t</body>\n\t</html>\n\t\t';
96
+ let html = `<html>
97
+ <head>
98
+ <style>
99
+ .red{
100
+ font-weight:bold;
101
+ color:red;
102
+ }
103
+ .green{
104
+ font-weight:bold;
105
+ color:green;
106
+ }
107
+ table
108
+ {
109
+ font-family: arial, sans-serif;
110
+ border-collapse: collapse;
111
+ }
112
+
113
+ td, th
114
+ {
115
+ border: 1px solid #dddddd;
116
+ padding: 8px;
117
+ }
118
+ </style>
119
+ </head>
120
+ <body>
121
+ <table>
122
+ <tr>
123
+ <th>Title</th>
124
+ <th>FullName</th>
125
+ <th>Test Case Path</th>
126
+ </tr>
127
+ ${unitTestReport.map(t => `<tr>
128
+ <td>${t.title}</td>
129
+ <td>${t.fullName}</td>
130
+ <td>${t.filePath}</td>
131
+ </tr>`)}
132
+ </table>
133
+ <br/>COVERAGE <span class="${coverage < 60 ? 'red' : 'green'}">${coverage}%</span> <br/> less than 60% consider failure
134
+ </body>
135
+ </html>
136
+ `;
93
137
 
94
- if (!_fs2.default.existsSync('./unittest')) {
95
- _fs2.default.mkdirSync('./unittest');
138
+ if (!_fs.default.existsSync('./unittest')) {
139
+ _fs.default.mkdirSync('./unittest');
96
140
  }
97
- _fs2.default.writeFileSync('./unittest/index.html', html, 'utf8');
141
+
142
+ _fs.default.writeFileSync('./unittest/index.html', html, 'utf8');
98
143
 
99
144
  return inp;
100
145
  };
package/lib/jest/run.js CHANGED
@@ -1,51 +1,49 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
- var _jest = require('jest');
3
+ var _jest = _interopRequireDefault(require("jest"));
4
4
 
5
- var _jest2 = _interopRequireDefault(_jest);
5
+ var _fs = _interopRequireDefault(require("fs"));
6
6
 
7
- var _fs = require('fs');
7
+ var _utils = require("../utils");
8
8
 
9
- var _fs2 = _interopRequireDefault(_fs);
9
+ var _jsonHelper = require("../utils/jsonHelper");
10
10
 
11
- var _utils = require('../utils');
12
-
13
- var _jsonHelper = require('../utils/jsonHelper');
14
-
15
- var _coverageCollector = require('./coverageCollector');
16
-
17
- var _coverageCollector2 = _interopRequireDefault(_coverageCollector);
11
+ var _coverageCollector = _interopRequireDefault(require("./coverageCollector"));
18
12
 
19
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
14
 
21
- var options = (0, _utils.getOptions)();
22
- var folder = options.app.folder,
23
- _options$test = options.test,
24
- branchName = _options$test.branchName,
25
- srcBranch = _options$test.srcBranch,
26
- targetBranch = _options$test.targetBranch,
27
- serviceName = _options$test.serviceName,
28
- impactServerDomain = _options$test.impactServerDomain,
29
- isCommitCoverage = _options$test.isCommitCoverage;
30
-
15
+ let options = (0, _utils.getOptions)();
16
+ let {
17
+ app: {
18
+ folder
19
+ },
20
+ test: {
21
+ branchName,
22
+ srcBranch,
23
+ targetBranch,
24
+ serviceName,
25
+ impactServerDomain,
26
+ isCommitCoverage
27
+ }
28
+ } = options;
29
+ let argv = process.argv.slice(2);
31
30
 
32
- var argv = process.argv.slice(2);
31
+ let config = require('../configs/jest.config');
33
32
 
34
- var config = require('../configs/jest.config');
35
33
  if (isCommitCoverage) {
36
- (0, _coverageCollector2.default)(srcBranch, targetBranch, serviceName, impactServerDomain).then(function () {
37
- var res = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
38
-
34
+ (0, _coverageCollector.default)(srcBranch, targetBranch, serviceName, impactServerDomain).then((res = {}) => {
39
35
  if (res.STATUS) {
40
36
  if (res.LIST.length > 0) {
41
- var content = {
37
+ let content = {
42
38
  FILES: res.LIST
43
39
  };
44
- if (!_fs2.default.existsSync('./coverageTest')) {
45
- _fs2.default.mkdirSync('./coverageTest');
46
- _fs2.default.writeFileSync('./coverageTest/result.json', JSON.stringify(content), 'utf8');
40
+
41
+ if (!_fs.default.existsSync('./coverageTest')) {
42
+ _fs.default.mkdirSync('./coverageTest');
43
+
44
+ _fs.default.writeFileSync('./coverageTest/result.json', JSON.stringify(content), 'utf8');
47
45
  } else {
48
- _fs2.default.writeFileSync('./coverageTest/result.json', JSON.stringify(content), 'utf8');
46
+ _fs.default.writeFileSync('./coverageTest/result.json', JSON.stringify(content), 'utf8');
49
47
  }
50
48
 
51
49
  argv.push('--findRelatedTests');
@@ -53,42 +51,44 @@ if (isCommitCoverage) {
53
51
  argv = argv.concat(['--config', JSON.stringify(config(null, true))]);
54
52
  argv.push('--no-cache');
55
53
  argv.push('--silent');
56
- _jest2.default.run(argv);
54
+
55
+ _jest.default.run(argv);
57
56
  } else {
58
- (0, _jsonHelper.jsonHelper)(process.cwd() + '/result.json', ['tests', 'modifiedFileUnitCase', 'hasChanges'], false);
59
- // jsonHelper(
57
+ (0, _jsonHelper.jsonHelper)(`${process.cwd()}/result.json`, ['tests', 'modifiedFileUnitCase', 'hasChanges'], false); // jsonHelper(
60
58
  // `${process.cwd()}/result.json`,
61
59
  // 'testInfo.isBuildVerified',
62
60
  // true
63
61
  // );
64
- (0, _jsonHelper.setTestInfoStatus)(process.cwd() + '/result.json', true);
65
- (0, _jsonHelper.jsonHelper)(process.cwd() + '/result.json', 'testInfo.failures', [{
62
+
63
+ (0, _jsonHelper.setTestInfoStatus)(`${process.cwd()}/result.json`, true);
64
+ (0, _jsonHelper.jsonHelper)(`${process.cwd()}/result.json`, 'testInfo.failures', [{
66
65
  type: 'modifiedUnitcases',
67
66
  message: res.REASON
68
67
  }]);
69
68
  (0, _utils.log)('No JS changes with last changeset!');
70
69
  }
71
70
  } else {
72
- (0, _jsonHelper.jsonHelper)(process.cwd() + '/result.json', ['tests', 'modifiedFileUnitCase', 'isExecuted'], res.STATUS);
73
- // jsonHelper(
71
+ (0, _jsonHelper.jsonHelper)(`${process.cwd()}/result.json`, ['tests', 'modifiedFileUnitCase', 'isExecuted'], res.STATUS); // jsonHelper(
74
72
  // `${process.cwd()}/result.json`,
75
73
  // 'testInfo.isBuildVerified',
76
74
  // true
77
75
  // );
78
- (0, _jsonHelper.setTestInfoStatus)(process.cwd() + '/result.json', true);
79
- // jsonHelper(`${process.cwd()}/result.json`, 'testInfo.failures', [{
76
+
77
+ (0, _jsonHelper.setTestInfoStatus)(`${process.cwd()}/result.json`, true); // jsonHelper(`${process.cwd()}/result.json`, 'testInfo.failures', [{
80
78
  // type: 'modifiedUnitcases',
81
79
  // message: res.REASON
82
80
  // }]);
81
+
83
82
  (0, _utils.log)(res.REASON);
84
83
  }
85
84
  });
86
85
  } else {
87
86
  if (branchName === 'master' || branchName === null) {
88
87
  argv.push('--config', JSON.stringify(config(folder)), '--no-cache');
89
- _jest2.default.run(argv);
88
+
89
+ _jest.default.run(argv);
90
90
  } else {
91
- (0, _jsonHelper.jsonHelper)(process.cwd() + '/result.json', ['tests', 'unitCase', 'isExecuted'], 'onlyMaster');
91
+ (0, _jsonHelper.jsonHelper)(`${process.cwd()}/result.json`, ['tests', 'unitCase', 'isExecuted'], 'onlyMaster');
92
92
  (0, _utils.log)('Only runs with master branch');
93
93
  }
94
94
  }