@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
@@ -1,182 +1,181 @@
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 _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
8
+ var _fs = _interopRequireDefault(require("fs"));
8
9
 
9
- 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; }; }();
10
+ var _path = _interopRequireDefault(require("path"));
10
11
 
11
- var _fs = require('fs');
12
+ var _redis = _interopRequireDefault(require("redis"));
12
13
 
13
- var _fs2 = _interopRequireDefault(_fs);
14
-
15
- var _path = require('path');
16
-
17
- var _path2 = _interopRequireDefault(_path);
18
-
19
- var _redis = require('redis');
20
-
21
- var _redis2 = _interopRequireDefault(_redis);
22
-
23
- var _utils = require('../utils');
14
+ var _utils = require("../utils");
24
15
 
25
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
17
 
27
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
18
+ let options = (0, _utils.getOptions)();
19
+ let {
20
+ app: {
21
+ branch,
22
+ redisHost,
23
+ redisPort
24
+ }
25
+ } = options;
28
26
 
29
- var options = (0, _utils.getOptions)();
30
- var _options$app = options.app,
31
- branch = _options$app.branch,
32
- redisHost = _options$app.redisHost,
33
- redisPort = _options$app.redisPort;
27
+ class reportGeneratePlugin {
28
+ apply(compiler) {
29
+ compiler.hooks.emit.tapAsync('reportGeneratePlugin', (compilation, callback) => {
30
+ function formatBytes(bytes) {
31
+ if (bytes) {
32
+ let isNegative;
34
33
 
35
- var reportGeneratePlugin = function () {
36
- function reportGeneratePlugin() {
37
- _classCallCheck(this, reportGeneratePlugin);
38
- }
34
+ if (bytes < 0) {
35
+ bytes = bytes * -1; //eslint-disable-line
39
36
 
40
- _createClass(reportGeneratePlugin, [{
41
- key: 'apply',
42
- value: function apply(compiler) {
43
- compiler.hooks.emit.tapAsync('reportGeneratePlugin', function (compilation, callback) {
44
- function formatBytes(bytes) {
45
- if (bytes) {
46
- var isNegative = void 0;
47
- if (bytes < 0) {
48
- bytes = bytes * -1; //eslint-disable-line
49
- isNegative = true;
50
- }
51
- if (bytes < 1024) {
52
- if (isNegative) {
53
- return '- ' + bytes + ' Bytes';
54
- }
55
- return bytes + ' Bytes';
56
- } else if (bytes < 1048576) {
57
- if (isNegative) {
58
- return '- ' + (bytes / 1024).toFixed(3) + ' KB';
59
- }
60
- return (bytes / 1024).toFixed(3) + ' KB';
61
- } else if (bytes < 1073741824) {
62
- if (isNegative) {
63
- return '- ' + (bytes / 1048576).toFixed(3) + ' MB';
64
- }
65
- return (bytes / 1048576).toFixed(3) + ' MB';
37
+ isNegative = true;
38
+ }
39
+
40
+ if (bytes < 1024) {
41
+ if (isNegative) {
42
+ return `- ${bytes} Bytes`;
66
43
  }
44
+
45
+ return `${bytes} Bytes`;
46
+ } else if (bytes < 1048576) {
67
47
  if (isNegative) {
68
- return '- ' + (bytes / 1073741824).toFixed(3) + ' GB';
48
+ return `- ${(bytes / 1024).toFixed(3)} KB`;
69
49
  }
70
- return (bytes / 1073741824).toFixed(3) + ' GB';
71
- }
72
- }
73
50
 
74
- var client = _redis2.default.createClient(redisPort, redisHost);
51
+ return `${(bytes / 1024).toFixed(3)} KB`;
52
+ } else if (bytes < 1073741824) {
53
+ if (isNegative) {
54
+ return `- ${(bytes / 1048576).toFixed(3)} MB`;
55
+ }
75
56
 
76
- client.on('connect', function () {
77
- (0, _utils.log)('Redis client connected');
78
- });
57
+ return `${(bytes / 1048576).toFixed(3)} MB`;
58
+ }
79
59
 
80
- client.on('error', function (err) {
81
- (0, _utils.log)('Something went wrong ' + err);
82
- });
60
+ if (isNegative) {
61
+ return `- ${(bytes / 1073741824).toFixed(3)} GB`;
62
+ }
83
63
 
84
- if (_fs2.default.existsSync(_path2.default.resolve(process.cwd(), 'build', 'stats.json'))) {
85
- var statsJSON = _fs2.default.readFileSync(_path2.default.resolve(process.cwd(), 'build', 'stats.json'), 'utf8');
64
+ return `${(bytes / 1073741824).toFixed(3)} GB`;
65
+ }
66
+ }
86
67
 
87
- statsJSON = JSON.parse(statsJSON);
88
- var finalObj = {};
68
+ let client = _redis.default.createClient(redisPort, redisHost);
89
69
 
90
- var branchName = branch ? branch : (0, _utils.getCurrentBranch)();
70
+ client.on('connect', () => {
71
+ (0, _utils.log)('Redis client connected');
72
+ });
73
+ client.on('error', err => {
74
+ (0, _utils.log)(`Something went wrong ${err}`);
75
+ });
91
76
 
92
- (0, _utils.log)(branchName);
77
+ if (_fs.default.existsSync(_path.default.resolve(process.cwd(), 'build', 'stats.json'))) {
78
+ let statsJSON = _fs.default.readFileSync(_path.default.resolve(process.cwd(), 'build', 'stats.json'), 'utf8');
79
+
80
+ statsJSON = JSON.parse(statsJSON);
81
+ let finalObj = {};
82
+ let branchName = branch ? branch : (0, _utils.getCurrentBranch)();
83
+ (0, _utils.log)(branchName);
84
+ statsJSON.assets.forEach(assetObj => {
85
+ let nameSplitList = assetObj.name.split('/')[assetObj.name.split('/').length - 1].split('.'); // eslint-disable-line
86
+
87
+ let [, hash] = nameSplitList;
88
+ let name = `${nameSplitList[0]}.${nameSplitList[2]}`;
89
+ let {
90
+ size
91
+ } = assetObj;
92
+ let tempObject = {
93
+ name,
94
+ hash,
95
+ size
96
+ }; // eslint-disable-next-line
97
+
98
+ if (!finalObj.hasOwnProperty(name)) {
99
+ finalObj[name] = tempObject;
100
+ }
101
+ });
102
+ client.exists(branchName, (err, bool) => {
103
+ if (!bool) {
104
+ client.set(branchName, JSON.stringify(finalObj), _redis.default.print);
105
+ client.quit();
106
+ } else {
107
+ let reportObj = {
108
+ increased: [],
109
+ hashChanged: [],
110
+ branchName
111
+ };
112
+ client.get(branchName, (err, reply) => {
113
+ if (err) {
114
+ (0, _utils.log)(err);
115
+ } else {
116
+ reply = JSON.parse(reply); // eslint-disable-line
117
+
118
+ Object.keys(reply).forEach(fileName => {
119
+ // eslint-disable-next-line
120
+ if (finalObj.hasOwnProperty(fileName)) {
121
+ if (parseInt(reply[fileName].size) < parseInt(finalObj[fileName].size)) {
122
+ reportObj.increased.push({
123
+ name: fileName,
124
+ size: {
125
+ old: formatBytes(reply[fileName].size),
126
+ new: formatBytes(finalObj[fileName].size),
127
+ diff: formatBytes(parseInt(finalObj[fileName].size) - parseInt(reply[fileName].size))
128
+ }
129
+ });
130
+ }
93
131
 
94
- statsJSON.assets.forEach(function (assetObj) {
95
- var nameSplitList = assetObj.name.split('/')[assetObj.name.split('/').length - 1].split('.'); // eslint-disable-line
132
+ if (reply[fileName].hash !== finalObj[fileName].hash) {
133
+ reportObj.hashChanged.push({
134
+ name: fileName,
135
+ hash: {
136
+ old: reply[fileName].hash,
137
+ new: finalObj[fileName].hash
138
+ }
139
+ });
140
+ }
141
+ }
142
+ });
143
+ let json = JSON.stringify(reportObj);
96
144
 
97
- var _nameSplitList = _slicedToArray(nameSplitList, 2),
98
- hash = _nameSplitList[1];
145
+ _fs.default.writeFile(_path.default.resolve(process.cwd(), 'build', 'buildtrack.js'), `let statsJson=${json}`, err => {
146
+ if (err) {
147
+ throw err;
148
+ }
99
149
 
100
- var name = nameSplitList[0] + '.' + nameSplitList[2];
101
- var size = assetObj.size;
150
+ (0, _utils.log)('Stats Json generated!');
151
+ });
152
+ }
153
+ });
154
+ client.set(branchName, JSON.stringify(finalObj), _redis.default.print); // fs.copyFileSync(
155
+ // path.resolve(
156
+ // process.cwd(),
157
+ // 'node_modules',
158
+ // '@zohodesk',
159
+ // 'react-cli',
160
+ // 'lib',
161
+ // 'utils',
162
+ // 'buildstats.html'
163
+ // ),
164
+ // path.resolve(process.cwd(), 'build', 'buildstats.html')
165
+ // );
166
+
167
+ client.quit();
168
+ callback && callback();
169
+ }
102
170
 
103
- var tempObject = { name: name, hash: hash, size: size };
104
- // eslint-disable-next-line
105
- if (!finalObj.hasOwnProperty(name)) {
106
- finalObj[name] = tempObject;
107
- }
108
- });
109
-
110
- client.exists(branchName, function (err, bool) {
111
- if (!bool) {
112
- client.set(branchName, JSON.stringify(finalObj), _redis2.default.print);
113
- client.quit();
114
- } else {
115
- var reportObj = { increased: [], hashChanged: [], branchName: branchName };
116
- client.get(branchName, function (err, reply) {
117
- if (err) {
118
- (0, _utils.log)(err);
119
- } else {
120
- reply = JSON.parse(reply); // eslint-disable-line
121
- Object.keys(reply).forEach(function (fileName) {
122
- // eslint-disable-next-line
123
- if (finalObj.hasOwnProperty(fileName)) {
124
- if (parseInt(reply[fileName].size) < parseInt(finalObj[fileName].size)) {
125
- reportObj.increased.push({
126
- name: fileName,
127
- size: {
128
- old: formatBytes(reply[fileName].size),
129
- new: formatBytes(finalObj[fileName].size),
130
- diff: formatBytes(parseInt(finalObj[fileName].size) - parseInt(reply[fileName].size))
131
- }
132
- });
133
- }
134
- if (reply[fileName].hash !== finalObj[fileName].hash) {
135
- reportObj.hashChanged.push({
136
- name: fileName,
137
- hash: {
138
- old: reply[fileName].hash,
139
- new: finalObj[fileName].hash
140
- }
141
- });
142
- }
143
- }
144
- });
145
- var json = JSON.stringify(reportObj);
146
- _fs2.default.writeFile(_path2.default.resolve(process.cwd(), 'build', 'buildtrack.js'), 'let statsJson=' + json, function (err) {
147
- if (err) {
148
- throw err;
149
- }
150
- (0, _utils.log)('Stats Json generated!');
151
- });
152
- }
153
- });
154
- client.set(branchName, JSON.stringify(finalObj), _redis2.default.print);
155
- // fs.copyFileSync(
156
- // path.resolve(
157
- // process.cwd(),
158
- // 'node_modules',
159
- // '@zohodesk',
160
- // 'react-cli',
161
- // 'lib',
162
- // 'utils',
163
- // 'buildstats.html'
164
- // ),
165
- // path.resolve(process.cwd(), 'build', 'buildstats.html')
166
- // );
167
- client.quit();
168
- callback && callback();
169
- }
170
- if (err) {
171
- (0, _utils.log)(err);
172
- }
173
- });
174
- }
175
- });
176
- }
177
- }]);
171
+ if (err) {
172
+ (0, _utils.log)(err);
173
+ }
174
+ });
175
+ }
176
+ });
177
+ }
178
178
 
179
- return reportGeneratePlugin;
180
- }();
179
+ }
181
180
 
182
181
  exports.default = reportGeneratePlugin;
@@ -1,49 +1,67 @@
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
+ const {
9
+ Template
10
+ } = require('webpack');
8
11
 
9
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12
+ const pluginName = 'prefetch-preload-chunk-plugin';
10
13
 
11
- var _require = require('webpack'),
12
- Template = _require.Template;
14
+ class ResourceHintsPlugin {
15
+ apply(compiler) {
16
+ compiler.hooks.thisCompilation.tap(pluginName, ({
17
+ mainTemplate
18
+ }) => {
19
+ mainTemplate.hooks.requireExtensions.tap(pluginName, (source, chunk, hash) => {
20
+ const idNameMap = chunk.getChunkMaps().name;
21
+ const nameIdMap = {};
22
+ let needsMap = false;
13
23
 
14
- var pluginName = 'prefetch-preload-chunk-plugin';
24
+ for (const key in idNameMap) {
25
+ if (Object.prototype.hasOwnProperty.call(idNameMap, key)) {
26
+ const value = idNameMap[key];
27
+ nameIdMap[value] = key;
15
28
 
16
- var ResourceHintsPlugin = function () {
17
- function ResourceHintsPlugin() {
18
- _classCallCheck(this, ResourceHintsPlugin);
19
- }
20
-
21
- _createClass(ResourceHintsPlugin, [{
22
- key: 'apply',
23
- value: function apply(compiler) {
24
- compiler.hooks.thisCompilation.tap(pluginName, function (_ref) {
25
- var mainTemplate = _ref.mainTemplate;
26
-
27
- mainTemplate.hooks.requireExtensions.tap(pluginName, function (source, chunk, hash) {
28
- var idNameMap = chunk.getChunkMaps().name;
29
- var nameIdMap = {};
30
- var needsMap = false;
31
- for (var key in idNameMap) {
32
- if (Object.prototype.hasOwnProperty.call(idNameMap, key)) {
33
- var value = idNameMap[key];
34
- nameIdMap[value] = key;
35
- if (key !== value) {
36
- needsMap = true;
37
- }
29
+ if (key !== value) {
30
+ needsMap = true;
38
31
  }
39
32
  }
40
- return Template.asString([source, '', '// Prefetch a chunk (' + pluginName + ')', mainTemplate.requireFn + '.pfc = function prefetchChunk(chunkId) {', Template.indent((needsMap ? ['chunkId = ' + JSON.stringify(nameIdMap) + '[chunkId]||chunkId;'] : []).concat(['var promises = [];', 'if(installedChunks[chunkId] === undefined) {', Template.indent(['installedChunks[chunkId] = null;', mainTemplate.hooks.linkPrefetch.call('', chunk, hash), 'document.head.appendChild(link);', mainTemplate.hooks.requireEnsure.call('', chunk, hash)]), '}'])), '};', '// Preload a chunk (' + pluginName + ')', mainTemplate.requireFn + '.plc = function preloadChunk(chunkId) {', Template.indent((needsMap ? ['chunkId = ' + JSON.stringify(nameIdMap) + '[chunkId]||chunkId;'] : []).concat(['if(installedChunks[chunkId] === undefined) {', Template.indent(['installedChunks[chunkId] = null;', mainTemplate.hooks.linkPreload.call('', chunk, hash), 'document.head.appendChild(link);', 'var head = document.getElementsByTagName(\'head\')[0];', mainTemplate.hooks.jsonpScript.call('', chunk, hash), 'head.appendChild(script);']), '}'])), '};']);
41
- });
33
+ }
34
+
35
+ return Template.asString([source, '', `${mainTemplate.requireFn}.getChunkId = function getChunkId(chunkId) {`, Template.indent((needsMap ? [`chunkId = ${JSON.stringify(nameIdMap)}[chunkId]||chunkId;`] : []).concat(['return chunkId;'])), '}', `// Prefetch a chunk (${pluginName})`, `${mainTemplate.requireFn}.pfc = function prefetchChunk(chunkId) {`, Template.indent([`chunkId = ${mainTemplate.requireFn}.getChunkId(chunkId)`, `${mainTemplate.requireFn}.e(chunkId);`]), '};',
36
+ /*
37
+ (needsMap
38
+ ? [`chunkId = ${JSON.stringify(nameIdMap)}[chunkId]||chunkId;`]
39
+ : []
40
+ ).concat([
41
+ 'var promises = [];',
42
+ 'if(installedChunks[chunkId] === undefined) {',
43
+ Template.indent([
44
+ 'installedChunks[chunkId] = null;',
45
+ /* mainTemplate.hooks.linkPrefetch.call('', chunk, hash),
46
+ 'document.head.appendChild(link);', */
47
+
48
+ /*
49
+ mainTemplate.hooks.requireEnsure.call('', chunk, hash)
50
+ ]),
51
+ '}'
52
+ ])
53
+ ),
54
+ '}',
55
+ */
56
+ `// Preload a chunk (${pluginName})`, `${mainTemplate.requireFn}.plc = function preloadChunk(chunkId) {`, Template.indent([`chunkId = ${mainTemplate.requireFn}.getChunkId(chunkId)`, 'if(installedChunks[chunkId] === undefined) {', Template.indent(['installedChunks[chunkId] = null;', mainTemplate.hooks.linkPreload.call('', chunk, hash), 'document.head.appendChild(link);', `${mainTemplate.requireFn}.e(chunkId);` // 'var head = document.getElementsByTagName(\'head\')[0];',
57
+ // mainTemplate.hooks.jsonpScript.call('', chunk, hash),
58
+ // 'head.appendChild(script);'
59
+ ]), '}']), '};']);
42
60
  });
43
- }
44
- }]);
61
+ });
62
+ }
45
63
 
46
- return ResourceHintsPlugin;
47
- }();
64
+ }
48
65
 
49
- exports.default = ResourceHintsPlugin;
66
+ var _default = ResourceHintsPlugin;
67
+ exports.default = _default;
@@ -1,51 +1,36 @@
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 _fs = _interopRequireDefault(require("fs"));
8
9
 
9
- var _fs = require('fs');
10
-
11
- var _fs2 = _interopRequireDefault(_fs);
12
-
13
- var _path = require('path');
14
-
15
- var _path2 = _interopRequireDefault(_path);
10
+ var _path = _interopRequireDefault(require("path"));
16
11
 
17
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
13
 
19
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
20
-
21
- var coverageScript = _fs2.default.readFileSync(_path2.default.resolve(__dirname, '..', 'templates', 'CoverageScriptTemplate.js')).toString();
22
-
23
- var ScriptInstrumentPlugin = function () {
24
- function ScriptInstrumentPlugin() {
25
- _classCallCheck(this, ScriptInstrumentPlugin);
26
- }
27
-
28
- _createClass(ScriptInstrumentPlugin, [{
29
- key: 'apply',
30
- value: function apply(compiler) {
31
- compiler.hooks.emit.tapAsync('ScriptInstrumentPlugin', function (compilation, callback) {
32
- compilation.chunks.forEach(function (chunk) {
33
- chunk.files.forEach(function (filename) {
34
- if (filename === 'vendor.js') {
35
- compilation.assets[filename].children.forEach(function (child) {
36
- if (child._value) {
37
- child._value = coverageScript + child._value;
38
- }
39
- });
40
- }
41
- });
14
+ let coverageScript = _fs.default.readFileSync(_path.default.resolve(__dirname, '..', 'templates', 'CoverageScriptTemplate.js')).toString();
15
+
16
+ class ScriptInstrumentPlugin {
17
+ apply(compiler) {
18
+ compiler.hooks.emit.tapAsync('ScriptInstrumentPlugin', (compilation, callback) => {
19
+ compilation.chunks.forEach(chunk => {
20
+ chunk.files.forEach(filename => {
21
+ if (filename === 'vendor.js') {
22
+ compilation.assets[filename].children.forEach(child => {
23
+ if (child._value) {
24
+ child._value = coverageScript + child._value;
25
+ }
26
+ });
27
+ }
42
28
  });
43
- callback();
44
29
  });
45
- }
46
- }]);
30
+ callback();
31
+ });
32
+ }
47
33
 
48
- return ScriptInstrumentPlugin;
49
- }();
34
+ }
50
35
 
51
36
  exports.default = ScriptInstrumentPlugin;