@zohodesk/react-cli 1.1.6 → 1.1.8-exp.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 (134) hide show
  1. package/.eslintignore +7 -7
  2. package/.eslintrc.js +180 -180
  3. package/.prettierrc +6 -6
  4. package/Changelog.md +1019 -1019
  5. package/README.md +1293 -1244
  6. package/bin/cli.js +497 -497
  7. package/docs/ComposeMinification.md +13 -13
  8. package/docs/CustomChunks.md +29 -26
  9. package/docs/DevServerPort.md +39 -39
  10. package/docs/DevStart.md +18 -18
  11. package/docs/HoverActive.md +12 -12
  12. package/docs/InstallNode.md +28 -28
  13. package/docs/MarkdownParser.md +18 -0
  14. package/docs/ReactLive.md +13 -13
  15. package/docs/SelectorWeight.md +8 -8
  16. package/docs/TODOS.md +10 -10
  17. package/docs/ValueReplacer.md +60 -60
  18. package/docs/VariableConversion.md +729 -729
  19. package/docs/patternFiltering.md +56 -56
  20. package/docs/warnings_while_install.txt +35 -35
  21. package/files/eslintrc.js +62 -62
  22. package/files/prettierrc.js +3 -3
  23. package/lib/common/splitChunks.js +65 -45
  24. package/lib/common/testPattern.js +9 -9
  25. package/lib/configs/webpack.css.umd.config.js +4 -4
  26. package/lib/configs/webpack.dev.config.js +24 -3
  27. package/lib/configs/webpack.docs.config.js +22 -3
  28. package/lib/configs/webpack.impact.config.js +4 -2
  29. package/lib/configs/webpack.prod.config.js +6 -3
  30. package/lib/deprecationLogger.js +41 -0
  31. package/lib/loaderUtils/configsAssetsLoaders.js +33 -33
  32. package/lib/loaderUtils/getCSSLoaders.js +77 -56
  33. package/lib/loaders/__test__/markdownLoader.spec.js +145 -0
  34. package/lib/loaders/docsLoader.js +3 -0
  35. package/lib/loaders/markdownLoader.js +71 -0
  36. package/lib/loaders/workerLoader.js +9 -9
  37. package/lib/pluginUtils/getDevPlugins.js +8 -7
  38. package/lib/pluginUtils/getProdPlugins.js +6 -6
  39. package/lib/plugins/CustomAttributePlugin.md +35 -35
  40. package/lib/plugins/EFCPlugin.md +6 -6
  41. package/lib/plugins/I18NInjectIntoIndexPlugin.js +4 -4
  42. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +38 -38
  43. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +30 -30
  44. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +8 -8
  45. package/lib/plugins/I18nSplitPlugin/I18nSplit.md +95 -95
  46. package/lib/plugins/I18nSplitPlugin/README.md +25 -25
  47. package/lib/plugins/I18nSplitPlugin/index.js +57 -57
  48. package/lib/plugins/ResourceHintsPlugin.js +30 -20
  49. package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +6 -6
  50. package/lib/plugins/RtlSplitPlugin/RtrSplit.md +30 -30
  51. package/lib/plugins/SelectorPlugin.js +29 -29
  52. package/lib/plugins/ServiceWorkerPlugin.js +9 -9
  53. package/lib/plugins/TPHashMappingPlugin.js +4 -4
  54. package/lib/plugins/VariableConversionCollector.js +59 -59
  55. package/lib/plugins/utils/fileHandling.js +35 -42
  56. package/lib/plugins/variableConvertorUtils.js +9 -9
  57. package/lib/postcss-plugins/RTLSplitPlugin.js +10 -10
  58. package/lib/postcss-plugins/__test__/test1Input.css +38 -38
  59. package/lib/postcss-plugins/__test__/test1Output.css +38 -38
  60. package/lib/postcss-plugins/hoverActivePlugin.js +3 -3
  61. package/lib/schemas/index.js +23 -36
  62. package/lib/sh/pre-commit.sh +34 -34
  63. package/lib/sh/reportPublish.sh +45 -45
  64. package/lib/utils/buildstats.html +148 -148
  65. package/lib/utils/cssClassNameGenerate.js +13 -13
  66. package/lib/utils/deprecationSupport.js +144 -0
  67. package/lib/utils/getOptions.js +18 -78
  68. package/lib/utils/resultSchema.json +73 -73
  69. package/npm-shrinkwrap.json +33393 -33393
  70. package/npm8.md +9 -9
  71. package/package.json +123 -122
  72. package/postpublish.js +8 -8
  73. package/result.json +1 -0
  74. package/templates/app/.eslintrc.js +140 -140
  75. package/templates/app/README.md +12 -12
  76. package/templates/app/app/index.html +24 -24
  77. package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
  78. package/templates/app/app/properties/i18nkeys.json +3 -3
  79. package/templates/app/docs/all.html +69 -69
  80. package/templates/app/mockapi/index.js +18 -18
  81. package/templates/app/package.json +37 -37
  82. package/templates/app/src/actions/SampleActions/index.js +37 -37
  83. package/templates/app/src/actions/index.js +65 -65
  84. package/templates/app/src/appUrls.js +19 -19
  85. package/templates/app/src/components/Alert/Alert.js +134 -134
  86. package/templates/app/src/components/Alert/Alert.module.css +79 -79
  87. package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -37
  88. package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -84
  89. package/templates/app/src/components/Sample/Sample.module.css +11 -11
  90. package/templates/app/src/components/Sample/SampleList.js +61 -61
  91. package/templates/app/src/components/Slider/Slider.css +41 -41
  92. package/templates/app/src/components/Slider/Slider.js +55 -55
  93. package/templates/app/src/containers/AlertContainer/index.js +15 -15
  94. package/templates/app/src/containers/AppContainer/index.js +96 -96
  95. package/templates/app/src/containers/AppContainer/index.module.css +27 -27
  96. package/templates/app/src/containers/CustomMatch/index.js +65 -65
  97. package/templates/app/src/containers/DevTools/index.js +10 -10
  98. package/templates/app/src/containers/Header/index.js +67 -67
  99. package/templates/app/src/containers/Header/index.module.css +43 -43
  100. package/templates/app/src/containers/Redirect/index.js +63 -63
  101. package/templates/app/src/containers/Redirector/index.js +47 -47
  102. package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -42
  103. package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -3
  104. package/templates/app/src/historyChange.js +5 -5
  105. package/templates/app/src/index.html +10 -10
  106. package/templates/app/src/index.js +24 -24
  107. package/templates/app/src/middleware/PromiseMiddleware.js +59 -59
  108. package/templates/app/src/reducers/alertData.js +11 -11
  109. package/templates/app/src/reducers/index.js +6 -6
  110. package/templates/app/src/reducers/samples.js +19 -19
  111. package/templates/app/src/store/configureStore.dev.js +51 -51
  112. package/templates/app/src/store/configureStore.js +5 -5
  113. package/templates/app/src/store/configureStore.prod.js +26 -26
  114. package/templates/app/src/util/Common.js +5 -5
  115. package/templates/app/src/util/RequestAPI.js +132 -132
  116. package/templates/docs/all.html +250 -249
  117. package/templates/docs/component.html +179 -178
  118. package/templates/docs/components.html +222 -221
  119. package/templates/docs/css/b.min.css +6 -6
  120. package/templates/docs/css/component.css +42 -42
  121. package/templates/docs/css/componentTest.css +6 -6
  122. package/templates/docs/css/hopscotch.css +585 -585
  123. package/templates/docs/css/markdown.css +202 -0
  124. package/templates/docs/css/style.css +1022 -1022
  125. package/templates/docs/impactReportTemplate.html +154 -154
  126. package/templates/docs/index.html +1502 -1501
  127. package/templates/docs/js/active-line.js +72 -72
  128. package/templates/docs/js/b.min.js +7 -7
  129. package/templates/docs/js/codemirror.js +9680 -9680
  130. package/templates/docs/js/designTokens.js +334 -334
  131. package/templates/docs/js/j.min.js +4 -4
  132. package/templates/docs/js/javascript.js +874 -874
  133. package/templates/docs/js/matchbrackets.js +145 -145
  134. package/unittest/index.html +37 -0
