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

Sign up to get free protection for your applications and to get access to all the features.
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
- };