@zohodesk/react-cli 1.1.14-exp.3 → 1.1.14-kubernetes

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 (102) hide show
  1. package/README.md +16 -281
  2. package/bin/cli.js +55 -30
  3. package/docs/CustomChunks.md +9 -12
  4. package/docs/SelectorWeight.md +0 -3
  5. package/docs/ValueReplacer.md +0 -27
  6. package/docs/VariableConversion.md +1 -6
  7. package/lib/common/splitChunks.js +45 -65
  8. package/lib/common/testPattern.js +11 -9
  9. package/lib/common/valueReplacer.js +3 -1
  10. package/lib/configs/resolvers.js +5 -16
  11. package/lib/configs/webpack.css.umd.config.js +2 -3
  12. package/lib/configs/webpack.dev.config.js +5 -15
  13. package/lib/configs/webpack.docs.config.js +3 -14
  14. package/lib/configs/webpack.impact.config.js +2 -8
  15. package/lib/configs/webpack.prod.config.js +5 -15
  16. package/lib/constants.js +3 -3
  17. package/lib/loaderUtils/getCSSLoaders.js +49 -98
  18. package/lib/loaderUtils/windowsModification.js +1 -6
  19. package/lib/loaders/docsLoader.js +7 -18
  20. package/lib/loaders/selectorMappingLoader.js +9 -9
  21. package/lib/pluginUtils/getDevPlugins.js +6 -25
  22. package/lib/pluginUtils/getProdPlugins.js +5 -32
  23. package/lib/pluginUtils/getUMDCSSPlugins.js +1 -1
  24. package/lib/pluginUtils/getUMDComponentPlugins.js +1 -1
  25. package/lib/plugins/EFCPlugin.js +9 -9
  26. package/lib/plugins/EFCTemplatePlugin.js +12 -10
  27. package/lib/plugins/I18NInjectIntoIndexPlugin.js +9 -8
  28. package/lib/plugins/I18nSplitPlugin/I18nDebugPlugin.js +3 -2
  29. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +13 -30
  30. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +7 -2
  31. package/lib/plugins/I18nSplitPlugin/index.js +1 -1
  32. package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +8 -8
  33. package/lib/plugins/ReportGeneratePlugin.js +6 -8
  34. package/lib/plugins/ResourceHintsPlugin.js +3 -13
  35. package/lib/plugins/SelectorPlugin.js +37 -77
  36. package/lib/plugins/{MinifyPlugin.js → UglifyCSSPlugin.js} +3 -3
  37. package/lib/plugins/UnusedFilesFindPlugin.js +5 -7
  38. package/lib/plugins/VariableConversionCollector.js +101 -40
  39. package/lib/plugins/composeCommonPlugin.js +30 -0
  40. package/lib/plugins/index.js +7 -7
  41. package/lib/postcss-plugins/ExcludePlugin.js +1 -1
  42. package/lib/postcss-plugins/RTLSplitPlugin.js +10 -4
  43. package/lib/postcss-plugins/ValueReplacer.js +29 -8
  44. package/lib/postcss-plugins/hoverActivePlugin.js +6 -0
  45. package/lib/postcss-plugins/variableModificationPlugin/ErrorHandler.js +1 -0
  46. package/lib/postcss-plugins/variableModificationPlugin/index.js +38 -94
  47. package/lib/postcss-plugins/variableModifier.js +244 -0
  48. package/lib/schemas/index.js +18 -94
  49. package/lib/servers/devBuild.js +11 -13
  50. package/lib/servers/getCliPath.js +5 -3
  51. package/lib/servers/httpsOptions.js +13 -12
  52. package/lib/servers/nowatchserver.js +55 -62
  53. package/lib/servers/server.js +52 -53
  54. package/lib/utils/cssClassNameGenerate.js +13 -70
  55. package/lib/utils/getOptions.js +28 -35
  56. package/lib/utils/getServerURL.js +9 -1
  57. package/lib/utils/index.js +12 -14
  58. package/lib/utils/initPreCommitHook.js +5 -5
  59. package/lib/utils/pullOrigin.js +3 -3
  60. package/lib/utils/reinstallDependencies.js +3 -3
  61. package/lib/utils/switchBranch.js +2 -4
  62. package/package.json +3 -5
  63. package/templates/docs/all.html +0 -1
  64. package/templates/docs/component.html +0 -1
  65. package/templates/docs/components.html +0 -1
  66. package/templates/docs/css/style.css +169 -136
  67. package/templates/docs/index.html +632 -796
  68. package/.vscode/settings.json +0 -25
  69. package/docs/ComposeMinification.md +0 -13
  70. package/docs/MarkdownParser.md +0 -18
  71. package/docs/ReactLive.md +0 -14
  72. package/docs/patternFiltering.md +0 -57
  73. package/lib/common/buildEs.js +0 -12
  74. package/lib/common/runPreProcess.js +0 -71
  75. package/lib/deprecationLogger.js +0 -40
  76. package/lib/loaderUtils/tests/windowsModification.test.js +0 -10
  77. package/lib/loaders/__test__/markdownLoader.spec.js +0 -145
  78. package/lib/loaders/composeLoader.js +0 -298
  79. package/lib/loaders/markdownLoader.js +0 -71
  80. package/lib/loaders/reactLiveConvertor.js +0 -105
  81. package/lib/logger.js +0 -27
  82. package/lib/plugins/CustomAttributePlugin.js +0 -82
  83. package/lib/plugins/CustomAttributePlugin.md +0 -35
  84. package/lib/plugins/EfcResourceCleanupPlugin.js +0 -43
  85. package/lib/plugins/StatsPlugin.js +0 -82
  86. package/lib/plugins/utils/classHandling.js +0 -35
  87. package/lib/plugins/utils/fileHandling.js +0 -92
  88. package/lib/plugins/utils/tests/fileHandling.test.js +0 -30
  89. package/lib/plugins/variableConvertorUtils.js +0 -133
  90. package/lib/postcss-plugins/EmptyPlugin.js +0 -8
  91. package/lib/postcss-plugins/IncludePlugin.js +0 -23
  92. package/lib/postcss-plugins/SelectorReplace.js +0 -80
  93. package/lib/postcss-plugins/__test__/selectorReplace.test.js +0 -28
  94. package/lib/postcss-plugins/__test__/valueReplacer.spec.js +0 -43
  95. package/lib/servers/requireLocalOrGlobal.js +0 -61
  96. package/lib/utils/deprecationSupport.js +0 -134
  97. package/lib/utils/log.js +0 -11
  98. package/lib/utils/object-manipulation.js +0 -88
  99. package/lib/utils/selectorReplacer.js +0 -47
  100. package/lib/utils/variableConverter.js +0 -104
  101. package/npm-shrinkwrap.json +0 -33485
  102. package/templates/docs/css/markdown.css +0 -202