@@ -1,148 +1,148 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
5
- <style>
6
- #file {
7
- font-family: 'Trebuchet MS', Arial, Helvetica, sans-serif;
8
- border-collapse: collapse;
9
- width: 100%;
10
- }
11
- #redTd {
12
- color: red;
13
- }
14
- #greenTD {
15
- color: green;
16
- }
17
- #file td,
18
- #file th {
19
- border: 1px solid #ddd;
20
- padding: 8px;
21
- text-align: center;
22
- }
23
-
24
- #file tr:nth-child(even) {
25
- background-color: #f2f2f2;
26
- }
27
-
28
- #file tr:hover {
29
- background-color: #ddd;
30
- }
31
-
32
- #file th {
33
- padding-top: 12px;
34
- padding-bottom: 12px;
35
- background-color: #2a2d36;
36
- color: white;
37
- }
38
- #sizeTable {
39
- float: left;
40
- width: 50%;
41
- }
42
- #hashTable {
43
- display: inline-block;
44
- width: 50%;
45
- }
46
- </style>
47
- <script type="text/javascript" src="./buildtrack.js"></script>
48
- </head>
49
- <body>
50
- <div>
51
- <div style="float: left;margin-right: 10px;">Branch Name:</div>
52
- <h4 id="h4" style="margin: 0px;"></h4>
53
- </div>
54
- <div id="sizeTable">
55
- <div>
56
- <h3>Size changes</h3>
57
- <h3></h3>
58
- </div>
59
- <table id="file" class="table table-bordered table-hover table-condensed">
60
- <thead>
61
- <tr>
62
- <th title="Field #1">Name</th>
63
- <th title="Field #2">Size / Diff</th>
64
- <th title="Field #3">Size / Old</th>
65
- <th title="Field #4">Size / New</th>
66
- </tr>
67
- </thead>
68
- <tbody id="sizeTbody"></tbody>
69
- </table>
70
- </div>
71
- <div id="hashTable">
72
- <div>
73
- <h3>Hash changes</h3>
74
- <h3></h3>
75
- </div>
76
- <table id="file" class="table table-bordered table-hover table-condensed">
77
- <thead>
78
- <tr>
79
- <th style="background-color: #4CAF50;" title="Field #1">Name</th>
80
- <th style="background-color: #4CAF50;" title="Field #2">
81
- Hash / Old
82
- </th>
83
- <th style="background-color: #4CAF50;" title="Field #3">
84
- Hash / New
85
- </th>
86
- </tr>
87
- </thead>
88
- <tbody id="hashTbody"></tbody>
89
- </table>
90
- </div>
91
-
92
- <script type="text/javascript">
93
- function load() {
94
- if (statsJson) {
95
- var tdStringSize = '';
96
- var tdStringHash = '';
97
- if (statsJson.increased.length > 0) {
98
- statsJson.increased.forEach(fileObj => {
99
- let colorTD = '</td><td>';
100
- if (fileObj.size.diff.split(' ').length > 2) {
101
- colorTD = '</td><td id="greenTd">';
102
- } else {
103
- colorTD = '</td><td id="redTd">';
104
- }
105
-
106
- tdStringSize =
107
- tdStringSize +
108
- '<tr><td>' +
109
- fileObj.name +
110
- colorTD +
111
- fileObj.size.diff +
112
- '</td><td>' +
113
- fileObj.size.old +
114
- '</td><td>' +
115
- fileObj.size.new +
116
- '</td><tr>';
117
- });
118
- } else {
119
- tdStringSize = '<tr><td></td><td></td><td></td></tr>';
120
- }
121
- document.getElementById('sizeTbody').innerHTML = tdStringSize;
122
- if (statsJson.hashChanged.length > 0) {
123
- statsJson.hashChanged.forEach(fileObj => {
124
- tdStringHash =
125
- tdStringHash +
126
- '<tr><td>' +
127
- fileObj.name +
128
- '</td><td>' +
129
- fileObj.hash.old +
130
- '</td><td>' +
131
- fileObj.hash.new +
132
- '</td><tr>';
133
- });
134
- } else {
135
- tdStringHash = '<tr><td></td><td></td><td></td></tr>';
136
- }
137
- document.getElementById('hashTbody').innerHTML = tdStringHash;
138
- if (statsJson.branchName) {
139
- document.getElementById('h4').innerHTML = statsJson.branchName;
140
- } else {
141
- document.getElementById('h4').innerHTML = 'Not specified';
142
- }
143
- }
144
- }
145
- load();
146
- </script>
147
- </body>
148
- </html>
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
5
+ <style>
6
+ #file {
7
+ font-family: 'Trebuchet MS', Arial, Helvetica, sans-serif;
8
+ border-collapse: collapse;
9
+ width: 100%;
10
+ }
11
+ #redTd {
12
+ color: red;
13
+ }
14
+ #greenTD {
15
+ color: green;
16
+ }
17
+ #file td,
18
+ #file th {
19
+ border: 1px solid #ddd;
20
+ padding: 8px;
21
+ text-align: center;
22
+ }
23
+
24
+ #file tr:nth-child(even) {
25
+ background-color: #f2f2f2;
26
+ }
27
+
28
+ #file tr:hover {
29
+ background-color: #ddd;
30
+ }
31
+
32
+ #file th {
33
+ padding-top: 12px;
34
+ padding-bottom: 12px;
35
+ background-color: #2a2d36;
36
+ color: white;
37
+ }
38
+ #sizeTable {
39
+ float: left;
40
+ width: 50%;
41
+ }
42
+ #hashTable {
43
+ display: inline-block;
44
+ width: 50%;
45
+ }
46
+ </style>
47
+ <script type="text/javascript" src="./buildtrack.js"></script>
48
+ </head>
49
+ <body>
50
+ <div>
51
+ <div style="float: left;margin-right: 10px;">Branch Name:</div>
52
+ <h4 id="h4" style="margin: 0px;"></h4>
53
+ </div>
54
+ <div id="sizeTable">
55
+ <div>
56
+ <h3>Size changes</h3>
57
+ <h3></h3>
58
+ </div>
59
+ <table id="file" class="table table-bordered table-hover table-condensed">
60
+ <thead>
61
+ <tr>
62
+ <th title="Field #1">Name</th>
63
+ <th title="Field #2">Size / Diff</th>
64
+ <th title="Field #3">Size / Old</th>
65
+ <th title="Field #4">Size / New</th>
66
+ </tr>
67
+ </thead>
68
+ <tbody id="sizeTbody"></tbody>
69
+ </table>
70
+ </div>
71
+ <div id="hashTable">
72
+ <div>
73
+ <h3>Hash changes</h3>
74
+ <h3></h3>
75
+ </div>
76
+ <table id="file" class="table table-bordered table-hover table-condensed">
77
+ <thead>
78
+ <tr>
79
+ <th style="background-color: #4CAF50;" title="Field #1">Name</th>
80
+ <th style="background-color: #4CAF50;" title="Field #2">
81
+ Hash / Old
82
+ </th>
83
+ <th style="background-color: #4CAF50;" title="Field #3">
84
+ Hash / New
85
+ </th>
86
+ </tr>
87
+ </thead>
88
+ <tbody id="hashTbody"></tbody>
89
+ </table>
90
+ </div>
91
+
92
+ <script type="text/javascript">
93
+ function load() {
94
+ if (statsJson) {
95
+ var tdStringSize = '';
96
+ var tdStringHash = '';
97
+ if (statsJson.increased.length > 0) {
98
+ statsJson.increased.forEach(fileObj => {
99
+ let colorTD = '</td><td>';
100
+ if (fileObj.size.diff.split(' ').length > 2) {
101
+ colorTD = '</td><td id="greenTd">';
102
+ } else {
103
+ colorTD = '</td><td id="redTd">';
104
+ }
105
+
106
+ tdStringSize =
107
+ tdStringSize +
108
+ '<tr><td>' +
109
+ fileObj.name +
110
+ colorTD +
111
+ fileObj.size.diff +
112
+ '</td><td>' +
113
+ fileObj.size.old +
114
+ '</td><td>' +
115
+ fileObj.size.new +
116
+ '</td><tr>';
117
+ });
118
+ } else {
119
+ tdStringSize = '<tr><td></td><td></td><td></td></tr>';
120
+ }
121
+ document.getElementById('sizeTbody').innerHTML = tdStringSize;
122
+ if (statsJson.hashChanged.length > 0) {
123
+ statsJson.hashChanged.forEach(fileObj => {
124
+ tdStringHash =
125
+ tdStringHash +
126
+ '<tr><td>' +
127
+ fileObj.name +
128
+ '</td><td>' +
129
+ fileObj.hash.old +
130
+ '</td><td>' +
131
+ fileObj.hash.new +
132
+ '</td><tr>';
133
+ });
134
+ } else {
135
+ tdStringHash = '<tr><td></td><td></td><td></td></tr>';
136
+ }
137
+ document.getElementById('hashTbody').innerHTML = tdStringHash;
138
+ if (statsJson.branchName) {
139
+ document.getElementById('h4').innerHTML = statsJson.branchName;
140
+ } else {
141
+ document.getElementById('h4').innerHTML = 'Not specified';
142
+ }
143
+ }
144
+ }
145
+ load();
146
+ </script>
147
+ </body>
148
+ </html>
@@ -54,19 +54,19 @@ var _default = (unique = true, {
54
54
  const cleanFileName = fileNameWithoutExt.replace(/-/g, '_').toLowerCase();
55
55
 
56
56
  const relativePath = _path.default.relative(context.rootContext, context.resourcePath);
57
- /*
58
- input :
59
- context.resourcePath : 'D:/MyWork/..../desk_client_app/supportapp/src/components/Avatar/Avatar.module.css,
60
-
61
- patterns.cssVariableReplacement:
62
- // include src folder, include deskapp folder, exclude node modules
63
- "cssUniqueness": [
64
- "src",
65
- "deskapp",
66
- "!node_modules"
67
- ]
68
- output :
69
- true or false
57
+ /*
58
+ input :
59
+ context.resourcePath : 'D:/MyWork/..../desk_client_app/supportapp/src/components/Avatar/Avatar.module.css,
60
+
61
+ patterns.cssVariableReplacement:
62
+ // include src folder, include deskapp folder, exclude node modules
63
+ "cssUniqueness": [
64
+ "src",
65
+ "deskapp",
66
+ "!node_modules"
67
+ ]
68
+ output :
69
+ true or false
70
70
  */
71
71
 
72
72
 
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.deprecationSupport = deprecationSupport;
7
+
8
+ var _path = _interopRequireDefault(require("path"));
9
+
10
+ var deprecationHandlers = _interopRequireWildcard(require("../deprecationLogger"));
11
+
12
+ var _windowsModification = require("../loaderUtils/windowsModification");
13
+
14
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
+
16
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ let {
21
+ deprecateMessage,
22
+ deprecateOption,
23
+ deprecationLoggerEnd
24
+ } = deprecationHandlers;
25
+
26
+ function modifyCssArr(arr) {
27
+ return arr.map(x => {
28
+ const includeCss = !x.startsWith('!');
29
+ const modifier = includeCss ? '/*.css' : '';
30
+ const filePath = x.replace(/^!/, ''); // Remove the "!" symbol if present
31
+
32
+ return (0, _windowsModification.windowsModificationFile)(_path.default.join(includeCss ? '**' : '!**', filePath, '**', modifier));
33
+ });
34
+ }
35
+
36
+ function deprecationSupport(options) {
37
+ // if (options.disableDeprecationWarning) {
38
+ // // eslint-disable-next-line no-empty-function
39
+ // deprecateMessage = () => {};
40
+ // // eslint-disable-next-line no-empty-function
41
+ // deprecateOption = () => {};
42
+ // // eslint-disable-next-line no-empty-function
43
+ // deprecationLoggerEnd = () => {};
44
+ // }
45
+ options.app.plugins = options.app.plugins || {
46
+ valueReplacer: false,
47
+ hasRTL: false,
48
+ selectorReplace: false,
49
+ hoverActive: false,
50
+ combinerMediaQuery: false,
51
+ cssVariableReplacement: false,
52
+ selectorWeight: false,
53
+ minifier: false,
54
+ composeMinification: false
55
+ };
56
+ options.docs.plugins = options.docs.plugins || {
57
+ valueReplacer: false,
58
+ hasRTL: false,
59
+ selectorReplace: false,
60
+ hoverActive: false,
61
+ combinerMediaQuery: false,
62
+ cssVariableReplacement: false,
63
+ selectorWeight: false,
64
+ minifier: false,
65
+ composeMinification: false
66
+ };
67
+ options.css.plugins = options.css.plugins || {
68
+ valueReplacer: false,
69
+ hasRTL: false,
70
+ selectorReplace: false,
71
+ hoverActive: false,
72
+ combinerMediaQuery: false,
73
+ cssVariableReplacement: false,
74
+ selectorWeight: false,
75
+ minifier: false,
76
+ composeMinification: false
77
+ }; // deprecationLoggerStart();
78
+ // if (selectn(options, ".app.hasRTL") === true) {
79
+
80
+ if (options.app.hasRTL === true) {
81
+ deprecateOption('app.hasRTL', 'app.plugins.hasRTL');
82
+ options.app.plugins.hasRTL = true;
83
+ }
84
+
85
+ if (options.docs.hasRTL === true) {
86
+ deprecateOption('docs.hasRTL', 'docs.plugins.hasRTL');
87
+ options.docs.plugins.hasRTL = true;
88
+ }
89
+
90
+ if (options.app.selectorReplace !== null) {
91
+ deprecateMessage('when you use app.selectorReplace mention enable or disable app.plugins.selectorReplace by setting value to true or false');
92
+ options.app.plugins.selectorReplace = true;
93
+ }
94
+
95
+ if (options.docs.selectorReplace !== null) {
96
+ deprecateMessage('when you use app.selectorReplace mention enable or disable app.plugins.selectorReplace by setting value to true or false');
97
+ options.docs.plugins.selectorReplace = true;
98
+ }
99
+
100
+ if (options.css.valueReplacer !== null) {
101
+ deprecateMessage('when you use app.valueReplacer mention enable or disable app.plugins.valueReplacer by setting value to true or false');
102
+ options.app.plugins.valueReplacer = true;
103
+ }
104
+
105
+ if (!options.app.patterns) {
106
+ options.app.patterns = {};
107
+ }
108
+
109
+ function handleRTL(rtlExclude, rtl, hasRTL, type) {
110
+ if (rtlExclude && rtlExclude.length > 0) {
111
+ options[type].patterns.hasRTL = modifyCssArr(rtlExclude);
112
+ deprecateOption(`${type}.rtlExclude`, `${type}.patterns.hasRTL`);
113
+ }
114
+
115
+ if (rtl && rtl.length > 0) {
116
+ options[type].patterns.hasRTL = modifyCssArr(rtl);
117
+ deprecateOption(`${type}.exclude.rtl`, `${type}.patterns.hasRTL`);
118
+ }
119
+
120
+ if (hasRTL && hasRTL.length > 0) {
121
+ options[type].patterns.hasRTL = modifyCssArr(hasRTL);
122
+ deprecateOption(`${type}.exclude.hasRTL`, `${type}.patterns.hasRTL`);
123
+ }
124
+ }
125
+
126
+ function addExcludesToPattern(patterns, exclude, type) {
127
+ Object.keys(patterns).forEach(key => {
128
+ if (exclude[key] && patterns[key].length === 0) {
129
+ deprecateOption(`${type}.exclude.${key}`, `${type}.patterns.${key}`);
130
+ let tempArr = exclude[key];
131
+ tempArr = tempArr.map(x => _path.default.join('!**', x, '**')); // Since patterns[key] is empty we need to wildcard for allow all others.
132
+
133
+ tempArr.unshift('*');
134
+ patterns[key] = tempArr;
135
+ }
136
+ });
137
+ }
138
+
139
+ handleRTL(options.app.rtlExclude, options.app.exclude.rtl, options.app.exclude.hasRTL, 'app');
140
+ handleRTL(options.docs.rtlExclude, options.docs.exclude.rtl, options.docs.exclude.hasRTL, 'docs');
141
+ addExcludesToPattern(options.app.patterns, options.app.exclude, 'app');
142
+ addExcludesToPattern(options.docs.patterns, options.docs.exclude), 'docs';
143
+ deprecationLoggerEnd();
144
+ }
@@ -7,14 +7,20 @@ exports.default = void 0;
7
7
 
8
8
  var _child_process = require("child_process");
9
9
 
10
- var _fs = _interopRequireDefault(require("fs"));
10
+ var _fs = _interopRequireWildcard(require("fs"));
11
11
 
12
12
  var _path = _interopRequireDefault(require("path"));
13
13
 
14
14
  var _schemas = _interopRequireDefault(require("../schemas"));
15
15
 
16
+ var _deprecationSupport = require("./deprecationSupport");
17
+
16
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
19
 
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+
22
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
+
18
24
  // import { argv } from 'process';
19
25
  const args = process.argv.slice(2); // console.log('argv', argv);
20
26
 
@@ -122,85 +128,19 @@ const defaulter = (target, source) => {
122
128
  return defaultObject;
123
129
  };
124
130
 
125
- global.reactCLIOptions = null; // function selectn(obj, key) {
126
- // let temp = obj;
127
- // let keys = key.split('.');
128
- // for (let i = 0; i < keys.length; i++) {
129
- // const element = keys[i];
130
- // temp = temp && temp[element];
131
- // }
132
- // return temp;
133
- // }
134
-
135
- function deprecationSupport(options) {
136
- // if (selectn(options, ".app.hasRTL") === true) {
137
- if (options.app.hasRTL === true) {
138
- options.app.plugins.hasRTL = true;
139
- }
140
-
141
- if (options.docs.hasRTL === true) {
142
- options.docs.plugins.hasRTL = true;
143
- }
144
-
145
- if (options.app.rtlExclude.length > 0) {
146
- options.app.exclude.rtl = options.app.rtlExclude;
147
- }
131
+ global.reactCLIOptions = null;
148
132
 
149
- if (options.docs.rtlExclude.length > 0) {
150
- options.docs.exclude.rtl = options.docs.rtlExclude;
151
- }
133
+ const getOptionsFromConfigFile = (appPath, configFileName) => {
134
+ const fileName = configFileName || 'build.config.js';
152
135
 
153
- if (options.app.selectorReplace !== null) {
154
- options.app.plugins.selectorReplace = true;
155
- }
136
+ const packagePath = _path.default.join(appPath, fileName);
156
137
 
157
- if (options.docs.selectorReplace !== null) {
158
- options.docs.plugins.selectorReplace = true;
138
+ if ((0, _fs.existsSync)(packagePath)) {
139
+ return require(packagePath).config;
159
140
  }
160
141
 
161
- if (options.css.valueReplacer !== null) {
162
- options.app.plugins.valueReplacer = true;
163
- }
164
-
165
- options.app.exclude.hasRTL = options.app.exclude.rtl;
166
-
167
- if (!options.app.patterns) {
168
- options.app.patterns = {};
169
- }
170
-
171
- if (options.app.patterns.valueReplacer.length === 0) {
172
- options.app.patterns.valueReplacer = ['*'];
173
- }
174
-
175
- if (options.app.patterns.selectorReplace.length === 0) {
176
- options.app.patterns.selectorReplace = ['*'];
177
- }
178
-
179
- if (options.docs.patterns.selectorReplace.length === 0) {
180
- options.docs.patterns.selectorReplace = ['*'];
181
- }
182
-
183
- Object.keys(options.app.patterns).forEach(key => {
184
- if (options.app.exclude[key] && options.app.patterns[key].length === 0) {
185
- let tempArr = options.app.exclude[key];
186
- tempArr = tempArr.map(x => {
187
- x = x.replace(/\//gi, _path.default.sep);
188
- return `!**${x[0] === _path.default.sep || x[0] === '@' ? '' : _path.default.sep}${x}${x[x.length - 1] === _path.default.sep ? '' : _path.default.sep}**`;
189
- });
190
- options.app.patterns[key] = tempArr;
191
- }
192
- });
193
- Object.keys(options.docs.patterns).forEach(key => {
194
- if (options.docs.exclude[key] && options.docs.patterns[key].length === 0) {
195
- let tempArr = options.docs.exclude[key];
196
- tempArr = tempArr.map(x => {
197
- x = x.replace(/\//gi, _path.default.sep);
198
- return `!**${x[0] === _path.default.sep || x[0] === '@' ? '' : _path.default.sep}${x}${x[x.length - 1] === _path.default.sep ? '' : _path.default.sep}**`;
199
- });
200
- options.docs.patterns[key] = tempArr;
201
- }
202
- });
203
- }
142
+ return null;
143
+ };
204
144
 
205
145
  const getOptions = () => {
206
146
  if (global.reactCLIOptions) {
@@ -208,19 +148,19 @@ const getOptions = () => {
208
148
  }
209
149
 
210
150
  const appPath = process.cwd();
211
- let userSchemas;
151
+ let userSchemas = getOptionsFromConfigFile(appPath, processEnv.config_file);
212
152
 
213
153
  const packagePath = _path.default.join(appPath, 'package.json');
214
154
 
215
155
  if (_fs.default.existsSync(packagePath)) {
216
- userSchemas = require(packagePath)['react-cli'] || {};
156
+ userSchemas = userSchemas || require(packagePath)['react-cli'] || {};
217
157
  }
218
158
 
219
159
  const options = defaulter(_schemas.default, userSchemas || {}); // for future may be for npm 8 edge cases
220
160
 
221
161
  options.npmVersion = getNpmVersion();
222
162
  options.cwd = getCWD();
223
- deprecationSupport(options);
163
+ (0, _deprecationSupport.deprecationSupport)(options);
224
164
  options.packageVersion = process.env.npm_package_version;
225
165
  global.reactCLIOptions = options;
226
166
  return options;