@zohodesk/react-cli 1.1.8 → 1.1.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -12,14 +12,21 @@ const {
12
12
  const pluginName = 'prefetch-preload-chunk-plugin';
13
13
 
14
14
  class ResourceHintsPlugin {
15
+ constructor(options) {
16
+ this.options = options;
17
+ }
18
+
15
19
  apply(compiler) {
16
20
  compiler.hooks.thisCompilation.tap(pluginName, ({
17
21
  mainTemplate
18
22
  }) => {
19
23
  mainTemplate.hooks.requireExtensions.tap(pluginName, (source, chunk, hash) => {
24
+ const {
25
+ allowPrefetchingMultipleChunks
26
+ } = this.options;
20
27
  const idNameMap = chunk.getChunkMaps().name;
21
28
  const nameIdMap = {};
22
- let needsMap = false;
29
+ let needsMap = allowPrefetchingMultipleChunks;
23
30
 
24
31
  for (const key in idNameMap) {
25
32
  if (Object.prototype.hasOwnProperty.call(idNameMap, key)) {
@@ -32,7 +39,10 @@ class ResourceHintsPlugin {
32
39
  }
33
40
  }
34
41
 
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);`]), '};',
42
+ return Template.asString([source, Template.indent([`const nameToChunkIdMap = ${JSON.stringify(needsMap ? nameIdMap : {})};`, 'const chunkNames = Object.keys(nameToChunkIdMap);']), `${mainTemplate.requireFn}.getChunkIds = function getChunkIds(chunkId) {`, Template.indent([allowPrefetchingMultipleChunks ? `const isRegExAsChunkId = chunkId instanceof RegExp;
43
+ return isRegExAsChunkId ? chunkNames.filter(chunkName => chunkId.test(chunkName)).map(chunkName => nameToChunkIdMap[chunkName]) : [nameToChunkIdMap[chunkId] || chunkId];` : needsMap ? 'return [nameToChunkIdMap[chunkId] || chunkId];' : 'return [chunkId];']), '}', `// Prefetch a chunk (${pluginName})`, `${mainTemplate.requireFn}.pfc = function prefetchChunk(chunkId) {`, Template.indent([`let chunkIds = ${mainTemplate.requireFn}.getChunkIds(chunkId)`, `chunkIds.forEach(idOfAChunk => {
44
+ ${mainTemplate.requireFn}.e(idOfAChunk);
45
+ })`]), '};',
36
46
  /*
37
47
  (needsMap
38
48
  ? [`chunkId = ${JSON.stringify(nameIdMap)}[chunkId]||chunkId;`]
@@ -53,7 +63,7 @@ class ResourceHintsPlugin {
53
63
  ),
54
64
  '}',
55
65
  */
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];',
66
+ `// Preload a chunk (${pluginName})`, `${mainTemplate.requireFn}.plc = function preloadChunk(chunkId) {`, Template.indent([`chunkId = ${mainTemplate.requireFn}.getChunkIds(chunkId)[0]`, '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
67
  // mainTemplate.hooks.jsonpScript.call('', chunk, hash),
58
68
  // 'head.appendChild(script);'
59
69
  ]), '}']), '};']);
@@ -11,6 +11,8 @@ var _fs = _interopRequireDefault(require("fs"));
11
11
 
12
12
  var _utils = require("../utils");
13
13
 
14
+ var _log = require("../utils/log");
15
+
14
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
17
 
16
18
  let excludeDocsJSON = '{}';