@@ -1,298 +0,0 @@
1
- "use strict";
2
-
3
- var _path = _interopRequireDefault(require("path"));
4
-
5
- var _postcss = _interopRequireDefault(require("postcss"));
6
-
7
- var _classHandling = require("../../lib/plugins/utils/classHandling");
8
-
9
- var _fileHandling = require("../plugins/utils/fileHandling");
10
-
11
- var _utils = require("../utils");
12
-
13
- var _ignore = _interopRequireDefault(require("ignore"));
14
-
15
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
-
17
- const supportedProps = ['margin-top', 'margin-bottom', 'margin-left', 'margin-right', 'margin', 'padding-top', 'padding-bottom', 'padding-left', 'padding-right', 'padding', 'top', 'bottom', 'left', 'right', 'height', 'width', 'min-height', 'min-width', 'max-height', 'max-width', 'float', 'overflow', 'position', 'display', 'text-align', 'white-space', 'visibility'];
18
- const renameProps = {
19
- position: {
20
- cls: 'posn'
21
- },
22
- display: {
23
- cls: 'disp'
24
- },
25
- float: {
26
- cls: 'flo'
27
- },
28
- overflow: {
29
- cls: 'over'
30
- },
31
- 'text-align': {
32
- cls: 'txtAlgn'
33
- },
34
- 'white-space': {
35
- cls: 'whSpc'
36
- },
37
- visibility: {
38
- cls: 'vis'
39
- },
40
- 'font-size': {
41
- pos: 'fs',
42
- neg: 'fs_'
43
- },
44
- 'margin-top': {
45
- pos: 'mt',
46
- neg: 'mt_'
47
- },
48
- 'margin-bottom': {
49
- pos: 'mb',
50
- neg: 'mb_'
51
- },
52
- 'margin-left': {
53
- pos: 'ml',
54
- neg: 'ml_'
55
- },
56
- 'margin-right': {
57
- pos: 'mr',
58
- neg: 'mr_'
59
- },
60
- margin: {
61
- pos: 'm',
62
- neg: 'm_'
63
- },
64
- 'padding-top': {
65
- pos: 'pt',
66
- neg: 'pt_'
67
- },
68
- 'padding-bottom': {
69
- pos: 'pb',
70
- neg: 'pb_'
71
- },
72
- 'padding-left': {
73
- pos: 'pl',
74
- neg: 'pl_'
75
- },
76
- 'padding-right': {
77
- pos: 'pr',
78
- neg: 'pr_'
79
- },
80
- padding: {
81
- pos: 'p',
82
- neg: 'p_'
83
- },
84
- top: {
85
- pos: 'post',
86
- neg: 'post_'
87
- },
88
- bottom: {
89
- pos: 'posb',
90
- neg: 'posb_'
91
- },
92
- left: {
93
- pos: 'posl',
94
- neg: 'posl_'
95
- },
96
- right: {
97
- pos: 'posr',
98
- neg: 'posr_'
99
- },
100
- height: {
101
- pos: 'h',
102
- neg: 'h_'
103
- },
104
- width: {
105
- pos: 'w',
106
- neg: 'w_'
107
- },
108
- 'min-height': {
109
- pos: 'minh',
110
- neg: 'minh_'
111
- },
112
- 'min-width': {
113
- pos: 'minw',
114
- neg: 'minw_'
115
- },
116
- 'max-height': {
117
- pos: 'maxh',
118
- neg: 'maxh_'
119
- },
120
- 'max-width': {
121
- pos: 'maxw',
122
- neg: 'maxw_'
123
- }
124
- };
125
-
126
- function objToClassName(prop, data) {
127
- return renameProps[prop] ? data < 0 ? renameProps[prop].neg ? `${renameProps[prop].neg}${data * -1}` : `undef${data * -1}` : renameProps[prop].pos ? `${renameProps[prop].pos}${data}` : `undef${data}` : `undef${data}`;
128
- }
129
-
130
- function objtoClassNameString(prop, data) {
131
- let temp = data.toString().replace(/-/gi, '');
132
- return `${renameProps[prop].cls}_${temp.replace(/\s*/gi, '')}`;
133
- }
134
-
135
- const multipleClassName = {
136
- margin: ['margin-top', 'margin-right', 'margin-bottom', 'margin-left'],
137
- padding: ['padding-top', 'padding-right', 'padding-bottom', 'padding-left']
138
- };
139
-
140
- function objToClassNameMultiple(prop, data) {
141
- data = data.trim().replace(/\s+/gi, ' ');
142
- let dataArr = data.split(' ');
143
-
144
- if (dataArr.length === 3) {
145
- dataArr[3] = dataArr[1];
146
- }
147
-
148
- if (dataArr.length === 2) {
149
- dataArr[3] = dataArr[1];
150
- dataArr[2] = dataArr[0];
151
- }
152
-
153
- if (dataArr.length === 1) {
154
- dataArr[3] = dataArr[0];
155
- dataArr[2] = dataArr[0];
156
- dataArr[1] = dataArr[0];
157
- }
158
-
159
- let composeClasses = '';
160
- dataArr.forEach((data, index) => composeClasses += `${objToClassName(multipleClassName[prop][index], parseInt(data, 10))} `);
161
- composeClasses = composeClasses.substring(0, composeClasses.length - 1);
162
- return composeClasses;
163
- }
164
-
165
- const commonFilePath = {
166
- margin: 'src/common/css/margin.css',
167
- 'margin-left': 'src/common/css/margin.css',
168
- 'margin-right': 'src/common/css/margin.css',
169
- 'margin-top': 'src/common/css/margin.css',
170
- 'margin-bottom': 'src/common/css/margin.css',
171
- padding: 'src/common/css/padding.css',
172
- 'padding-left': 'src/common/css/padding.css',
173
- 'padding-right': 'src/common/css/padding.css',
174
- 'padding-top': 'src/common/css/padding.css',
175
- 'padding-bottom': 'src/common/css/padding.css',
176
- top: 'src/common/css/position.css',
177
- bottom: 'src/common/css/position.css',
178
- left: 'src/common/css/position.css',
179
- right: 'src/common/css/position.css',
180
- height: 'src/common/css/height.css',
181
- width: 'src/common/css/width.css',
182
- 'min-height': 'src/common/css/height.css',
183
- 'min-width': 'src/common/css/width.css',
184
- 'max-height': 'src/common/css/height.css',
185
- 'max-width': 'src/common/css/width.css',
186
- fontSize: 'src/common/css/fontSize.css',
187
- textProps: 'src/common/css/textProps.css',
188
- display: 'src/common/css/textProps.css',
189
- float: 'src/common/css/textProps.css',
190
- overflow: 'src/common/css/textProps.css',
191
- position: 'src/common/css/position.css',
192
- 'text-align': 'src/common/css/textProps.css',
193
- 'white-space': 'src/common/css/textProps.css',
194
- visibility: 'src/common/css/textProps.css'
195
- };
196
-
197
- function generateComposeString(resourcePath, prop, value) {
198
- let composeString = `from "${_path.default.relative(_path.default.parse(resourcePath).dir, // resourcePath
199
- commonFilePath[prop]).replace(/\\/gi, '/')}"`;
200
- let cls = '';
201
-
202
- if (/^position|^overflow|^display|^float|^text-align|^white-space|^visibility/gi.test(prop)) {
203
- console.log(prop, value, 'textvals');
204
- cls = objtoClassNameString(prop, value);
205
- } else if (/^margin$|^padding$/gi.test(prop)) {
206
- // console.log(prop, value, 'margin');
207
- cls = objToClassNameMultiple(prop, value);
208
- } else {
209
- // console.log(prop, value, 'common');
210
- cls = objToClassName(prop, parseInt(value));
211
- }
212
-
213
- composeString = `${cls} ${composeString}`;
214
- return composeString;
215
- } // const preNames = {
216
- // height: 'zd-height-',
217
- // 'max-height': 'zd-height-',
218
- // 'min-height': 'zd-height-',
219
- // width: 'zd-width-',
220
- // 'max-width': 'zd-width-',
221
- // 'min-width': 'zd-width-',
222
- // top: 'zd-position-',
223
- // bottom: 'zd-position-',
224
- // left: 'zd-position-',
225
- // right: 'zd-position-',
226
- // 'padding-top': 'zd-padding-',
227
- // 'padding-bottom': 'zd-padding-',
228
- // 'padding-left': 'zd-padding-',
229
- // 'padding-right': 'zd-padding-',
230
- // 'margin-top': 'zd-margin-',
231
- // 'margin-bottom': 'zd-margin-',
232
- // 'margin-left': 'zd-margin-',
233
- // 'margin-right': 'zd-margin-'
234
- // };
235
-
236
-
237
- function allowParent(rule) {
238
- return rule.parent.type === 'root' || rule.parent.type === 'atrule' && rule.parent.name === 'media';
239
- }
240
-
241
- module.exports = function (source) {
242
- const {
243
- resourcePath
244
- } = this;
245
- const options = (0, _utils.getOptions)(); // console.log(options.app.patterns.composeMinification);
246
- // const ig = ignore({ allowRelativePaths: true }).add(options.app.patterns.composeMinification);
247
- // const newFilename = path.relative(path.parse(process.cwd()).base, resourcePath);
248
- // console.log(newFilename, ig.ignores(newFilename));
249
-
250
- let root = _postcss.default.parse(source);
251
-
252
- if (!(0, _fileHandling.isFileNameMatchingPluginPattern)({
253
- filename: resourcePath,
254
- filterArr: options.app.patterns.composeMinification
255
- })) {
256
- return root.toString();
257
- }
258
-
259
- root.walkRules(rule => {
260
- rule.walkDecls(decl => {
261
- if (/^-ms|^-webkit|^moz/gi.test(decl.prop)) {
262
- return;
263
- }
264
-
265
- if (!allowParent(rule)) {
266
- return;
267
- }
268
-
269
- if ((0, _classHandling.isInsideMediaQuery)(rule)) {
270
- console.log('inside media query', rule.selector);
271
- return;
272
- }
273
-
274
- if (supportedProps.includes(decl.prop) && /^position$|^overflow|^float|^display|^text-align|^white-space|^visibility/gi.test(decl.prop) && !/[,\s+]+|(\w+)\.|:|::|body|(\d+)%|>/gi.test(rule.selector) && commonFilePath[decl.prop] && !decl.value.includes('var(--')) {
275
- decl.value = generateComposeString(resourcePath, decl.prop, decl.value);
276
- decl.prop = 'composes';
277
- return;
278
- }
279
-
280
- if (supportedProps.includes(decl.prop) && /px$/gi.test(decl.value) && !/^--/gi.test(decl.prop) && commonFilePath[decl.prop] && !decl.value.includes('calc') && !/[,\s+]+|(\w+)\.|:|(\d+)%/gi.test(rule.selector)) {
281
- // n++ < 10 && console.log(composeString);
282
- // if (!composeString.includes('src')) {
283
- // if (/px$/gi.test(decl.value)) {
284
- decl.value = generateComposeString(resourcePath, decl.prop, decl.value); // }
285
- // if (/^position$|^display$|^overflow$|^float$/gi.test(decl.prop)) {
286
- // console.log(decl.prop);
287
- // }
288
-
289
- decl.prop = 'composes'; // console.log(decl.prop, decl.value);
290
- // n < 10 && console.log(rule.selector, decl.prop, decl.value);
291
- // }
292
- }
293
- });
294
- });
295
- const output = root.toString(); // console.log(output);
296
-
297
- return output;
298
- };
@@ -1,71 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.markdownParser = markdownParser;
7
-
8
- const markdownIt = require('markdown-it'); // const md = new markdownIt({ linkify: true,breaks:true });
9
-
10
-
11
- const md = new markdownIt({
12
- html: false,
13
- linkify: true,
14
- typographer: true,
15
- breaks: true,
16
- xhtmlOut: true
17
- }); //const md = new markdownIt();
18
-
19
- function markdownParser(source) {
20
- if (!source) {
21
- return '';
22
- }
23
-
24
- const startTag = '/* MD:START';
25
- const endTag = 'MD:END */'; // Iterate through all occurrences of the tags
26
-
27
- let startIndex = source.indexOf(startTag);
28
-
29
- while (startIndex !== -1) {
30
- const endIndex = source.indexOf(endTag, startIndex);
31
-
32
- if (endIndex !== -1) {
33
- const extractedMarkdown = source.slice(startIndex + startTag.length, endIndex);
34
- let lines = extractedMarkdown.split('\n');
35
- lines = lines.filter(line => line.trim() !== '');
36
- const firstLineIndentMatch = lines[0].match(/^\s+/);
37
- const firstLineIndent = firstLineIndentMatch ? firstLineIndentMatch[0] : '';
38
- const modifiedStr = lines.map(line => line.replace(new RegExp(`^${firstLineIndent}`), '')).join('\n').replace(/(:--)|(--:)/g, '---');
39
- let html = md.render(modifiedStr); //html = html.replace(/"|<hr>|<img src=(".*?")>|<br>|:--|--:|{|}|\$/g, match => {
40
-
41
- html = html.replace(/"|{|}|\$/g, match => {
42
- // if (match === '<hr>') {
43
- // return '<hr/>';
44
- // } else if (match.startsWith('<img src=')) {
45
- // return match.replace('>', '/>');
46
- // } else if (match === '<br>') {
47
- // return '<br/>';
48
- if (match === '$') {
49
- return '&#36;';
50
- } else if (match === '{') {
51
- return '&#123;';
52
- } else if (match === '}') {
53
- return '&#125;';
54
- } // else if (match === ':--' || match === '--:' ) {
55
- // return '---';
56
- // }
57
- else if (match === '}') {
58
- return '&#125;';
59
- }
60
-
61
- return match;
62
- }); // console.log(html,"html");
63
-
64
- source = source.replace(source.slice(startIndex, endIndex + endTag.length), '<><div class="markDown">' + html + '</div></>');
65
- }
66
-
67
- startIndex = source.indexOf(startTag, startIndex + 1); // console.log(source)
68
- }
69
-
70
- return source;
71
- }
@@ -1,105 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.reactLiveConvertor = reactLiveConvertor;
7
-
8
- const parser = require('@babel/parser');
9
-
10
- const traverse = require('@babel/traverse').default;
11
-
12
- const path = require('path');
13
-
14
- function getFilename(originalFilePath) {
15
- const [fileName] = path.basename(originalFilePath).split('.');
16
- return fileName;
17
- }
18
-
19
- function reactLiveConvertor(source, originalFilePath) {
20
- const fileName = getFilename(originalFilePath);
21
-
22
- if (!source) {
23
- return '';
24
- }
25
-
26
- let importBlock = '';
27
- let docCode = '';
28
- const packages = new Set();
29
- const fileContent = source.replace(/[\s\r\n]*$/, '');
30
- const ast = parser.parse(fileContent, {
31
- sourceType: 'module',
32
- plugins: ['jsx', 'classProperties']
33
- }); // Traverse the AST and find the import and export blocks
34
-
35
- let remainingCode = ast.program.body.filter(node => node.type !== 'ImportDeclaration').map(node => fileContent.substring(node.start, node.end)).join('').replace(/export default/, '').replace(/export /, '').trim();
36
- traverse(ast, {
37
- ImportDeclaration(path) {
38
- importBlock += `${fileContent.slice(path.node.start, path.node.end)}\n`;
39
- path.node.specifiers.forEach(specifier => {
40
- if (specifier.type === 'ImportSpecifier') {
41
- packages.add(specifier.imported.name);
42
- }
43
-
44
- if (specifier.local.type === 'Identifier') {
45
- packages.add(specifier.local.name);
46
- }
47
- });
48
- },
49
-
50
- ExpressionStatement(path) {
51
- const expression = path.get('expression');
52
- const expressionLeft = expression.get('left');
53
-
54
- if (path.isExpressionStatement() && expression.isAssignmentExpression() && expressionLeft.isMemberExpression()) {
55
- const docCheck = expressionLeft.toString();
56
-
57
- if (docCheck === `${fileName}.docs`) {
58
- docCode = expression.toString();
59
- }
60
- }
61
- } // IfStatement(path){
62
- // if(path.node.type == 'IfStatement'){
63
- // if(path.node.test.name == '__DOCS__'){
64
- // let final = fileContent.slice(path.node.start,path.node.end)
65
- // fileContent = fileContent.replace(final,'')
66
- // console.log(fileContent);
67
- // }
68
- // }
69
- // }
70
-
71
-
72
- });
73
- remainingCode = remainingCode.replace(/__DOCS__/, true);
74
- remainingCode = remainingCode.replace(/`/g, '\\`').replace(/\$\{/g, '$\\{');
75
- const brcklets = `(function () {
76
-
77
- ${remainingCode}
78
-
79
- return <${fileName} />
80
-
81
- }) ()`;
82
- const addBractick = `\`${brcklets}\``;
83
- const template = `
84
-
85
- ${importBlock}
86
-
87
- import { LiveProvider, LiveEditor, LiveError, LivePreview } from '@zohodesk-private/react-live/es/index'
88
-
89
- export default class ${fileName} extends React.Component{
90
- render(){
91
- return(
92
- <LiveProvider scope={{${Array.from(packages).join(', ')}}} code={${addBractick}}>
93
- <LiveEditor />
94
- <LiveError />
95
- <LivePreview />
96
-
97
- </LiveProvider>
98
- )
99
- }
100
- }
101
-
102
- ${docCode}
103
- `;
104
- return template;
105
- }
package/lib/logger.js DELETED
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.errorLogger = errorLogger;
7
- exports.messageLogger = messageLogger;
8
- exports.verboseLogger = verboseLogger;
9
- exports.warnLogger = warnLogger;
10
-
11
- /* eslint-disable no-console */
12
- function messageLogger(...args) {
13
- console.log(...args);
14
- }
15
-
16
- function errorLogger(...args) {
17
- console.error(...args);
18
- }
19
-
20
- function warnLogger(...args) {
21
- console.warn(...args);
22
- }
23
-
24
- function verboseLogger(...args) {
25
- // TODO: need to be remove when publish happens
26
- process.env.VERBOSE === 'true' && console.log('\x1b[33m [verbose] \x1b[0m', ...args);
27
- }
@@ -1,82 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.CustomAttributePlugin = void 0;
7
-
8
- var _Template = _interopRequireDefault(require("webpack/lib/Template"));
9
-
10
- var _htmlWebpackInjectAttributesPlugin = _interopRequireDefault(require("html-webpack-inject-attributes-plugin"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- /* eslint-disable no-use-before-define */
15
- class CustomAttributePlugin {
16
- constructor(options) {
17
- this.options = {
18
- attributes: options.attributes,
19
- useHTMLAttribute: options.attributes && !options.jsAttributes && !options.cssAttributes && !options.i18nAttributes,
20
- jsAttributes: options.jsAttributes || options.attributes || {},
21
- cssAttributes: options.cssAttributes || options.attributes || {},
22
- i18nAttributes: options.i18nAttributes || options.attributes || {}
23
- };
24
- }
25
-
26
- addCustomAttributeToDynamicScriptTags(mainTemplate) {
27
- const {
28
- jsAttributes,
29
- cssAttributes,
30
- i18nAttributes
31
- } = this.options; // NOTE: To add custom Attributes to js Script tags
32
-
33
- mainTemplate.hooks.jsonpScript.tap('CustomAttributePlugin', source => {
34
- const str = attributeSetTemplate(jsAttributes, 'script');
35
- return _Template.default.asString([source, ...str]);
36
- }); // NOTE: To add custom Attributes to css link tags
37
-
38
- mainTemplate.hooks.requireEnsure.tap('CustomAttributePlugin', source => {
39
- const str = attributeSetTemplate(cssAttributes, 'linkTag');
40
- const replacedStr = source.replace('head.appendChild(linkTag);', `${str.join('')}head.appendChild(linkTag);`); // console.log({ s: source, r: replacedStr });
41
-
42
- return replacedStr;
43
- }); // NOTE: To add custom Attributes to i18n split js Script tags
44
-
45
- mainTemplate.hooks.requireEnsure.tap('CustomAttributePlugin', source => {
46
- const str = attributeSetTemplate(i18nAttributes, 'scriptTag');
47
- const replacedStr = source.replace('document.body.appendChild(scriptTag);', `${str.join('')}document.body.appendChild(scriptTag);`); // console.log({ s: source, r: replacedStr });
48
-
49
- return replacedStr;
50
- });
51
- }
52
-
53
- apply(compiler) {
54
- // NOTE: we not using this, Reason currently this option is only need for EFC,
55
- // So it do not needed.
56
- const {
57
- attributes,
58
- useHTMLAttribute
59
- } = this.options;
60
- useHTMLAttribute && new _htmlWebpackInjectAttributesPlugin.default(attributes).apply(compiler);
61
- compiler.hooks.thisCompilation.tap({
62
- name: 'CustomAttributePlugin',
63
- stage: 1,
64
- fn: compilation => {
65
- this.addCustomAttributeToDynamicScriptTags(compilation.mainTemplate);
66
- }
67
- });
68
- }
69
-
70
- }
71
-
72
- exports.CustomAttributePlugin = CustomAttributePlugin;
73
-
74
- function attributeSetTemplate(jsAttributes, variableName) {
75
- let str = [];
76
- Object.keys(jsAttributes).forEach(key => {
77
- const val = jsAttributes[key];
78
- str.push(`${variableName}.setAttribute(${JSON.stringify(key)}, ${JSON.stringify(val)});`);
79
- }); // console.log({ str });
80
-
81
- return str;
82
- }
@@ -1,35 +0,0 @@
1
- # CustomAttributePlugin
2
- In this plugin we added all dynamic chunks tags (like js script tags , css script tags, i18n split script tags) to extra custom attribute
3
-
4
- ## Options
5
-
6
- ```json
7
- {
8
- "name": "some",
9
- "react-cli": {
10
- "app": {
11
- "customAttributes": {// this is the all options
12
- "enable": false,
13
- "attributes": null,
14
- "jsAttributes": null,
15
- "cssAttributes": null,
16
- "i18nAttributes": null
17
- }
18
- }
19
- }
20
- ```
21
-
22
- ### enable [Boolean]
23
- this decides is this plugin or feature needs to be enabled of not.
24
-
25
-
26
- ### attributes [Object]
27
- It was object of key value pairs Example Given Option {"data-app-name":"myapp"}
28
- Then all dynamically (js script tags , css script tags, i18n split script tags) added tags via webpack
29
-
30
- ### jsAttributes [Object]
31
- same as [attributes] but only for js script tags
32
- ### cssAttributes [Object]
33
- same as [attributes] but only for css script tags
34
- ### i18nAttributes [Object]
35
- same as [attributes] but only for i18n split script tags
@@ -1,43 +0,0 @@
1
- "use strict";
2
-
3
- const {
4
- Template
5
- } = require('webpack');
6
-
7
- const plugInName = 'EFCResourceCleanup';
8
- module.exports = class EfcResouceCleanupPlugin {
9
- constructor(options) {
10
- this.options = options;
11
- }
12
-
13
- apply(compiler) {
14
- compiler.hooks.thisCompilation.tap(plugInName, ({
15
- mainTemplate
16
- }) => {
17
- mainTemplate.hooks.afterStartup.tap(plugInName, source => {
18
- const {
19
- attributes,
20
- globalCacheObj
21
- } = this.options;
22
- const attributesArr = Object.entries(attributes);
23
- const [[attributekey, attributeValue]] = attributesArr;
24
- const resourceSelector = `[${attributekey}="${attributeValue}"]`;
25
- return Template.asString([source, Template.indent([` window['${globalCacheObj}Jsonp'].unInstall = function() {
26
- Object.keys(installedModules).forEach(installedModulesKey => installedModules[installedModulesKey] = null);
27
- Object.keys(modules).forEach(moduleKey => modules[moduleKey] = null);
28
- `, `
29
- installedModules = null;
30
- modules = null;
31
- __webpack_require__.m = null;
32
- __webpack_require__.c = null;
33
-
34
- `, attributekey && attributeValue ? `
35
- const addedResources = document.querySelectorAll('${resourceSelector}');
36
- addedResources.forEach(addedResource => addedResource.remove());
37
- }
38
- ` : ''])]);
39
- });
40
- });
41
- }
42
-
43
- };