@zohodesk/react-cli 0.0.1-beta.16 → 0.0.1-beta.160

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 (226) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc.js +46 -3
  3. package/CHANGELOG.md +5 -0
  4. package/README.md +650 -0
  5. package/bin/cli.js +134 -27
  6. package/cert/cert.pem +37 -129
  7. package/cert/key.pem +27 -27
  8. package/cert/passphrase.pem +1 -0
  9. package/files/eslintrc.js +62 -0
  10. package/files/prettierrc.js +3 -0
  11. package/lib/babel/cmjs-plugins-presets.js +16 -9
  12. package/lib/babel/es-plugins-presets.js +26 -14
  13. package/lib/common/getEntries.js +33 -24
  14. package/lib/common/getPublicPathConfig.js +40 -0
  15. package/lib/common/index.js +27 -13
  16. package/lib/common/splitChunks.js +64 -26
  17. package/lib/common/sslcertUpdater.js +59 -0
  18. package/lib/common/templateParameters.js +25 -0
  19. package/lib/configs/jest.config.js +18 -28
  20. package/lib/configs/webpack.component.umd.config.js +31 -37
  21. package/lib/configs/webpack.css.umd.config.js +44 -44
  22. package/lib/configs/webpack.dev.config.js +113 -57
  23. package/lib/configs/webpack.docs.config.js +104 -98
  24. package/lib/configs/webpack.impact.config.js +116 -0
  25. package/lib/configs/webpack.prod.config.js +154 -86
  26. package/lib/hooks/docsProptypeHook.js +32 -38
  27. package/lib/jest/commitedFilesResult.js +144 -71
  28. package/lib/jest/coverageCollector.js +62 -29
  29. package/lib/jest/jsonMaker.js +54 -0
  30. package/lib/jest/preProcessors/cssPreprocessor.js +16 -18
  31. package/lib/jest/preProcessors/jsPreprocessor.js +5 -6
  32. package/lib/jest/preProcessors/otherFilesPreprocessor.js +5 -6
  33. package/lib/jest/result.js +91 -41
  34. package/lib/jest/run.js +74 -27
  35. package/lib/jest/setup.js +103 -102
  36. package/lib/loaderUtils/getCSSLoaders.js +77 -0
  37. package/lib/loaderUtils/getDevJsLoaders.js +30 -23
  38. package/lib/loaderUtils/index.js +14 -7
  39. package/lib/loaders/docsLoader.js +15 -15
  40. package/lib/loaders/docsPropsLoader.js +14 -17
  41. package/lib/loaders/fileBountryLoader.js +17 -0
  42. package/lib/loaders/fileLoader.js +47 -38
  43. package/lib/loaders/scriptInstrumentLoader.js +21 -20
  44. package/lib/loaders/selectorMappingLoader.js +75 -0
  45. package/lib/loaders/workerLoader.js +136 -0
  46. package/lib/middlewares/HMRMiddleware.js +59 -41
  47. package/lib/middlewares/SSTMiddleware.js +21 -0
  48. package/lib/pluginUtils/getDevPlugins.js +173 -26
  49. package/lib/pluginUtils/getDocsPlugins.js +32 -17
  50. package/lib/pluginUtils/getLibraryImactPlugins.js +23 -0
  51. package/lib/pluginUtils/getLibraryPlugins.js +8 -10
  52. package/lib/pluginUtils/getProdPlugins.js +238 -37
  53. package/lib/pluginUtils/getServerPlugins.js +8 -11
  54. package/lib/pluginUtils/getUMDCSSPlugins.js +11 -15
  55. package/lib/pluginUtils/getUMDComponentPlugins.js +11 -15
  56. package/lib/pluginUtils/index.js +36 -43
  57. package/lib/plugins/CdnChangePlugin.js +77 -0
  58. package/lib/plugins/CleanupStatsPlugin.js +28 -0
  59. package/lib/plugins/EFCPlugin.js +211 -0
  60. package/lib/plugins/EFCPlugin.md +6 -0
  61. package/lib/plugins/I18NInjectIntoIndexPlugin.js +141 -0
  62. package/lib/plugins/I18nSplitPlugin/I18nDebugPlugin.js +60 -0
  63. package/lib/plugins/I18nSplitPlugin/I18nDependency.js +44 -0
  64. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +266 -0
  65. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +183 -0
  66. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +100 -0
  67. package/lib/plugins/I18nSplitPlugin/I18nSplit.md +86 -0
  68. package/lib/plugins/I18nSplitPlugin/README.md +25 -0
  69. package/lib/plugins/I18nSplitPlugin/index.js +185 -0
  70. package/lib/plugins/I18nSplitPlugin/utils/collectI18nKeys.js +64 -0
  71. package/lib/plugins/I18nSplitPlugin/utils/getI18nFileUrlPathTemplate.js +13 -0
  72. package/lib/plugins/I18nSplitPlugin/utils/getI18nKeysFormModules.js +26 -0
  73. package/lib/plugins/I18nSplitPlugin/utils/hashUtils.js +40 -0
  74. package/lib/plugins/I18nSplitPlugin/utils/index.js +31 -0
  75. package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +112 -0
  76. package/lib/plugins/ManifestPlugin.js +52 -63
  77. package/lib/plugins/ModuleStatsPlugin.js +98 -97
  78. package/lib/plugins/OptimizeJSPlugin.js +24 -41
  79. package/lib/plugins/PublicPathCallbackPlugin.js +63 -0
  80. package/lib/plugins/PublicPathChangePlugin.js +187 -174
  81. package/lib/plugins/ReportGeneratePlugin.js +181 -0
  82. package/lib/plugins/RequireVariablePublicPlugin.js +30 -0
  83. package/lib/plugins/ResourceHintsPlugin.js +53 -35
  84. package/lib/plugins/RtlSplitPlugin/OverwriteCssPathForRTL.js +80 -0
  85. package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +82 -0
  86. package/lib/plugins/RtlSplitPlugin/RtrSplit.md +30 -0
  87. package/lib/plugins/RtlSplitPlugin/replaceCssDirTemplate.js +26 -0
  88. package/lib/plugins/ScriptInstrumentPlugin.js +22 -37
  89. package/lib/plugins/ServiceWorkerPlugin.js +107 -0
  90. package/lib/plugins/ShadowDOMSupportPlugin.js +270 -0
  91. package/lib/plugins/SourceMapHookPlugin.js +25 -31
  92. package/lib/plugins/TPHashMappingPlugin.js +67 -0
  93. package/lib/plugins/UglifyCSSPlugin.js +23 -30
  94. package/lib/plugins/UnusedFilesFindPlugin.js +150 -97
  95. package/lib/plugins/index.js +118 -55
  96. package/lib/plugins/libraryImpactPlugin.js +190 -0
  97. package/lib/plugins/webpackwatchrunplugin.js +26 -0
  98. package/lib/postcss-plugins/ExcludeRTLPlugin.js +23 -0
  99. package/lib/postcss-plugins/RTLSplitPlugin.js +138 -0
  100. package/lib/schemas/index.js +463 -52
  101. package/lib/servers/clusterHubServer.js +22 -26
  102. package/lib/servers/docsServer.js +3 -5
  103. package/lib/servers/docsServerCore.js +93 -85
  104. package/lib/servers/helpServer.js +19 -21
  105. package/lib/servers/httpsOptions.js +19 -0
  106. package/lib/servers/impactServer.js +99 -92
  107. package/lib/servers/mockserver.js +44 -0
  108. package/lib/servers/nowatchserver.js +275 -0
  109. package/lib/servers/scrServer.js +147 -0
  110. package/lib/servers/server.js +118 -124
  111. package/lib/servers/ssServer.js +107 -65
  112. package/lib/sh/reportPublish.sh +16 -10
  113. package/lib/templates/CoverageScriptTemplate.js +45 -18
  114. package/lib/templates/WMSTemplate.js +17 -18
  115. package/lib/templates/linterConstant.js +10 -0
  116. package/lib/utils/babelPresets.js +12 -5
  117. package/lib/utils/buildstats.html +148 -0
  118. package/lib/utils/clean.js +12 -11
  119. package/lib/utils/copy.js +13 -127
  120. package/lib/utils/copyTimezones.js +21 -0
  121. package/lib/utils/createEventStream.js +24 -19
  122. package/lib/utils/cssClassNameGenerate.js +70 -0
  123. package/lib/utils/cssURLReplacer.js +67 -54
  124. package/lib/utils/dependencyPostPublish.js +42 -0
  125. package/lib/utils/fileUtils.js +125 -0
  126. package/lib/utils/folderIterator.js +47 -0
  127. package/lib/utils/getComponents.js +126 -0
  128. package/lib/utils/getCurrentBranch.js +11 -17
  129. package/lib/utils/getDependenciesImpactList.js +151 -0
  130. package/lib/utils/getHash.js +26 -0
  131. package/lib/utils/getIp.js +20 -0
  132. package/lib/utils/getOptions.js +55 -30
  133. package/lib/utils/getServerURL.js +25 -8
  134. package/lib/utils/index.js +259 -82
  135. package/lib/utils/init.js +2 -2
  136. package/lib/utils/initPreCommitHook.js +40 -31
  137. package/lib/utils/jsonHelper.js +97 -0
  138. package/lib/utils/libraryImpactConfig.js +63 -0
  139. package/lib/utils/lint/addScripts.js +27 -0
  140. package/lib/utils/lint/checkExistingConfig.js +67 -0
  141. package/lib/utils/lint/copyConfigs.js +24 -0
  142. package/lib/utils/lint/index.js +54 -0
  143. package/lib/utils/lint/lintScripts.js +11 -0
  144. package/lib/utils/lint/lintSetup.js +31 -0
  145. package/lib/utils/lint/lintStagedPreCommitHook.js +7 -0
  146. package/lib/utils/lint/question.js +30 -0
  147. package/lib/utils/lintReporter.js +142 -0
  148. package/lib/utils/mailSender.js +16 -25
  149. package/lib/utils/pullOrigin.js +28 -0
  150. package/lib/utils/reinstallDependencies.js +133 -0
  151. package/lib/utils/removeAttributes.js +25 -23
  152. package/lib/utils/repoClone.js +56 -63
  153. package/lib/utils/request.js +64 -77
  154. package/lib/utils/resultSchema.json +73 -0
  155. package/lib/utils/rtl.js +42 -0
  156. package/lib/utils/setEnvVariables.js +5 -6
  157. package/lib/utils/ssTestHack.js +48 -0
  158. package/lib/utils/switchBranch.js +28 -0
  159. package/lib/utils/urlConcat.js +22 -0
  160. package/package.json +92 -64
  161. package/templates/app/.eslintrc.js +140 -0
  162. package/templates/app/README.md +12 -12
  163. package/templates/app/app/index.html +24 -8
  164. package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
  165. package/templates/app/app/properties/i18nkeys.json +3 -3
  166. package/templates/app/docs/all.html +69 -69
  167. package/templates/app/mockapi/index.js +18 -13
  168. package/templates/app/package.json +37 -17
  169. package/templates/app/src/actions/SampleActions/index.js +37 -0
  170. package/templates/app/src/actions/index.js +65 -0
  171. package/templates/app/src/appUrls.js +19 -0
  172. package/templates/app/src/components/Alert/Alert.js +134 -0
  173. package/templates/app/src/components/Alert/Alert.module.css +79 -0
  174. package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -0
  175. package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -0
  176. package/templates/app/src/components/Sample/Sample.module.css +11 -0
  177. package/templates/app/src/components/Sample/SampleList.js +61 -0
  178. package/templates/app/src/components/Slider/Slider.css +41 -0
  179. package/templates/app/src/components/Slider/Slider.js +55 -0
  180. package/templates/app/src/containers/AlertContainer/index.js +15 -0
  181. package/templates/app/src/containers/AppContainer/index.js +96 -0
  182. package/templates/app/src/containers/AppContainer/index.module.css +27 -0
  183. package/templates/app/src/containers/CustomMatch/index.js +65 -0
  184. package/templates/app/src/containers/DevTools/index.js +10 -0
  185. package/templates/app/src/containers/Header/index.js +67 -0
  186. package/templates/app/src/containers/Header/index.module.css +43 -0
  187. package/templates/app/src/containers/Redirect/index.js +63 -0
  188. package/templates/app/src/containers/Redirector/index.js +47 -0
  189. package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -0
  190. package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -0
  191. package/templates/app/src/historyChange.js +5 -0
  192. package/templates/app/src/index.html +10 -0
  193. package/templates/app/src/index.js +24 -0
  194. package/templates/app/src/middleware/PromiseMiddleware.js +59 -0
  195. package/templates/app/src/reducers/alertData.js +11 -0
  196. package/templates/app/src/reducers/index.js +6 -0
  197. package/templates/app/src/reducers/samples.js +19 -0
  198. package/templates/app/src/store/configureStore.dev.js +51 -0
  199. package/templates/app/src/store/configureStore.js +5 -0
  200. package/templates/app/src/store/configureStore.prod.js +26 -0
  201. package/templates/app/src/util/Common.js +5 -0
  202. package/templates/app/src/util/RequestAPI.js +132 -0
  203. package/templates/appold/README.md +12 -0
  204. package/templates/appold/app/index.html +8 -0
  205. package/templates/appold/app/properties/ApplicationResources_en_US.properties +1 -0
  206. package/templates/appold/app/properties/i18nkeys.json +3 -0
  207. package/templates/appold/docs/all.html +69 -0
  208. package/templates/appold/mockapi/index.js +13 -0
  209. package/templates/{app → appold}/mockapi/tickets.json +0 -0
  210. package/templates/appold/package.json +17 -0
  211. package/templates/appold/src/components/Text/Text.css +0 -0
  212. package/templates/appold/src/components/Text/Text.js +23 -0
  213. package/templates/appold/src/components/Text/__tests__/Text.spec.js +30 -0
  214. package/templates/appold/src/components/Text/docs/Text__default.docs.js +16 -0
  215. package/templates/appold/src/components/docs.js +1 -0
  216. package/templates/appold/src/components/index.js +5 -0
  217. package/templates/appold/src/index.js +13 -0
  218. package/templates/docs/all.html +1 -1
  219. package/templates/docs/component.html +110 -69
  220. package/templates/docs/components.html +221 -0
  221. package/templates/docs/css/component.css +12 -14
  222. package/templates/docs/css/componentTest.css +7 -0
  223. package/templates/docs/css/style.css +150 -206
  224. package/templates/docs/impactReportTemplate.html +154 -0
  225. package/templates/docs/index.html +1482 -1336
  226. package/templates/library/src/index.js +0 -0
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _path = _interopRequireDefault(require("path"));
9
+
10
+ var _request = _interopRequireDefault(require("./request"));
11
+
12
+ var _libraryImpactConfig = _interopRequireDefault(require("./libraryImpactConfig"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ let dependencies = ['@zohodesk/components', '@zohodesk/dot', '@zohodesk/icons', '@zohodesk/svg', '@zohodesk/variables'];
17
+
18
+ let getCurrentDependenciesInfo = () => {
19
+ let packageJson = require(_path.default.join(process.cwd(), 'package.json'));
20
+
21
+ let info = {};
22
+
23
+ for (let dependency of dependencies) {
24
+ info[dependency] = packageJson.dependencies[dependency];
25
+ }
26
+
27
+ return info;
28
+ };
29
+
30
+ let getLiveDependenciesInfo = (branch, tokenGit) => new Promise((resolve, reject) => {
31
+ let url = `${'ht'}${'tps'}://zgit.csez.zohocorpin.com/api/v4/projects/1143/repository/files/jsapps%2Fsupportapp%2Fpackage.json?ref=${branch}`;
32
+ (0, _request.default)({
33
+ url,
34
+ headers: {
35
+ 'PRIVATE-TOKEN': tokenGit
36
+ }
37
+ }).then(res => {
38
+ let {
39
+ content
40
+ } = JSON.parse(res.body);
41
+ let {
42
+ dependencies: depend
43
+ } = JSON.parse(Buffer.from(content, 'base64').toString());
44
+ let info = {};
45
+
46
+ for (let dependency of dependencies) {
47
+ info[dependency] = depend[dependency];
48
+ }
49
+
50
+ resolve(info);
51
+ }).catch(reject);
52
+ });
53
+
54
+ let getDependencyChangeset = (dependency, version) => {
55
+ return new Promise(resolve => {
56
+ let url = `${'ht'}${'tp'}://tsi-desk-mock.tsi.zohocorpin.com:8080/Hbase/getKey?method=getkey&tablename=${dependency}_changesets&row=dependencies_changesets&column=${version}`;
57
+ (0, _request.default)({
58
+ url
59
+ }).then(({
60
+ body
61
+ }) => {
62
+ if (body == "") {
63
+ console.log("Changeset for the " + dependency + " version " + version + " not stored in Hbase!");
64
+ }
65
+
66
+ resolve(body);
67
+ });
68
+ });
69
+ };
70
+
71
+ let getImpactDiff = (srcBranch, targetBranch, appName) => new Promise(resolve => {
72
+ let diff = {
73
+ [appName]: {}
74
+ };
75
+ let domain = _libraryImpactConfig.default[appName].impactDomain;
76
+ let serviceName = _libraryImpactConfig.default[appName].impactService;
77
+ (0, _request.default)({
78
+ url: `${domain}/impact/ImpactModuleAction.do?action=getCommitDiffFileDetail&serviceName=${serviceName}&masterBranchCommitHash=${targetBranch}&buildCommitHash=${srcBranch}`
79
+ }).then(res => {
80
+ let {
81
+ body
82
+ } = res;
83
+ let {
84
+ DIFF_FILES
85
+ } = JSON.parse(body);
86
+ Object.keys(DIFF_FILES).forEach(key => {
87
+ DIFF_FILES[key].forEach(({
88
+ FILEPATH
89
+ }) => {
90
+ if (FILEPATH.includes(`jsapps/${appName === 'AppSource' ? 'supportapp/src' : appName}`) && FILEPATH.endsWith('.js') && !FILEPATH.includes('.spec')) {
91
+ let {
92
+ name,
93
+ ext
94
+ } = _path.default.parse(FILEPATH);
95
+
96
+ if (!diff[appName][key]) {
97
+ diff[appName][key] = [];
98
+ }
99
+
100
+ diff[appName][key].push({
101
+ name: name + ext,
102
+ FILEPATH
103
+ });
104
+ }
105
+ });
106
+ });
107
+ resolve(diff);
108
+ });
109
+ });
110
+
111
+ var _default = (srcBranch, liveBranch, tokenGit, serviceName = 'ZohoDeskLibrary') => new Promise(resolve => {
112
+ let currentDependencies = getCurrentDependenciesInfo();
113
+ getLiveDependenciesInfo(liveBranch, tokenGit).then(liveDependencies => {
114
+ let diff = {};
115
+ let promises = [];
116
+
117
+ for (let dependency of dependencies) {
118
+ promises.push(new Promise(resolve => {
119
+ if (currentDependencies[dependency] !== liveDependencies[dependency]) {
120
+ let sanitizedName = dependency.replace('@', '').replace(/\//g, '_');
121
+ let [, folderName] = sanitizedName.split('_');
122
+ diff[folderName] = {};
123
+ let p1 = getDependencyChangeset(sanitizedName, currentDependencies[dependency]);
124
+ let p2 = getDependencyChangeset(sanitizedName, liveDependencies[dependency]);
125
+ Promise.all([p1, p2]).then(([currentChangeset, liveChangeset]) => {
126
+ getImpactDiff(liveChangeset, currentChangeset, folderName).then(impacts => {
127
+ Object.assign(diff, impacts);
128
+ resolve();
129
+ });
130
+ });
131
+ } else {
132
+ resolve();
133
+ }
134
+ }));
135
+ }
136
+
137
+ promises.push(new Promise(resolve => {
138
+ getImpactDiff(srcBranch, liveBranch, 'AppSource').then(impacts => {
139
+ Object.assign(diff, impacts);
140
+ resolve();
141
+ });
142
+ }));
143
+ Promise.all(promises).then(() => {
144
+ resolve(diff);
145
+ });
146
+ }).catch(e => {
147
+ throw e;
148
+ });
149
+ });
150
+
151
+ exports.default = _default;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = getHash;
7
+
8
+ var _crypto = _interopRequireDefault(require("crypto"));
9
+
10
+ var _fs = _interopRequireDefault(require("fs"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ function getHash(file, size = 20, isPath = false) {
15
+ let hash = _crypto.default.createHash('md5');
16
+
17
+ let fileNew = file;
18
+
19
+ if (isPath) {
20
+ fileNew = _fs.default.readFileSync(file);
21
+ }
22
+
23
+ hash.update(fileNew);
24
+ hash = hash.digest('hex');
25
+ return hash ? hash.substring(0, size) : null;
26
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ let os = require('os');
4
+
5
+ module.exports = function getIP() {
6
+ let ifaces = os.networkInterfaces();
7
+ let ips = [];
8
+ Object.keys(ifaces).forEach(ifname => {
9
+ let a = ifaces[ifname].map(iface => {
10
+ if ('IPv4' !== iface.family || iface.internal !== false) {
11
+ return null;
12
+ }
13
+
14
+ return iface.address;
15
+ }).filter(a => a);
16
+ ips = ips.concat(a);
17
+ });
18
+ ips.push('127.0.0.1');
19
+ return ips[0];
20
+ };
@@ -1,72 +1,97 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.default = void 0;
6
7
 
7
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
8
+ var _fs = _interopRequireDefault(require("fs"));
8
9
 
9
- var _fs = require('fs');
10
+ var _path = _interopRequireDefault(require("path"));
10
11
 
11
- var _fs2 = _interopRequireDefault(_fs);
12
+ var _schemas = _interopRequireDefault(require("../schemas"));
12
13
 
13
- var _path = require('path');
14
-
15
- var _path2 = _interopRequireDefault(_path);
16
-
17
- var _schemas = require('../schemas');
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
15
 
19
- var _schemas2 = _interopRequireDefault(_schemas);
16
+ const NPM_CONFIG_PREFIX = 'npm_config_'; // TODO: we have to do option parse logic little better
17
+ // if user use react-cli stritly without using npm scripts options won't work,
18
+ // So we have to write our own option parse logic or some other library
19
+ // console.log('type', process.argv, process.env.npm_config_check, process.env.npm_config_clone_type, process.env.npm_config_clone_url);
20
+ // console.log('Object.keys(process.env).filter(s => s.startsWith(\'npm_config_\') && s.includes(\'clone\')', Object.keys(process.env).filter(s => s.startsWith('npm_config_') && s.includes('clone')));
21
+ // // clone:type
22
+
23
+ const processEnv = {};
24
+ let keysWithColon = [];
25
+ Object.keys(process.env).filter(key => key.startsWith(NPM_CONFIG_PREFIX)).forEach(key => {
26
+ let nkey = key.slice(NPM_CONFIG_PREFIX.length);
27
+ processEnv[nkey] = process.env[key];
28
+ nkey.includes(':') && keysWithColon.push(nkey);
29
+ });
30
+ keysWithColon.forEach(key => {
31
+ let nkey = key.replace(/:/g, '_');
20
32
 
21
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
+ if (processEnv[nkey]) {
34
+ throw Error('there is some options conflict', key, nkey);
35
+ }
22
36
 
23
- var defaulter = function defaulter(target, source) {
24
- var defaultObject = {};
37
+ processEnv[nkey] = processEnv[key];
38
+ });
25
39
 
26
- Object.keys(target).forEach(function (key) {
27
- var data = target[key];
28
- if (data && (typeof data === 'undefined' ? 'undefined' : _typeof(data)) === 'object') {
29
- if (typeof data.cli === 'string') {
30
- var cliData = void 0;
31
- if (typeof process.env['npm_config_' + data.cli] === 'string') {
32
- cliData = process.env['npm_config_' + data.cli];
40
+ let defaulter = (target, source) => {
41
+ let defaultObject = {};
42
+ Object.keys(target).forEach(key => {
43
+ let data = target[key];
44
+
45
+ if (data && typeof data === 'object') {
46
+ if (Array.isArray(data)) {
47
+ defaultObject[key] = source[key] || data;
48
+ } else if (typeof data.cli === 'string') {
49
+ let cliData;
50
+
51
+ if (typeof processEnv[data.cli] === 'string') {
52
+ cliData = processEnv[data.cli];
53
+ } else if (typeof processEnv[data.cli.toLowerCase()] === 'string') {
54
+ cliData = processEnv[data.cli.toLowerCase()];
33
55
  } else {
34
56
  cliData = source && source[key] || data.value;
35
57
  }
58
+
36
59
  if (typeof data.value === 'boolean') {
37
60
  cliData = cliData === 'true' || cliData === true ? true : cliData === 'false' || cliData === false || cliData === '' ? false : data.value;
38
61
  }
39
62
 
40
63
  defaultObject[key] = cliData;
41
64
  } else {
42
- defaultObject[key] = defaulter(data, source && source[key] ? source[key] : {});
65
+ defaultObject[key] = defaulter(data, source && source[key] ? source[key] : Array.isArray(target[key]) ? [] : {});
43
66
  }
44
67
  } else {
45
- defaultObject[key] = (typeof source === 'undefined' ? 'undefined' : _typeof(source)) === 'object' && source[key] !== null && typeof source[key] !== 'undefined' ? source[key] : target[key];
68
+ defaultObject[key] = typeof source === 'object' && source[key] !== null && typeof source[key] !== 'undefined' ? source[key] : target[key];
46
69
  }
47
70
  });
48
-
49
71
  return defaultObject;
50
72
  };
51
73
 
52
74
  global.reactCLIOptions = null;
53
75
 
54
- var getOptions = function getOptions() {
76
+ let getOptions = () => {
55
77
  if (global.reactCLIOptions) {
56
78
  return global.reactCLIOptions;
57
79
  }
58
- var appPath = process.cwd();
59
- var userSchemas = void 0;
60
- var packagePath = _path2.default.join(appPath, 'package.json');
61
80
 
62
- if (_fs2.default.existsSync(packagePath)) {
81
+ let appPath = process.cwd();
82
+ let userSchemas;
83
+
84
+ let packagePath = _path.default.join(appPath, 'package.json');
85
+
86
+ if (_fs.default.existsSync(packagePath)) {
63
87
  userSchemas = require(packagePath)['react-cli'] || {};
64
88
  }
65
89
 
66
- var options = defaulter(_schemas2.default, userSchemas || {});
90
+ let options = defaulter(_schemas.default, userSchemas || {});
67
91
  options.packageVersion = process.env.npm_package_version;
68
92
  global.reactCLIOptions = options;
69
93
  return options;
70
94
  };
71
95
 
72
- exports.default = getOptions;
96
+ var _default = getOptions;
97
+ exports.default = _default;
@@ -1,18 +1,35 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- var getServerURL = function getServerURL(serverInfo, protocol) {
7
- var host = serverInfo.host,
8
- domain = serverInfo.domain,
9
- port = serverInfo.port;
6
+ exports.default = void 0;
10
7
 
8
+ let getServerURL = (serverInfo, protocol) => {
9
+ let {
10
+ host,
11
+ domain,
12
+ port
13
+ } = serverInfo;
14
+
15
+ if (protocol) {
16
+ if (protocol === 'ht' + 'tp') {
17
+ port = Number(port) + 1;
18
+
19
+ if (domain) {
20
+ return `${protocol ? `${protocol}:` : ''}//${host}.${domain}.zohocorpin.com:${Number(port) + 1}`;
21
+ }
22
+
23
+ return `${protocol ? `${protocol}:` : ''}//${host}:${port}`;
24
+ }
25
+ }
11
26
 
12
27
  if (domain) {
13
- return (protocol ? protocol + ':' : '') + '//' + host + '.' + domain + '.zohocorpin.com:' + port;
28
+ return `${protocol ? `${protocol}:` : ''}//${host}.${domain}.zohocorpin.com:${port}`;
14
29
  }
15
- return (protocol ? protocol + ':' : '') + '//' + host + ':' + port;
30
+
31
+ return `${protocol ? `${protocol}:` : ''}//${host}:${port}`;
16
32
  };
17
33
 
18
- exports.default = getServerURL;
34
+ var _default = getServerURL;
35
+ exports.default = _default;