@zohodesk/react-cli 1.0.3-exp.5 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) 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 +1201 -1197
  6. package/bin/cli.js +489 -489
  7. package/docs/ComposeMinification.md +13 -13
  8. package/docs/CustomChunks.md +26 -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/ReactLive.md +10 -0
  14. package/docs/SelectorWeight.md +8 -8
  15. package/docs/TODOS.md +10 -10
  16. package/docs/ValueReplacer.md +60 -60
  17. package/docs/VariableConversion.md +729 -729
  18. package/docs/patternFiltering.md +57 -27
  19. package/docs/warnings_while_install.txt +35 -35
  20. package/files/eslintrc.js +62 -62
  21. package/files/prettierrc.js +3 -3
  22. package/lib/configs/webpack.css.umd.config.js +4 -4
  23. package/lib/configs/webpack.dev.config.js +0 -3
  24. package/lib/configs/webpack.docs.config.js +4 -2
  25. package/lib/configs/webpack.impact.config.js +0 -2
  26. package/lib/configs/webpack.prod.config.js +0 -3
  27. package/lib/loaderUtils/configsAssetsLoaders.js +33 -33
  28. package/lib/loaderUtils/getCSSLoaders.js +51 -54
  29. package/lib/loaders/docsLoader.js +15 -7
  30. package/lib/loaders/reactLiveConvertor.js +107 -0
  31. package/lib/loaders/workerLoader.js +9 -9
  32. package/lib/pluginUtils/getDevPlugins.js +7 -10
  33. package/lib/pluginUtils/getProdPlugins.js +7 -10
  34. package/lib/plugins/CustomAttributePlugin.md +35 -35
  35. package/lib/plugins/EFCPlugin.md +6 -6
  36. package/lib/plugins/I18NInjectIntoIndexPlugin.js +4 -4
  37. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +38 -38
  38. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +30 -30
  39. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +8 -8
  40. package/lib/plugins/I18nSplitPlugin/I18nSplit.md +95 -95
  41. package/lib/plugins/I18nSplitPlugin/README.md +25 -25
  42. package/lib/plugins/I18nSplitPlugin/index.js +57 -57
  43. package/lib/plugins/ResourceHintsPlugin.js +17 -17
  44. package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +6 -6
  45. package/lib/plugins/RtlSplitPlugin/RtrSplit.md +30 -30
  46. package/lib/plugins/SelectorPlugin.js +46 -47
  47. package/lib/plugins/ServiceWorkerPlugin.js +9 -9
  48. package/lib/plugins/TPHashMappingPlugin.js +4 -4
  49. package/lib/plugins/VariableConversionCollector.js +66 -184
  50. package/lib/plugins/utils/classHandling.js +16 -1
  51. package/lib/plugins/utils/fileHandling.js +10 -10
  52. package/lib/plugins/variableConvertorUtils.js +131 -0
  53. package/lib/postcss-plugins/RTLSplitPlugin.js +10 -10
  54. package/lib/postcss-plugins/__test__/test1Input.css +38 -38
  55. package/lib/postcss-plugins/__test__/test1Output.css +38 -38
  56. package/lib/postcss-plugins/hoverActivePlugin.js +3 -3
  57. package/lib/schemas/index.js +4 -2
  58. package/lib/sh/pre-commit.sh +34 -34
  59. package/lib/sh/reportPublish.sh +45 -45
  60. package/lib/utils/buildstats.html +148 -148
  61. package/lib/utils/cssClassNameGenerate.js +22 -24
  62. package/lib/utils/resultSchema.json +73 -73
  63. package/lib/utils/variableConverter.js +16 -129
  64. package/npm-shrinkwrap.json +14407 -14407
  65. package/npm8.md +9 -9
  66. package/package.json +122 -122
  67. package/postpublish.js +8 -8
  68. package/templates/app/.eslintrc.js +140 -140
  69. package/templates/app/README.md +12 -12
  70. package/templates/app/app/index.html +24 -24
  71. package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
  72. package/templates/app/app/properties/i18nkeys.json +3 -3
  73. package/templates/app/docs/all.html +69 -69
  74. package/templates/app/mockapi/index.js +18 -18
  75. package/templates/app/package.json +37 -37
  76. package/templates/app/src/actions/SampleActions/index.js +37 -37
  77. package/templates/app/src/actions/index.js +65 -65
  78. package/templates/app/src/appUrls.js +19 -19
  79. package/templates/app/src/components/Alert/Alert.js +134 -134
  80. package/templates/app/src/components/Alert/Alert.module.css +79 -79
  81. package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -37
  82. package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -84
  83. package/templates/app/src/components/Sample/Sample.module.css +11 -11
  84. package/templates/app/src/components/Sample/SampleList.js +61 -61
  85. package/templates/app/src/components/Slider/Slider.css +41 -41
  86. package/templates/app/src/components/Slider/Slider.js +55 -55
  87. package/templates/app/src/containers/AlertContainer/index.js +15 -15
  88. package/templates/app/src/containers/AppContainer/index.js +96 -96
  89. package/templates/app/src/containers/AppContainer/index.module.css +27 -27
  90. package/templates/app/src/containers/CustomMatch/index.js +65 -65
  91. package/templates/app/src/containers/DevTools/index.js +10 -10
  92. package/templates/app/src/containers/Header/index.js +67 -67
  93. package/templates/app/src/containers/Header/index.module.css +43 -43
  94. package/templates/app/src/containers/Redirect/index.js +63 -63
  95. package/templates/app/src/containers/Redirector/index.js +47 -47
  96. package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -42
  97. package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -3
  98. package/templates/app/src/historyChange.js +5 -5
  99. package/templates/app/src/index.html +10 -10
  100. package/templates/app/src/index.js +24 -24
  101. package/templates/app/src/middleware/PromiseMiddleware.js +59 -59
  102. package/templates/app/src/reducers/alertData.js +11 -11
  103. package/templates/app/src/reducers/index.js +6 -6
  104. package/templates/app/src/reducers/samples.js +19 -19
  105. package/templates/app/src/store/configureStore.dev.js +51 -51
  106. package/templates/app/src/store/configureStore.js +5 -5
  107. package/templates/app/src/store/configureStore.prod.js +26 -26
  108. package/templates/app/src/util/Common.js +5 -5
  109. package/templates/app/src/util/RequestAPI.js +132 -132
  110. package/templates/docs/all.html +249 -249
  111. package/templates/docs/component.html +178 -178
  112. package/templates/docs/components.html +221 -221
  113. package/templates/docs/css/b.min.css +6 -6
  114. package/templates/docs/css/component.css +42 -42
  115. package/templates/docs/css/componentTest.css +6 -6
  116. package/templates/docs/css/hopscotch.css +585 -585
  117. package/templates/docs/css/style.css +1022 -1022
  118. package/templates/docs/impactReportTemplate.html +154 -154
  119. package/templates/docs/index.html +1501 -1501
  120. package/templates/docs/js/active-line.js +72 -72
  121. package/templates/docs/js/b.min.js +7 -7
  122. package/templates/docs/js/codemirror.js +9680 -9680
  123. package/templates/docs/js/designTokens.js +334 -334
  124. package/templates/docs/js/j.min.js +4 -4
  125. package/templates/docs/js/javascript.js +874 -874
  126. package/templates/docs/js/matchbrackets.js +145 -145