@@ -97,10 +99,10 @@ class UnusedFilesFindPlugin {
97
99
  Object.keys(unDocsCompObj).forEach(key => {
98
100
  if (unDocsCompObj[key].length > 0) {
99
101
  if (key === 'withoutDocs') {
100
- (0, _utils.log)('\x1b[36m%s\x1b[0m', '\nPlease write docs file for below componenst :- \n');
102
+ (0, _log.log)('\x1b[36m%s\x1b[0m', '\nPlease write docs file for below componenst :- \n');
101
103
  unDocsCompObj[key].forEach(value => {
102
104
  if (!excludeDocsArray.docs.exclude.includes(value)) {
103
- (0, _utils.log)('\x1b[33m%s\x1b[0m', `${value}`);
105
+ (0, _log.log)('\x1b[33m%s\x1b[0m', `${value}`);
104
106
  }
105
107
  });
106
108
  }
@@ -162,10 +164,10 @@ class UnusedFilesFindPlugin {
162
164
  });
163
165
 
164
166
  if (!unusedFiles.length) {
165
- (0, _utils.log)('There is no unused files');
167
+ (0, _log.log)('There is no unused files');
166
168
  } else {
167
169
  if (this.outputFileName) {
168
- (0, _utils.log)(`You can see unused files info from ${_path.default.join(outputPath, this.outputFileName)} path`);
170
+ (0, _log.log)(`You can see unused files info from ${_path.default.join(outputPath, this.outputFileName)} path`);
169
171
  (0, _utils.makeDir)(outputPath);
170
172
  (0, _utils.writeFile)(_path.default.join(outputPath, this.outputFileName), JSON.stringify(unusedFiles)).then(() => {
171
173
  if (this.sstest) {
@@ -179,7 +181,7 @@ class UnusedFilesFindPlugin {
179
181
  unusedFiles.forEach(file => {
180
182
  _fs.default.unlinkSync(file);
181
183
 
182
- (0, _utils.log)(`Deleted - ${file}`);
184
+ (0, _log.log)(`Deleted - ${file}`);
183
185
  });
184
186
  }
185
187
  });
@@ -6,15 +6,13 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.isFileNameMatchingPattern = isFileNameMatchingPattern;
7
7
  exports.isFileNameMatchingPluginPattern = isFileNameMatchingPluginPattern;
8
8
 
9
- var _windowsModification = require("../../loaderUtils/windowsModification");
10
-
11
9
  var _ignore = _interopRequireDefault(require("ignore"));
12
10
 
13
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
12
 
15
13
  const path = require('path');
16
14
 
17
- let aliasNames = {
15
+ const aliasNames = {
18
16
  valueReplacer: 'postcss-value-replacer',
19
17
  selectorReplace: 'postcss-selector-replace-new',
20
18
  hasRTL: 'postcss-rtl',
@@ -48,48 +46,47 @@ unique scenario
48
46
  function isFileNameMatchingPattern({
49
47
  filename,
50
48
  filterObject,
51
- plugins
49
+ plugins,
50
+ order
52
51
  }) {
52
+ const pluginObj = {};
53
+ plugins.forEach(p => {
54
+ pluginObj[p.postcssPlugin] = p;
55
+ });
53
56
  const finalPlugins = [];
54
- Object.keys(filterObject).forEach(key => {
55
- plugins.forEach(x => {
56
- if (aliasNames[key] === x.postcssPlugin) {
57
- const ig = (0, _ignore.default)({
58
- allowRelativePaths: true
59
- }).add(filterObject[key]);
60
-
61
- if (ig.ignores(filename)) {
62
- finalPlugins.push(x);
63
- }
57
+ order.forEach(key => {
58
+ const p = pluginObj[aliasNames[key]];
59
+ const pluginSpecificFilter = filterObject[key];
60
+
61
+ if (!pluginSpecificFilter || pluginSpecificFilter.length === 0) {
62
+ finalPlugins.push(p);
63
+ } else {
64
+ // eslint-disable-next-line no-use-before-define
65
+ const isMatching = isFilePathMatchingPattern(filename, pluginSpecificFilter);
66
+
67
+ if (isMatching) {
68
+ finalPlugins.push(p);
64
69
  }
65
- });
66
- }); // console.log(filename);
67
-
68
- return finalPlugins; // console.log(filename, filterObject);
70
+ }
71
+ });
72
+ return finalPlugins;
69
73
  }
70
74
 
71
- function isFileNameMatchingPluginPattern({
72
- filename,
73
- filterArr // =process.cwd()
74
-
75
- }) {
76
- // console.log(rootDir);
77
- let include = true; // console.log(rootDir);
78
- // const regex = `^(.+?)${rootDir}?\\\\`;
79
- // console.log(plugin);
80
-
81
- const newFilename = path.relative(path.parse(process.cwd()).base, filename); // const newFilename = windowsModificationFile(filename).replace(
82
- // new RegExp(regex, 'gi'),
83
- // ''
84
- // );
75
+ function isFilePathMatchingPattern(filePath, patterns) {
76
+ if (patterns.length === 0) {
77
+ return true;
78
+ }
85
79
 
86
80
  const ig = (0, _ignore.default)({
87
81
  allowRelativePaths: true
88
- }).add(filterArr);
89
-
90
- if (!ig.ignores(newFilename)) {
91
- include = false;
92
- }
82
+ }).add(patterns);
83
+ return ig.ignores(filePath);
84
+ }
93
85
 
94
- return include;
86
+ function isFileNameMatchingPluginPattern({
87
+ filename,
88
+ filterArr
89
+ }) {
90
+ const newFilename = path.relative(path.parse(process.cwd()).base, filename);
91
+ return isFilePathMatchingPattern(newFilename, filterArr);
95
92
  }
@@ -36,6 +36,9 @@ var _default = {
36
36
  cli: 'stop_nodemon'
37
37
  }
38
38
  },
39
+ resourceHints: {
40
+ allowPrefetchingMultipleChunks: false
41
+ },
39
42
  i18n: {
40
43
  chunkSplitEnable: {
41
44
  value: false,
@@ -68,17 +71,9 @@ var _default = {
68
71
  before: [],
69
72
  after: []
70
73
  },
71
- plugins: {
72
- valueReplacer: false,
73
- selectorReplace: false,
74
- hasRTL: false,
75
- hoverActive: false,
76
- combinerMediaQuery: false,
77
- cssVariableReplacement: false,
78
- selectorWeight: false,
79
- minifier: false,
80
- composeMinification: false
81
- },
74
+ plugins: null,
75
+ // @type {Boolean | Array}
76
+ postCssPluginOrder: null,
82
77
  patterns: {
83
78
  valueReplacer: [],
84
79
  selectorReplace: [],
@@ -95,7 +90,8 @@ var _default = {
95
90
  hoverActive: [],
96
91
  combinerMediaQuery: [],
97
92
  cssVariableReplacement: [],
98
- selectorWeight: []
93
+ selectorWeight: [],
94
+ hasRTL: []
99
95
  },
100
96
  cssVariableReplacementConfig: '',
101
97
  selectorWeightConfig: {
@@ -267,17 +263,8 @@ var _default = {
267
263
  value: true,
268
264
  cli: 'enable_smaphook'
269
265
  },
270
- plugins: {
271
- valueReplacer: false,
272
- selectorReplace: false,
273
- hasRTL: false,
274
- hoverActive: false,
275
- combinerMediaQuery: false,
276
- cssVariableReplacement: false,
277
- selectorWeight: false,
278
- minifier: false,
279
- composeMinification: false
280
- },
266
+ plugins: null,
267
+ postCssPluginOrder: null,
281
268
  patterns: {
282
269
  valueReplacer: [],
283
270
  selectorReplace: [],
@@ -294,7 +281,8 @@ var _default = {
294
281
  hoverActive: [],
295
282
  combinerMediaQuery: [],
296
283
  cssVariableReplacement: [],
297
- selectorWeight: []
284
+ selectorWeight: [],
285
+ hasRTL: []
298
286
  },
299
287
  cssVariableReplacementConfig: '',
300
288
  selectorWeightConfig: {
@@ -333,6 +321,7 @@ var _default = {
333
321
  inject: true
334
322
  },
335
323
  removePropTypes: false,
324
+ customChunksBaseConfig: null,
336
325
  customChunks: [{
337
326
  name: 'styles',
338
327
  pattern: '\\.css$'
@@ -388,16 +377,8 @@ var _default = {
388
377
  },
389
378
  rtlExclude: [],
390
379
  selectorReplace: null,
391
- plugins: {
392
- rtl: false,
393
- hoverActive: false,
394
- combinerMediaQuery: false,
395
- cssVariableReplacement: false,
396
- selectorWeight: false,
397
- minifier: false,
398
- composeMinification: false,
399
- selectorReplace: false
400
- },
380
+ plugins: null,
381
+ postCssPluginOrder: null,
401
382
  patterns: {
402
383
  valueReplacer: [],
403
384
  selectorReplace: [],
@@ -405,14 +386,16 @@ var _default = {
405
386
  combinerMediaQuery: [],
406
387
  hasRTL: [],
407
388
  cssVariableReplacement: [],
408
- selectorWeight: []
389
+ selectorWeight: [],
390
+ cssUniqueness: []
409
391
  },
410
392
  exclude: {
411
393
  rtl: [],
412
394
  hoverActive: [],
413
395
  combinerMediaQuery: [],
414
396
  cssVariableReplacement: [],
415
- selectorWeight: []
397
+ selectorWeight: [],
398
+ hasRTL: []
416
399
  },
417
400
  cssVariableReplacementConfig: '',
418
401
  selectorWeightConfig: {
@@ -0,0 +1,128 @@
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
+ const defaultPostCssPluginOptions = {
37
+ valueReplacer: null,
38
+ hasRTL: false,
39
+ selectorReplace: null,
40
+ hoverActive: false,
41
+ combinerMediaQuery: false,
42
+ cssVariableReplacement: false,
43
+ selectorWeight: false,
44
+ minifier: false,
45
+ composeMinification: false
46
+ };
47
+
48
+ function deprecationSupport(options, disableDeprecationWarning) {
49
+ if (disableDeprecationWarning) {
50
+ /* eslint-disable no-empty-function */
51
+ deprecateMessage = () => {};
52
+
53
+ deprecateOption = () => {};
54
+
55
+ deprecationLoggerEnd = () => {};
56
+ /* eslint-enable no-empty-function */
57
+
58
+ }
59
+
60
+ options.app.plugins = options.app.plugins || defaultPostCssPluginOptions;
61
+ options.docs.plugins = options.docs.plugins || defaultPostCssPluginOptions;
62
+ options.css.plugins = options.css.plugins || defaultPostCssPluginOptions; // if (selectn(options, ".app.hasRTL") === true) {
63
+
64
+ if (options.app.hasRTL === true) {
65
+ deprecateOption('app.hasRTL', 'app.plugins.hasRTL');
66
+ options.app.plugins.hasRTL = true;
67
+ }
68
+
69
+ if (options.docs.hasRTL === true) {
70
+ deprecateOption('docs.hasRTL', 'docs.plugins.hasRTL');
71
+ options.docs.plugins.hasRTL = true;
72
+ }
73
+
74
+ if (options.app.selectorReplace !== null && options.app.plugins && (options.app.plugins.selectorReplace === null || options.app.plugins.selectorReplace === undefined)) {
75
+ deprecateMessage('when you use app.selectorReplace mention enable or disable app.plugins.selectorReplace by setting value to true or false');
76
+ options.app.plugins.selectorReplace = true;
77
+ }
78
+
79
+ if (options.docs.selectorReplace !== null && options.docs.plugins && (options.docs.plugins.selectorReplace === null || options.docs.plugins.selectorReplace === undefined)) {
80
+ deprecateMessage('when you use docs.selectorReplace mention enable or disable docs.plugins.selectorReplace by setting value to true or false');
81
+ options.docs.plugins.selectorReplace = true;
82
+ }
83
+
84
+ if (options.css.valueReplacer !== null && options.css.plugins && (options.app.plugins.valueReplacer === null || options.app.plugins.valueReplacer === undefined)) {
85
+ deprecateMessage('when you use app.valueReplacer mention enable or disable app.plugins.valueReplacer by setting value to true or false');
86
+ options.app.plugins.valueReplacer = true;
87
+ }
88
+
89
+ if (!options.app.patterns) {
90
+ options.app.patterns = {};
91
+ }
92
+
93
+ function handleRTL(rtlExclude, rtl, hasRTL, type) {
94
+ if (rtlExclude && rtlExclude.length > 0) {
95
+ options[type].patterns.hasRTL = modifyCssArr(rtlExclude);
96
+ deprecateOption(`${type}.rtlExclude`, `${type}.patterns.hasRTL`);
97
+ }
98
+
99
+ if (rtl && rtl.length > 0) {
100
+ options[type].patterns.hasRTL = modifyCssArr(rtl);
101
+ deprecateOption(`${type}.exclude.rtl`, `${type}.patterns.hasRTL`);
102
+ }
103
+
104
+ if (hasRTL && hasRTL.length > 0) {
105
+ options[type].patterns.hasRTL = modifyCssArr(hasRTL);
106
+ deprecateOption(`${type}.exclude.hasRTL`, `${type}.patterns.hasRTL`);
107
+ }
108
+ }
109
+
110
+ function addExcludesToPattern(patterns, exclude, type) {
111
+ Object.keys(defaultPostCssPluginOptions).forEach(key => {
112
+ if (exclude[key] && patterns[key].length === 0) {
113
+ deprecateOption(`${type}.exclude.${key}`, `${type}.patterns.${key}`);
114
+ let tempArr = exclude[key];
115
+ tempArr = tempArr.map(x => _path.default.join('!**', x, '**')); // Since patterns[key] is empty we need to wildcard for allow all others.
116
+
117
+ tempArr.unshift('*');
118
+ patterns[key] = tempArr;
119
+ }
120
+ });
121
+ }
122
+
123
+ handleRTL(options.app.rtlExclude, options.app.exclude.rtl, options.app.exclude.hasRTL, 'app');
124
+ handleRTL(options.docs.rtlExclude, options.docs.exclude.rtl, options.docs.exclude.hasRTL, 'docs');
125
+ addExcludesToPattern(options.app.patterns, options.app.exclude, 'app');
126
+ addExcludesToPattern(options.docs.patterns, options.docs.exclude, 'docs');
127
+ deprecationLoggerEnd();
128
+ }
@@ -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,105 +128,39 @@ 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
- const getOptions = () => {
145
+ const getOptions = fromRoot => {
206
146
  if (global.reactCLIOptions) {
207
147
  return global.reactCLIOptions;
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, options.disableDeprecationWarning || !fromRoot);
224
164
  options.packageVersion = process.env.npm_package_version;
225
165
  global.reactCLIOptions = options;
226
166
  return options;
@@ -4,11 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  var _exportNames = {
7
- log: true,
8
7
  writeFile: true,
9
8
  makeDir: true,
10
9
  getInfoFromPublicPaths: true,
11
10
  getLibraryConflict: true,
11
+ log: true,
12
12
  getOptions: true,
13
13
  createEventStream: true,
14
14
  getServerURL: true,
@@ -64,7 +64,13 @@ Object.defineProperty(exports, "jsonHelper", {
64
64
  return _jsonHelper.default;
65
65
  }
66
66
  });
67
- exports.makeDir = exports.log = void 0;
67
+ Object.defineProperty(exports, "log", {
68
+ enumerable: true,
69
+ get: function () {
70
+ return _log.log;
71
+ }
72
+ });
73
+ exports.makeDir = void 0;
68
74
  Object.defineProperty(exports, "pullOrigin", {
69
75
  enumerable: true,
70
76
  get: function () {
@@ -95,6 +101,8 @@ var _stream = require("stream");
95
101
 
96
102
  var _fs = _interopRequireDefault(require("fs"));
97
103
 
104
+ var _log = require("./log");
105
+
98
106
  var _getOptions = _interopRequireDefault(require("./getOptions"));
99
107
 
100
108
  var _createEventStream = _interopRequireDefault(require("./createEventStream"));
@@ -161,13 +169,7 @@ var _ssTestHack = _interopRequireDefault(require("./ssTestHack"));
161
169
 
162
170
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
163
171
 
164
- let log = (...info) => {
165
- let print = console;
166
- print.log(...info);
167
- };
168
-
169
- exports.log = log;
170
-
172
+ // eslint-disable-next-line no-duplicate-imports
171
173
  let writeFile = (outputPath, src, isPath = false) => new Promise((resolve, reject) => {
172
174
  let inStr;
173
175
 
@@ -314,9 +316,9 @@ let getLibraryConflict = (moduleObject, impactObj, changesOnly) => {
314
316
  whichLibrary = "No component file changes!";
315
317
  }
316
318
 
317
- log('\n');
318
- log('You can see the HTML out at coverageTest/impactLibrary.html!');
319
- log('\x1b[33m%s\x1b[0m', '************************************************************ \n ');
319
+ (0, _log.log)('\n');
320
+ (0, _log.log)('You can see the HTML out at coverageTest/impactLibrary.html!');
321
+ (0, _log.log)('\x1b[33m%s\x1b[0m', '************************************************************ \n ');
320
322
  return {
321
323
  response: allImpactArray,
322
324
  result: {
@@ -11,7 +11,7 @@ var _path = _interopRequireDefault(require("path"));
11
11
 
12
12
  var _child_process = require("child_process");
13
13
 
14
- var _index = require("./index");
14
+ var _log = require("./log");
15
15
 
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
 
@@ -38,7 +38,7 @@ let copyEslintConfig = rootDir => {
38
38
 
39
39
  _fs.default.writeFileSync(targetPath, src);
40
40
 
41
- (0, _index.log)('Eslint config added in project root path');
41
+ (0, _log.log)('Eslint config added in project root path');
42
42
  }
43
43
  };
44
44
 
@@ -58,7 +58,7 @@ let initPreCommitHook = (forReactCLI = false) => {
58
58
 
59
59
  _fs.default.writeFileSync(targetPath, precommit);
60
60
 
61
- (0, _index.log)('pre-commit hook added');
61
+ (0, _log.log)('pre-commit hook added');
62
62
  }
63
63
 
64
64
  let packagePath = _path.default.join(process.cwd(), 'package.json');
@@ -71,10 +71,10 @@ let initPreCommitHook = (forReactCLI = false) => {
71
71
 
72
72
  _fs.default.writeFileSync(packagePath, JSON.stringify(packageJson, null, 2));
73
73
 
74
- (0, _index.log)('lint script added in your package.json');
74
+ (0, _log.log)('lint script added in your package.json');
75
75
  }
76
76
  } catch (e) {
77
- (0, _index.log)('package.json not found');
77
+ (0, _log.log)('package.json not found');
78
78
  }
79
79
  }
80
80
  };