package/bin/cli.js CHANGED
@@ -1,489 +1,489 @@
1
- #!/usr/bin/env node
2
-
3
- const path = require('path');
4
- const { existsSync } = require('fs');
5
- const { spawnSync: _spawnSync, spawn } = require('child_process');
6
- const { getOptions } = require('../lib/utils/index.js');
7
-
8
- const { log } = require('../lib/utils');
9
- const { getCliPath } = require('../lib/servers/getCliPath.js');
10
- //initPreCommitHook();
11
-
12
- const options = getOptions();
13
-
14
- function spawnSync(...args) {
15
- const result = _spawnSync(...args);
16
- if (result.error) {
17
- console.error(result.error);
18
- }
19
- return result;
20
- }
21
-
22
- const { esLint: esLintOptions } = options || {};
23
- const { preprocess } = options;
24
- const {
25
- ignoreFilePaths: esLintIgnorePaths,
26
- fix: esLintFix,
27
- isCI: isCI,
28
- reportPath: reportPath
29
- } = esLintOptions || {};
30
-
31
- const [, , option] = process.argv;
32
- const args = process.argv.slice(3);
33
- const appPath = process.cwd();
34
-
35
- const webpack = getCliPath('webpack');
36
-
37
- const nodemon = getCliPath('nodemon');
38
- const babel = getCliPath('babel');
39
- const propertyToJson = getCliPath('propertyToJson');
40
- const esLint = getCliPath('eslint');
41
-
42
- const preprocesserPath = preprocess.runner
43
- ? path.join(process.cwd(), preprocess.runner)
44
- : '';
45
- const preprocessCli = preprocess.stopNodemon ? 'node' : nodemon;
46
- if (preprocesserPath && existsSync(preprocesserPath)) {
47
- // eslint-disable-next-line default-case
48
- switch (option) {
49
- case 'start':
50
- case 'docs':
51
- spawn(preprocessCli, [preprocesserPath], {
52
- stdio: 'inherit',
53
- cwd: path.parse(preprocesserPath).dir
54
- });
55
- // NOTE: it's ok if we not close this here
56
- // Because when node server stops this program willbe closed So this nodemon will be killed as well
57
- break;
58
- case 'nowatchstart':
59
- case 'devbuild':
60
- case 'build:library:es':
61
- case 'build:component:es':
62
- case 'build:library:cmjs':
63
- case 'build:component:cmjs':
64
- spawnSync('node', [preprocesserPath], {
65
- stdio: 'inherit',
66
- cwd: preprocesserPath.slice(0, preprocesserPath.lastIndexOf('/') + 1)
67
- });
68
- break;
69
- }
70
- }
71
-
72
- let result;
73
- switch (option) {
74
- case 'preprocessor':
75
- if (preprocesserPath && existsSync(preprocesserPath)) {
76
- result = spawnSync(preprocessCli, [preprocesserPath], {
77
- stdio: 'inherit',
78
- cwd: preprocesserPath.slice(0, preprocesserPath.lastIndexOf('/') + 1)
79
- });
80
- process.exit(result.status);
81
- } else {
82
- console.error(`preProcessor not exists ${preprocesserPath}`);
83
- }
84
- break;
85
- case 'lint-setup': {
86
- result = spawnSync(
87
- 'node',
88
- [require.resolve('../lib/utils/lint/index.js')].concat(args),
89
- { stdio: 'inherit' }
90
- );
91
- process.exit(result.status);
92
- break;
93
- }
94
- case 'add-lint-scripts': {
95
- result = spawnSync(
96
- 'node',
97
- [require.resolve('../lib/utils/lint/lintScripts.js')].concat(args),
98
- { stdio: 'inherit' }
99
- );
100
- process.exit(result.status);
101
- break;
102
- }
103
- case 'postpublish':
104
- result = spawnSync(
105
- 'node',
106
- [require.resolve('../lib/utils/dependencyPostPublish')].concat(args),
107
- { stdio: 'inherit' }
108
- );
109
-
110
- process.exit(result.status);
111
- break;
112
- case 'rtl':
113
- result = spawnSync(
114
- 'node',
115
- [require.resolve('../lib/utils/rtl')].concat(args),
116
- { stdio: 'inherit' }
117
- );
118
-
119
- process.exit(result.status);
120
- break;
121
- case 'variableConverter':
122
- result = spawnSync(
123
- 'node',
124
- [require.resolve('../lib/utils/variableConverter')].concat(args),
125
- { stdio: 'inherit' }
126
- );
127
- process.exit(result.status);
128
- break;
129
- case 'valuereplacer':
130
- result = spawnSync(
131
- 'node',
132
- [require.resolve('../lib/common/valueReplacer')].concat(args),
133
- { stdio: 'inherit' }
134
- );
135
-
136
- process.exit(result.status);
137
- break;
138
- case 'app':
139
- result = spawnSync(
140
- 'cp',
141
- ['-r', path.join(__dirname, '..', 'templates', 'app')].concat(args),
142
- { stdio: 'inherit' }
143
- );
144
- process.exit(result.status);
145
- break;
146
-
147
- case 'library':
148
- result = spawnSync(
149
- 'cp',
150
- ['-r', path.join(__dirname, '..', 'templates', 'library')].concat(args),
151
- { stdio: 'inherit' }
152
- );
153
- process.exit(result.status);
154
- break;
155
-
156
- case 'move':
157
- result = spawnSync(
158
- 'node',
159
- [require.resolve('../lib/utils/copy')].concat(args.concat(false)),
160
- { stdio: 'inherit' }
161
- );
162
- process.exit(result.status);
163
- break;
164
-
165
- case 'copy':
166
- result = spawnSync(
167
- 'node',
168
- [require.resolve('../lib/utils/copy')].concat(args),
169
- { stdio: 'inherit' }
170
- );
171
- process.exit(result.status);
172
- break;
173
-
174
- case 'copyTimezones':
175
- result = spawnSync(
176
- 'node',
177
- [require.resolve('../lib/utils/copyTimezones')].concat(args),
178
- { stdio: 'inherit' }
179
- );
180
- process.exit(result.status);
181
- break;
182
-
183
- case 'clone':
184
- result = spawnSync(
185
- 'node',
186
- [require.resolve('../lib/utils/repoClone')].concat(args.concat(args)),
187
- { stdio: 'inherit' }
188
- );
189
- process.exit(result.status);
190
- break;
191
-
192
- case 'sslcertupdate':
193
- result = spawnSync(
194
- 'node',
195
- [require.resolve('../lib/common/sslcertUpdater')].concat(args),
196
- { stdio: 'inherit' }
197
- );
198
- process.exit(result.status);
199
- break;
200
-
201
- case 'propertyToJson':
202
- result = spawnSync(
203
- propertyToJson,
204
- args.map(arg => path.join(appPath, arg)),
205
- {
206
- stdio: 'inherit'
207
- }
208
- );
209
- process.exit(result.status);
210
- break;
211
-
212
- case 'clean':
213
- result = spawnSync(
214
- 'node',
215
- [require.resolve('../lib/utils/clean')].concat(
216
- args.map(arg => path.join(appPath, arg))
217
- ),
218
- { stdio: 'inherit' }
219
- );
220
- process.exit(result.status);
221
- break;
222
-
223
- case 'devbuild':
224
- result = spawnSync(
225
- 'node',
226
- [require.resolve('../lib/servers/devBuild')].concat(args),
227
- // [require.resolve('../lib/servers/staticServer'), '--expose-http2'].concat(args),
228
- { stdio: 'inherit' }
229
- );
230
- process.exit(result.status);
231
- break;
232
- case 'nowatchstart':
233
- result = spawnSync(
234
- 'node',
235
- [
236
- require.resolve('../lib/servers/nowatchserver'),
237
- '--expose-http2'
238
- ].concat(args),
239
- // [require.resolve('../lib/servers/staticServer'), '--expose-http2'].concat(args),
240
- { stdio: 'inherit' }
241
- );
242
- process.exit(result.status);
243
- break;
244
- case 'start':
245
- result = spawnSync(
246
- 'node',
247
- [
248
- options.app.disableWatch
249
- ? require.resolve('../lib/servers/nowatchserver')
250
- : require.resolve('../lib/servers/server'),
251
-
252
- '--expose-http2'
253
- ].concat(args),
254
- { stdio: 'inherit' }
255
- );
256
- process.exit(result.status);
257
- break;
258
- case 'mockserver':
259
- result = spawnSync(
260
- nodemon,
261
- [
262
- require.resolve('../lib/servers/mockserver.js'),
263
- '--delay',
264
- '2500ms',
265
- 'watch',
266
- `${appPath + path.sep}mockapi`
267
- ].concat(args),
268
- { stdio: 'inherit' }
269
- );
270
- process.exit(result.status);
271
- break;
272
-
273
- case 'docs':
274
- result = spawnSync(
275
- 'node',
276
- [require.resolve('../lib/servers/docsServer')].concat(args),
277
- { stdio: 'inherit' }
278
- );
279
- process.exit(result.status);
280
- break;
281
-
282
- case 'build':
283
- result = spawnSync(
284
- webpack,
285
- [
286
- // '--progress',
287
- // '--profile',
288
- '--config',
289
- require.resolve('../lib/configs/webpack.prod.config.js')
290
- ].concat(args),
291
- { stdio: 'inherit' }
292
- );
293
-
294
- // console.log(result);
295
- process.exit(result.status);
296
- break;
297
-
298
- case 'build:library:umd':
299
- case 'build:component:umd':
300
- result = spawnSync(
301
- webpack,
302
- [
303
- '--config',
304
- require.resolve('../lib/configs/webpack.component.umd.config.js')
305
- ],
306
- { stdio: 'inherit' }
307
- );
308
- process.exit(result.status);
309
- break;
310
- case 'build:css:umd':
311
- result = spawnSync(
312
- webpack,
313
- ['--config', require.resolve('../lib/configs/webpack.css.umd.config.js')],
314
- { stdio: 'inherit' }
315
- );
316
- process.exit(result.status);
317
- break;
318
- case 'build:component:server':
319
- result = spawnSync(
320
- webpack,
321
- ['--config', require.resolve('../lib/configs/webpack.server.config.js')],
322
- { stdio: 'inherit' }
323
- );
324
- process.exit(result.status);
325
- break;
326
-
327
- case 'build:library:cmjs':
328
- case 'build:component:cmjs':
329
- result = spawnSync(
330
- babel,
331
- [
332
- 'src',
333
- '-d',
334
- 'lib',
335
- `--presets=${require.resolve('../lib/babel/cmjs-plugins-presets.js')}`,
336
- '--copy-files'
337
- ].concat(args),
338
- { stdio: 'inherit' }
339
- );
340
- process.exit(result.status);
341
- break;
342
-
343
- case 'build:library:es':
344
- case 'build:component:es':
345
- result = spawnSync(
346
- babel,
347
- [
348
- 'src',
349
- '--out-dir',
350
- 'es',
351
- `--presets=${require.resolve('../lib/babel/es-plugins-presets.js')}`,
352
- '--copy-files'
353
- ].concat(args),
354
- { stdio: 'inherit' }
355
- );
356
- process.exit(result.status);
357
- break;
358
-
359
- case 'test':
360
- result = spawnSync(
361
- 'node',
362
- [require.resolve('../lib/jest/run.js')].concat(args),
363
- { stdio: 'inherit' }
364
- );
365
- process.exit(result.status);
366
- break;
367
-
368
- case 'sstest':
369
- result = spawnSync(
370
- 'node',
371
- [require.resolve('../lib/servers/scrServer')].concat(args),
372
- { stdio: 'inherit' }
373
- );
374
- process.exit(result.status);
375
- break;
376
-
377
- case 'impact:library':
378
- result = spawnSync(
379
- webpack,
380
- [
381
- '--config',
382
- require.resolve('../lib/configs/webpack.impact.config.js')
383
- ].concat(args),
384
- { stdio: 'inherit' }
385
- );
386
-
387
- // result = spawnSync(
388
- // webpack,
389
- // [require.resolve('../lib/server/libraryImpact')].concat(args),
390
- // { stdio: 'inherit' }
391
- // )
392
-
393
- process.exit(result.status);
394
- break;
395
-
396
- case 'publish:report':
397
- result = spawnSync(
398
- 'sh',
399
- [path.join(__dirname, '..', 'lib', 'sh', 'reportPublish.sh')].concat(
400
- args
401
- ),
402
- { stdio: 'inherit' }
403
- );
404
- process.exit(result.status);
405
- break;
406
-
407
- case 'impact':
408
- result = spawnSync(
409
- 'node',
410
- [require.resolve('../lib/server/impactServer')].concat(args),
411
- { stdio: 'inherit' }
412
- );
413
- process.exit(result.status);
414
- break;
415
-
416
- case 'cluster:monitor':
417
- result = spawnSync(
418
- 'node',
419
- [require.resolve('../lib/servers/clusterHubServer')].concat(args),
420
- { stdio: 'inherit' }
421
- );
422
- process.exit(result.status);
423
- break;
424
-
425
- case 'lint':
426
- result = spawnSync(
427
- esLint,
428
- [
429
- '-c',
430
- path.join(__dirname, '..', '.eslintrc.js'),
431
- isCI ? '--no-eslintrc' : false,
432
- '--ignore-path',
433
- esLintIgnorePaths
434
- ? path.join(appPath, esLintIgnorePaths)
435
- : path.join(__dirname, '..', '.eslintignore'),
436
- esLintFix ? '--fix' : false,
437
- isCI ? '-f' : false,
438
- isCI ? path.join(__dirname, './../lib/utils/lintReporter.js') : false
439
- ]
440
- .filter(Boolean)
441
- .concat(args.map(arg => path.join(appPath, arg))),
442
- {
443
- stdio: 'inherit'
444
- }
445
- );
446
- isCI ? log(`You can see the eslint result from ${reportPath}`) : false;
447
- break;
448
-
449
- case 'set:config':
450
- result = spawnSync(
451
- 'node',
452
- [require.resolve('../lib/utils/setEnvVariables')].concat(args),
453
- { stdio: 'inherit' }
454
- );
455
- process.exit(result.status);
456
- break;
457
-
458
- case 'help':
459
- result = spawnSync(
460
- 'node',
461
- [require.resolve('../lib/servers/helpServer')].concat(args),
462
- { stdio: 'inherit' }
463
- );
464
- process.exit(result.status);
465
- break;
466
-
467
- case '--version':
468
- case '-version':
469
- case '--v':
470
- case '-v':
471
- log(`@zohodesk/react-cli v${require('../package.json').version}`);
472
- break;
473
-
474
- default:
475
- log(`react-cli > Unknown option "${option}"`);
476
- log('react-cli app <appName>');
477
- log('react-cli library <libraryName>');
478
- log('react-cli start');
479
- log('react-cli build');
480
- log('react-cli sstest');
481
- log('react-cli test');
482
- log('react-cli publish:report');
483
- log('react-cli build:library:es');
484
- log('react-cli gitclone <last argument clone folder>');
485
- log('react-cli hgclone <last argument clone folder>');
486
-
487
- process.exit(0);
488
- break;
489
- }
1
+ #!/usr/bin/env node
2
+
3
+ const path = require('path');
4
+ const { existsSync } = require('fs');
5
+ const { spawnSync: _spawnSync, spawn } = require('child_process');
6
+ const { getOptions } = require('../lib/utils/index.js');
7
+
8
+ const { log } = require('../lib/utils');
9
+ const { getCliPath } = require('../lib/servers/getCliPath.js');
10
+ //initPreCommitHook();
11
+
12
+ const options = getOptions();
13
+
14
+ function spawnSync(...args) {
15
+ const result = _spawnSync(...args);
16
+ if (result.error) {
17
+ console.error(result.error);
18
+ }
19
+ return result;
20
+ }
21
+
22
+ const { esLint: esLintOptions } = options || {};
23
+ const { preprocess } = options;
24
+ const {
25
+ ignoreFilePaths: esLintIgnorePaths,
26
+ fix: esLintFix,
27
+ isCI: isCI,
28
+ reportPath: reportPath
29
+ } = esLintOptions || {};
30
+
31
+ const [, , option] = process.argv;
32
+ const args = process.argv.slice(3);
33
+ const appPath = process.cwd();
34
+
35
+ const webpack = getCliPath('webpack');
36
+
37
+ const nodemon = getCliPath('nodemon');
38
+ const babel = getCliPath('babel');
39
+ const propertyToJson = getCliPath('propertyToJson');
40
+ const esLint = getCliPath('eslint');
41
+
42
+ const preprocesserPath = preprocess.runner
43
+ ? path.join(process.cwd(), preprocess.runner)
44
+ : '';
45
+ const preprocessCli = preprocess.stopNodemon ? 'node' : nodemon;
46
+ if (preprocesserPath && existsSync(preprocesserPath)) {
47
+ // eslint-disable-next-line default-case
48
+ switch (option) {
49
+ case 'start':
50
+ case 'docs':
51
+ spawn(preprocessCli, [preprocesserPath], {
52
+ stdio: 'inherit',
53
+ cwd: path.parse(preprocesserPath).dir
54
+ });
55
+ // NOTE: it's ok if we not close this here
56
+ // Because when node server stops this program willbe closed So this nodemon will be killed as well
57
+ break;
58
+ case 'nowatchstart':
59
+ case 'devbuild':
60
+ case 'build:library:es':
61
+ case 'build:component:es':
62
+ case 'build:library:cmjs':
63
+ case 'build:component:cmjs':
64
+ spawnSync('node', [preprocesserPath], {
65
+ stdio: 'inherit',
66
+ cwd: preprocesserPath.slice(0, preprocesserPath.lastIndexOf('/') + 1)
67
+ });
68
+ break;
69
+ }
70
+ }
71
+
72
+ let result;
73
+ switch (option) {
74
+ case 'preprocessor':
75
+ if (preprocesserPath && existsSync(preprocesserPath)) {
76
+ result = spawnSync(preprocessCli, [preprocesserPath], {
77
+ stdio: 'inherit',
78
+ cwd: preprocesserPath.slice(0, preprocesserPath.lastIndexOf('/') + 1)
79
+ });
80
+ process.exit(result.status);
81
+ } else {
82
+ console.error(`preProcessor not exists ${preprocesserPath}`);
83
+ }
84
+ break;
85
+ case 'lint-setup': {
86
+ result = spawnSync(
87
+ 'node',
88
+ [require.resolve('../lib/utils/lint/index.js')].concat(args),
89
+ { stdio: 'inherit' }
90
+ );
91
+ process.exit(result.status);
92
+ break;
93
+ }
94
+ case 'add-lint-scripts': {
95
+ result = spawnSync(
96
+ 'node',
97
+ [require.resolve('../lib/utils/lint/lintScripts.js')].concat(args),
98
+ { stdio: 'inherit' }
99
+ );
100
+ process.exit(result.status);
101
+ break;
102
+ }
103
+ case 'postpublish':
104
+ result = spawnSync(
105
+ 'node',
106
+ [require.resolve('../lib/utils/dependencyPostPublish')].concat(args),
107
+ { stdio: 'inherit' }
108
+ );
109
+
110
+ process.exit(result.status);
111
+ break;
112
+ case 'rtl':
113
+ result = spawnSync(
114
+ 'node',
115
+ [require.resolve('../lib/utils/rtl')].concat(args),
116
+ { stdio: 'inherit' }
117
+ );
118
+
119
+ process.exit(result.status);
120
+ break;
121
+ case 'variableConverter':
122
+ result = spawnSync(
123
+ 'node',
124
+ [require.resolve('../lib/utils/variableConverter')].concat(args),
125
+ { stdio: 'inherit' }
126
+ );
127
+ process.exit(result.status);
128
+ break;
129
+ case 'valuereplacer':
130
+ result = spawnSync(
131
+ 'node',
132
+ [require.resolve('../lib/common/valueReplacer')].concat(args),
133
+ { stdio: 'inherit' }
134
+ );
135
+
136
+ process.exit(result.status);
137
+ break;
138
+ case 'app':
139
+ result = spawnSync(
140
+ 'cp',
141
+ ['-r', path.join(__dirname, '..', 'templates', 'app')].concat(args),
142
+ { stdio: 'inherit' }
143
+ );
144
+ process.exit(result.status);
145
+ break;
146
+
147
+ case 'library':
148
+ result = spawnSync(
149
+ 'cp',
150
+ ['-r', path.join(__dirname, '..', 'templates', 'library')].concat(args),
151
+ { stdio: 'inherit' }
152
+ );
153
+ process.exit(result.status);
154
+ break;
155
+
156
+ case 'move':
157
+ result = spawnSync(
158
+ 'node',
159
+ [require.resolve('../lib/utils/copy')].concat(args.concat(false)),
160
+ { stdio: 'inherit' }
161
+ );
162
+ process.exit(result.status);
163
+ break;
164
+
165
+ case 'copy':
166
+ result = spawnSync(
167
+ 'node',
168
+ [require.resolve('../lib/utils/copy')].concat(args),
169
+ { stdio: 'inherit' }
170
+ );
171
+ process.exit(result.status);
172
+ break;
173
+
174
+ case 'copyTimezones':
175
+ result = spawnSync(
176
+ 'node',
177
+ [require.resolve('../lib/utils/copyTimezones')].concat(args),
178
+ { stdio: 'inherit' }
179
+ );
180
+ process.exit(result.status);
181
+ break;
182
+
183
+ case 'clone':
184
+ result = spawnSync(
185
+ 'node',
186
+ [require.resolve('../lib/utils/repoClone')].concat(args.concat(args)),
187
+ { stdio: 'inherit' }
188
+ );
189
+ process.exit(result.status);
190
+ break;
191
+
192
+ case 'sslcertupdate':
193
+ result = spawnSync(
194
+ 'node',
195
+ [require.resolve('../lib/common/sslcertUpdater')].concat(args),
196
+ { stdio: 'inherit' }
197
+ );
198
+ process.exit(result.status);
199
+ break;
200
+
201
+ case 'propertyToJson':
202
+ result = spawnSync(
203
+ propertyToJson,
204
+ args.map(arg => path.join(appPath, arg)),
205
+ {
206
+ stdio: 'inherit'
207
+ }
208
+ );
209
+ process.exit(result.status);
210
+ break;
211
+
212
+ case 'clean':
213
+ result = spawnSync(
214
+ 'node',
215
+ [require.resolve('../lib/utils/clean')].concat(
216
+ args.map(arg => path.join(appPath, arg))
217
+ ),
218
+ { stdio: 'inherit' }
219
+ );
220
+ process.exit(result.status);
221
+ break;
222
+
223
+ case 'devbuild':
224
+ result = spawnSync(
225
+ 'node',
226
+ [require.resolve('../lib/servers/devBuild')].concat(args),
227
+ // [require.resolve('../lib/servers/staticServer'), '--expose-http2'].concat(args),
228
+ { stdio: 'inherit' }
229
+ );
230
+ process.exit(result.status);
231
+ break;
232
+ case 'nowatchstart':
233
+ result = spawnSync(
234
+ 'node',
235
+ [
236
+ require.resolve('../lib/servers/nowatchserver'),
237
+ '--expose-http2'
238
+ ].concat(args),
239
+ // [require.resolve('../lib/servers/staticServer'), '--expose-http2'].concat(args),
240
+ { stdio: 'inherit' }
241
+ );
242
+ process.exit(result.status);
243
+ break;
244
+ case 'start':
245
+ result = spawnSync(
246
+ 'node',
247
+ [
248
+ options.app.disableWatch
249
+ ? require.resolve('../lib/servers/nowatchserver')
250
+ : require.resolve('../lib/servers/server'),
251
+
252
+ '--expose-http2'
253
+ ].concat(args),
254
+ { stdio: 'inherit' }
255
+ );
256
+ process.exit(result.status);
257
+ break;
258
+ case 'mockserver':
259
+ result = spawnSync(
260
+ nodemon,
261
+ [
262
+ require.resolve('../lib/servers/mockserver.js'),
263
+ '--delay',
264
+ '2500ms',
265
+ 'watch',
266
+ `${appPath + path.sep}mockapi`
267
+ ].concat(args),
268
+ { stdio: 'inherit' }
269
+ );
270
+ process.exit(result.status);
271
+ break;
272
+
273
+ case 'docs':
274
+ result = spawnSync(
275
+ 'node',
276
+ [require.resolve('../lib/servers/docsServer')].concat(args),
277
+ { stdio: 'inherit' }
278
+ );
279
+ process.exit(result.status);
280
+ break;
281
+
282
+ case 'build':
283
+ result = spawnSync(
284
+ webpack,
285
+ [
286
+ // '--progress',
287
+ // '--profile',
288
+ '--config',
289
+ require.resolve('../lib/configs/webpack.prod.config.js')
290
+ ].concat(args),
291
+ { stdio: 'inherit' }
292
+ );
293
+
294
+ // console.log(result);
295
+ process.exit(result.status);
296
+ break;
297
+
298
+ case 'build:library:umd':
299
+ case 'build:component:umd':
300
+ result = spawnSync(
301
+ webpack,
302
+ [
303
+ '--config',
304
+ require.resolve('../lib/configs/webpack.component.umd.config.js')
305
+ ],
306
+ { stdio: 'inherit' }
307
+ );
308
+ process.exit(result.status);
309
+ break;
310
+ case 'build:css:umd':
311
+ result = spawnSync(
312
+ webpack,
313
+ ['--config', require.resolve('../lib/configs/webpack.css.umd.config.js')],
314
+ { stdio: 'inherit' }
315
+ );
316
+ process.exit(result.status);
317
+ break;
318
+ case 'build:component:server':
319
+ result = spawnSync(
320
+ webpack,
321
+ ['--config', require.resolve('../lib/configs/webpack.server.config.js')],
322
+ { stdio: 'inherit' }
323
+ );
324
+ process.exit(result.status);
325
+ break;
326
+
327
+ case 'build:library:cmjs':
328
+ case 'build:component:cmjs':
329
+ result = spawnSync(
330
+ babel,
331
+ [
332
+ 'src',
333
+ '-d',
334
+ 'lib',
335
+ `--presets=${require.resolve('../lib/babel/cmjs-plugins-presets.js')}`,
336
+ '--copy-files'
337
+ ].concat(args),
338
+ { stdio: 'inherit' }
339
+ );
340
+ process.exit(result.status);
341
+ break;
342
+
343
+ case 'build:library:es':
344
+ case 'build:component:es':
345
+ result = spawnSync(
346
+ babel,
347
+ [
348
+ 'src',
349
+ '--out-dir',
350
+ 'es',
351
+ `--presets=${require.resolve('../lib/babel/es-plugins-presets.js')}`,
352
+ '--copy-files'
353
+ ].concat(args),
354
+ { stdio: 'inherit' }
355
+ );
356
+ process.exit(result.status);
357
+ break;
358
+
359
+ case 'test':
360
+ result = spawnSync(
361
+ 'node',
362
+ [require.resolve('../lib/jest/run.js')].concat(args),
363
+ { stdio: 'inherit' }
364
+ );
365
+ process.exit(result.status);
366
+ break;
367
+
368
+ case 'sstest':
369
+ result = spawnSync(
370
+ 'node',
371
+ [require.resolve('../lib/servers/scrServer')].concat(args),
372
+ { stdio: 'inherit' }
373
+ );
374
+ process.exit(result.status);
375
+ break;
376
+
377
+ case 'impact:library':
378
+ result = spawnSync(
379
+ webpack,
380
+ [
381
+ '--config',
382
+ require.resolve('../lib/configs/webpack.impact.config.js')
383
+ ].concat(args),
384
+ { stdio: 'inherit' }
385
+ );
386
+
387
+ // result = spawnSync(
388
+ // webpack,
389
+ // [require.resolve('../lib/server/libraryImpact')].concat(args),
390
+ // { stdio: 'inherit' }
391
+ // )
392
+
393
+ process.exit(result.status);
394
+ break;
395
+
396
+ case 'publish:report':
397
+ result = spawnSync(
398
+ 'sh',
399
+ [path.join(__dirname, '..', 'lib', 'sh', 'reportPublish.sh')].concat(
400
+ args
401
+ ),
402
+ { stdio: 'inherit' }
403
+ );
404
+ process.exit(result.status);
405
+ break;
406
+
407
+ case 'impact':
408
+ result = spawnSync(
409
+ 'node',
410
+ [require.resolve('../lib/server/impactServer')].concat(args),
411
+ { stdio: 'inherit' }
412
+ );
413
+ process.exit(result.status);
414
+ break;
415
+
416
+ case 'cluster:monitor':
417
+ result = spawnSync(
418
+ 'node',
419
+ [require.resolve('../lib/servers/clusterHubServer')].concat(args),
420
+ { stdio: 'inherit' }
421
+ );
422
+ process.exit(result.status);
423
+ break;
424
+
425
+ case 'lint':
426
+ result = spawnSync(
427
+ esLint,
428
+ [
429
+ '-c',
430
+ path.join(__dirname, '..', '.eslintrc.js'),
431
+ isCI ? '--no-eslintrc' : false,
432
+ '--ignore-path',
433
+ esLintIgnorePaths
434
+ ? path.join(appPath, esLintIgnorePaths)
435
+ : path.join(__dirname, '..', '.eslintignore'),
436
+ esLintFix ? '--fix' : false,
437
+ isCI ? '-f' : false,
438
+ isCI ? path.join(__dirname, './../lib/utils/lintReporter.js') : false
439
+ ]
440
+ .filter(Boolean)
441
+ .concat(args.map(arg => path.join(appPath, arg))),
442
+ {
443
+ stdio: 'inherit'
444
+ }
445
+ );
446
+ isCI ? log(`You can see the eslint result from ${reportPath}`) : false;
447
+ break;
448
+
449
+ case 'set:config':
450
+ result = spawnSync(
451
+ 'node',
452
+ [require.resolve('../lib/utils/setEnvVariables')].concat(args),
453
+ { stdio: 'inherit' }
454
+ );
455
+ process.exit(result.status);
456
+ break;
457
+
458
+ case 'help':
459
+ result = spawnSync(
460
+ 'node',
461
+ [require.resolve('../lib/servers/helpServer')].concat(args),
462
+ { stdio: 'inherit' }
463
+ );
464
+ process.exit(result.status);
465
+ break;
466
+
467
+ case '--version':
468
+ case '-version':
469
+ case '--v':
470
+ case '-v':
471
+ log(`@zohodesk/react-cli v${require('../package.json').version}`);
472
+ break;
473
+
474
+ default:
475
+ log(`react-cli > Unknown option "${option}"`);
476
+ log('react-cli app <appName>');
477
+ log('react-cli library <libraryName>');
478
+ log('react-cli start');
479
+ log('react-cli build');
480
+ log('react-cli sstest');
481
+ log('react-cli test');
482
+ log('react-cli publish:report');
483
+ log('react-cli build:library:es');
484
+ log('react-cli gitclone <last argument clone folder>');
485
+ log('react-cli hgclone <last argument clone folder>');
486
+
487
+ process.exit(0);
488
+ break;
489
+ }