@zohodesk/react-cli 0.0.1-exp.169.2 → 0.0.1-exp.175.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (245) hide show
  1. package/.eslintignore +7 -7
  2. package/.eslintrc.js +180 -179
  3. package/.prettierrc +6 -6
  4. package/README.md +1028 -951
  5. package/bin/cli.js +483 -483
  6. package/cert/Tsicsezwild-22-23.crt +37 -37
  7. package/cert/Tsicsezwild-22-23.key +27 -27
  8. package/docs/CustomChunks.md +26 -26
  9. package/docs/DevStart.md +18 -18
  10. package/docs/HoverActive.md +12 -12
  11. package/docs/InstallNode.md +28 -28
  12. package/docs/TODOS.md +10 -10
  13. package/docs/ValueReplacer.md +60 -60
  14. package/docs/VariableConversion.md +678 -0
  15. package/docs/warnings_while_install.txt +35 -35
  16. package/files/eslintrc.js +62 -62
  17. package/files/prettierrc.js +3 -3
  18. package/lib/babel/cmjs-plugins-presets.js +0 -4
  19. package/lib/babel/es-plugins-presets.js +0 -4
  20. package/lib/common/getEntries.js +0 -10
  21. package/lib/common/getPublicPathConfig.js +0 -6
  22. package/lib/common/index.js +0 -5
  23. package/lib/common/splitChunks.js +2 -13
  24. package/lib/common/sslcertUpdater.js +6 -17
  25. package/lib/common/templateParameters.js +0 -2
  26. package/lib/common/testPattern.js +10 -21
  27. package/lib/common/valueReplacer.js +0 -15
  28. package/lib/configs/jest.config.js +8 -21
  29. package/lib/configs/libAlias.js +11 -2
  30. package/lib/configs/webpack.component.umd.config.js +0 -5
  31. package/lib/configs/webpack.css.umd.config.js +5 -13
  32. package/lib/configs/webpack.dev.config.js +13 -24
  33. package/lib/configs/webpack.docs.config.js +6 -12
  34. package/lib/configs/webpack.impact.config.js +6 -10
  35. package/lib/configs/webpack.prod.config.js +15 -26
  36. package/lib/hooks/docsProptypeHook.js +3 -7
  37. package/lib/jest/commitedFilesResult.js +3 -45
  38. package/lib/jest/coverageCollector.js +0 -11
  39. package/lib/jest/jsonMaker.js +0 -6
  40. package/lib/jest/preProcessors/cssPreprocessor.js +14 -13
  41. package/lib/jest/preProcessors/jsPreprocessor.js +0 -2
  42. package/lib/jest/preProcessors/otherFilesPreprocessor.js +0 -3
  43. package/lib/jest/result.js +0 -22
  44. package/lib/jest/run.js +6 -17
  45. package/lib/jest/setup.js +5 -57
  46. package/lib/loaderUtils/configsAssetsLoaders.js +34 -44
  47. package/lib/loaderUtils/getCSSLoaders.js +41 -28
  48. package/lib/loaderUtils/getDevJsLoaders.js +0 -8
  49. package/lib/loaderUtils/index.js +0 -3
  50. package/lib/loaders/docsLoader.js +0 -7
  51. package/lib/loaders/docsPropsLoader.js +3 -7
  52. package/lib/loaders/fileBountryLoader.js +0 -2
  53. package/lib/loaders/fileLoader.js +11 -22
  54. package/lib/loaders/scriptInstrumentLoader.js +5 -13
  55. package/lib/loaders/selectorMappingLoader.js +7 -25
  56. package/lib/loaders/workerLoader.js +13 -29
  57. package/lib/middlewares/HMRMiddleware.js +13 -26
  58. package/lib/middlewares/SSTMiddleware.js +0 -3
  59. package/lib/pluginUtils/configHtmlWebpackPlugins.js +53 -0
  60. package/lib/pluginUtils/getDevPlugins.js +20 -64
  61. package/lib/pluginUtils/getDocsPlugins.js +1 -10
  62. package/lib/pluginUtils/getLibraryImactPlugins.js +4 -5
  63. package/lib/pluginUtils/getLibraryPlugins.js +0 -5
  64. package/lib/pluginUtils/getProdPlugins.js +32 -78
  65. package/lib/pluginUtils/getServerPlugins.js +0 -5
  66. package/lib/pluginUtils/getUMDCSSPlugins.js +0 -7
  67. package/lib/pluginUtils/getUMDComponentPlugins.js +0 -7
  68. package/lib/pluginUtils/index.js +0 -8
  69. package/lib/plugins/CdnChangePlugin.js +0 -14
  70. package/lib/plugins/CleanupStatsPlugin.js +0 -5
  71. package/lib/plugins/EFCPlugin.js +23 -34
  72. package/lib/plugins/EFCPlugin.md +6 -6
  73. package/lib/plugins/EFCTemplatePlugin.js +23 -32
  74. package/lib/plugins/I18NInjectIntoIndexPlugin.js +12 -38
  75. package/lib/plugins/I18nSplitPlugin/I18nDebugPlugin.js +12 -17
  76. package/lib/plugins/I18nSplitPlugin/I18nDependency.js +4 -10
  77. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +46 -77
  78. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +44 -59
  79. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +21 -30
  80. package/lib/plugins/I18nSplitPlugin/I18nSplit.md +95 -95
  81. package/lib/plugins/I18nSplitPlugin/README.md +25 -25
  82. package/lib/plugins/I18nSplitPlugin/index.js +70 -80
  83. package/lib/plugins/I18nSplitPlugin/utils/collectI18nKeys.js +2 -12
  84. package/lib/plugins/I18nSplitPlugin/utils/getI18nFileUrlPathTemplate.js +0 -1
  85. package/lib/plugins/I18nSplitPlugin/utils/getI18nKeysFormModules.js +0 -5
  86. package/lib/plugins/I18nSplitPlugin/utils/hashUtils.js +0 -6
  87. package/lib/plugins/I18nSplitPlugin/utils/index.js +0 -4
  88. package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +2 -20
  89. package/lib/plugins/ManifestPlugin.js +0 -17
  90. package/lib/plugins/ModuleStatsPlugin.js +0 -23
  91. package/lib/plugins/OptimizeJSPlugin.js +0 -7
  92. package/lib/plugins/PublicPathCallbackPlugin.js +0 -10
  93. package/lib/plugins/PublicPathChangePlugin.js +4 -36
  94. package/lib/plugins/ReportGeneratePlugin.js +4 -30
  95. package/lib/plugins/RequireVariablePublicPlugin.js +0 -6
  96. package/lib/plugins/ResourceHintsPlugin.js +20 -27
  97. package/lib/plugins/RtlSplitPlugin/OverwriteCssPathForRTL.js +12 -17
  98. package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +23 -38
  99. package/lib/plugins/RtlSplitPlugin/RtrSplit.md +30 -30
  100. package/lib/plugins/RtlSplitPlugin/replaceCssDirTemplate.js +2 -5
  101. package/lib/plugins/ScriptInstrumentPlugin.js +0 -7
  102. package/lib/plugins/ServiceWorkerPlugin.js +13 -29
  103. package/lib/plugins/ShadowDOMSupportPlugin.js +3 -40
  104. package/lib/plugins/SourceMapHookPlugin.js +0 -9
  105. package/lib/plugins/TPHashMappingPlugin.js +5 -19
  106. package/lib/plugins/UglifyCSSPlugin.js +0 -9
  107. package/lib/plugins/UnusedFilesFindPlugin.js +2 -35
  108. package/lib/plugins/index.js +0 -19
  109. package/lib/plugins/libraryImpactPlugin.js +0 -32
  110. package/lib/plugins/webpackwatchrunplugin.js +0 -5
  111. package/lib/postcss-plugins/ExcludePlugin.js +0 -4
  112. package/lib/postcss-plugins/RTLSplitPlugin.js +24 -37
  113. package/lib/postcss-plugins/ValueReplacer.js +9 -6
  114. package/lib/postcss-plugins/__test__/hoverActivePlugin.spec.js +0 -3
  115. package/lib/postcss-plugins/__test__/test1Input.css +38 -38
  116. package/lib/postcss-plugins/__test__/test1Output.css +38 -38
  117. package/lib/postcss-plugins/hoverActivePlugin.js +80 -92
  118. package/lib/postcss-plugins/variableModificationPlugin/ErrorHandler.js +31 -0
  119. package/lib/postcss-plugins/variableModificationPlugin/index.js +232 -0
  120. package/lib/postcss-plugins/variableModifier.js +14 -20
  121. package/lib/schemas/index.js +28 -13
  122. package/lib/servers/clusterHubServer.js +0 -10
  123. package/lib/servers/devBuild.js +13 -24
  124. package/lib/servers/docsServer.js +0 -2
  125. package/lib/servers/docsServerCore.js +0 -21
  126. package/lib/servers/getCliPath.js +1 -10
  127. package/lib/servers/helpServer.js +0 -5
  128. package/lib/servers/httpsOptions.js +0 -4
  129. package/lib/servers/impactServer.js +2 -34
  130. package/lib/servers/mockserver.js +0 -9
  131. package/lib/servers/nowatchserver.js +12 -34
  132. package/lib/servers/scrServer.js +13 -20
  133. package/lib/servers/server.js +7 -35
  134. package/lib/servers/ssServer.js +0 -16
  135. package/lib/sh/pre-commit.sh +34 -34
  136. package/lib/sh/reportPublish.sh +45 -45
  137. package/lib/templates/CoverageScriptTemplate.js +0 -14
  138. package/lib/templates/WMSTemplate.js +6 -12
  139. package/lib/utils/babelPresets.js +0 -2
  140. package/lib/utils/buildstats.html +148 -148
  141. package/lib/utils/clean.js +2 -8
  142. package/lib/utils/copy.js +0 -6
  143. package/lib/utils/copyTimezones.js +0 -8
  144. package/lib/utils/createEventStream.js +0 -4
  145. package/lib/utils/cssClassNameGenerate.js +3 -19
  146. package/lib/utils/cssURLReplacer.js +0 -25
  147. package/lib/utils/dependencyPostPublish.js +0 -9
  148. package/lib/utils/fileUtils.js +0 -26
  149. package/lib/utils/folderIterator.js +0 -10
  150. package/lib/utils/getComponents.js +0 -21
  151. package/lib/utils/getCurrentBranch.js +0 -5
  152. package/lib/utils/getDependenciesImpactList.js +0 -21
  153. package/lib/utils/getHash.js +0 -7
  154. package/lib/utils/getIp.js +0 -2
  155. package/lib/utils/getOptions.js +38 -35
  156. package/lib/utils/getServerURL.js +0 -7
  157. package/lib/utils/index.js +2 -47
  158. package/lib/utils/init.js +0 -1
  159. package/lib/utils/initPreCommitHook.js +6 -29
  160. package/lib/utils/jsonHelper.js +2 -19
  161. package/lib/utils/libraryImpactConfig.js +0 -2
  162. package/lib/utils/lint/addScripts.js +2 -5
  163. package/lib/utils/lint/checkExistingConfig.js +3 -12
  164. package/lib/utils/lint/copyConfigs.js +0 -3
  165. package/lib/utils/lint/index.js +0 -9
  166. package/lib/utils/lint/lintScripts.js +0 -1
  167. package/lib/utils/lint/lintSetup.js +3 -4
  168. package/lib/utils/lint/lintStagedPreCommitHook.js +0 -1
  169. package/lib/utils/lint/question.js +0 -7
  170. package/lib/utils/lintReporter.js +0 -20
  171. package/lib/utils/mailSender.js +0 -7
  172. package/lib/utils/pullOrigin.js +0 -4
  173. package/lib/utils/reinstallDependencies.js +0 -28
  174. package/lib/utils/removeAttributes.js +0 -7
  175. package/lib/utils/repoClone.js +2 -27
  176. package/lib/utils/request.js +0 -12
  177. package/lib/utils/resultSchema.json +73 -73
  178. package/lib/utils/rtl.js +4 -16
  179. package/lib/utils/setEnvVariables.js +0 -2
  180. package/lib/utils/ssTestHack.js +0 -10
  181. package/lib/utils/switchBranch.js +0 -4
  182. package/lib/utils/urlConcat.js +0 -4
  183. package/lib/utils/useExitCleanup.js +9 -10
  184. package/npm8.md +9 -9
  185. package/package.json +146 -148
  186. package/postpublish.js +6 -6
  187. package/templates/app/.eslintrc.js +140 -140
  188. package/templates/app/README.md +12 -12
  189. package/templates/app/app/index.html +24 -24
  190. package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
  191. package/templates/app/app/properties/i18nkeys.json +3 -3
  192. package/templates/app/docs/all.html +69 -69
  193. package/templates/app/mockapi/index.js +18 -18
  194. package/templates/app/package.json +37 -37
  195. package/templates/app/src/actions/SampleActions/index.js +37 -37
  196. package/templates/app/src/actions/index.js +65 -65
  197. package/templates/app/src/appUrls.js +19 -19
  198. package/templates/app/src/components/Alert/Alert.js +134 -134
  199. package/templates/app/src/components/Alert/Alert.module.css +79 -79
  200. package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -37
  201. package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -84
  202. package/templates/app/src/components/Sample/Sample.module.css +11 -11
  203. package/templates/app/src/components/Sample/SampleList.js +61 -61
  204. package/templates/app/src/components/Slider/Slider.css +41 -41
  205. package/templates/app/src/components/Slider/Slider.js +55 -55
  206. package/templates/app/src/containers/AlertContainer/index.js +15 -15
  207. package/templates/app/src/containers/AppContainer/index.js +96 -96
  208. package/templates/app/src/containers/AppContainer/index.module.css +27 -27
  209. package/templates/app/src/containers/CustomMatch/index.js +65 -65
  210. package/templates/app/src/containers/DevTools/index.js +10 -10
  211. package/templates/app/src/containers/Header/index.js +67 -67
  212. package/templates/app/src/containers/Header/index.module.css +43 -43
  213. package/templates/app/src/containers/Redirect/index.js +63 -63
  214. package/templates/app/src/containers/Redirector/index.js +47 -47
  215. package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -42
  216. package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -3
  217. package/templates/app/src/historyChange.js +5 -5
  218. package/templates/app/src/index.html +10 -10
  219. package/templates/app/src/index.js +24 -24
  220. package/templates/app/src/middleware/PromiseMiddleware.js +59 -59
  221. package/templates/app/src/reducers/alertData.js +11 -11
  222. package/templates/app/src/reducers/index.js +6 -6
  223. package/templates/app/src/reducers/samples.js +19 -19
  224. package/templates/app/src/store/configureStore.dev.js +51 -51
  225. package/templates/app/src/store/configureStore.js +5 -5
  226. package/templates/app/src/store/configureStore.prod.js +26 -26
  227. package/templates/app/src/util/Common.js +5 -5
  228. package/templates/app/src/util/RequestAPI.js +132 -132
  229. package/templates/docs/all.html +249 -249
  230. package/templates/docs/component.html +178 -178
  231. package/templates/docs/components.html +221 -221
  232. package/templates/docs/css/b.min.css +6 -6
  233. package/templates/docs/css/component.css +42 -42
  234. package/templates/docs/css/componentTest.css +6 -6
  235. package/templates/docs/css/hopscotch.css +585 -585
  236. package/templates/docs/css/style.css +1022 -1022
  237. package/templates/docs/impactReportTemplate.html +154 -154
  238. package/templates/docs/index.html +1501 -1493
  239. package/templates/docs/js/active-line.js +72 -72
  240. package/templates/docs/js/b.min.js +7 -7
  241. package/templates/docs/js/codemirror.js +9680 -9680
  242. package/templates/docs/js/designTokens.js +334 -334
  243. package/templates/docs/js/j.min.js +4 -4
  244. package/templates/docs/js/javascript.js +874 -874
  245. package/templates/docs/js/matchbrackets.js +145 -145
package/.eslintignore CHANGED
@@ -1,7 +1,7 @@
1
- **/*.docs.js
2
- **/*.spec.js
3
- /src/jest/setup.js
4
- **/lib/*
5
- **/es/*
6
- **/templates/*
7
- **/eslint
1
+ **/*.docs.js
2
+ **/*.spec.js
3
+ /src/jest/setup.js
4
+ **/lib/*
5
+ **/es/*
6
+ **/templates/*
7
+ **/eslint
package/.eslintrc.js CHANGED
@@ -1,179 +1,180 @@
1
- let getOptions = require('./lib/utils/getOptions').default;
2
-
3
- let {
4
- esLint: { isCI }
5
- } = getOptions();
6
- let logLevel = 'error';
7
-
8
- let CIConfig = {
9
- env: {
10
- browser: true,
11
- commonjs: true,
12
- es6: true,
13
- node: true
14
- },
15
- parser: 'babel-eslint',
16
- parserOptions: {
17
- ecmaFeatures: {
18
- jsx: true
19
- },
20
- sourceType: 'module',
21
- allowImportExportEverywhere: true
22
- },
23
- settings: {
24
- react: {
25
- version: '16.8.5'
26
- }
27
- },
28
- plugins: ['@zohodesk/zsecurity', '@zohodesk/react-performance'],
29
- rules: {
30
- '@zohodesk/zsecurity/no-unsecure-html': [logLevel],
31
- '@zohodesk/zsecurity/no-protocol-check': [logLevel],
32
- '@zohodesk/react-performance/no-ref-mapstatetoprops': [logLevel]
33
- }
34
- };
35
-
36
- let commonConfigs = {
37
- env: {
38
- browser: true,
39
- commonjs: true,
40
- es6: true,
41
- node: true
42
- },
43
- extends: [
44
- 'eslint:recommended',
45
- 'plugin:react/recommended',
46
- 'plugin:css-modules/recommended'
47
- ],
48
- parserOptions: {
49
- ecmaFeatures: {
50
- jsx: true
51
- },
52
- sourceType: 'module'
53
- },
54
- settings: {
55
- react: {
56
- version: '16.8.5'
57
- }
58
- },
59
- plugins: [
60
- 'react',
61
- 'css-modules',
62
- '@zohodesk/zsecurity',
63
- '@zohodesk/react-performance'
64
- ],
65
- rules: {
66
- '@zohodesk/zsecurity/no-unsecure-html': [logLevel],
67
- '@zohodesk/zsecurity/no-protocol-check': [logLevel],
68
- '@zohodesk/react-performance/no-ref-mapstatetoprops': [logLevel],
69
- 'for-direction': [logLevel],
70
- 'no-prototype-builtins': [logLevel],
71
- 'no-template-curly-in-string': [logLevel],
72
- 'array-callback-return': [logLevel],
73
- curly: [logLevel],
74
- 'default-case': [logLevel],
75
- 'dot-location': [logLevel, 'property'],
76
- 'dot-notation': [logLevel],
77
- eqeqeq: [logLevel],
78
- 'guard-for-in': [logLevel],
79
- 'no-alert': [logLevel],
80
- 'no-caller': [logLevel],
81
- 'no-div-regex': [logLevel],
82
- 'no-else-return': [logLevel],
83
- 'no-empty-function': [logLevel],
84
- 'no-eq-null': [logLevel],
85
- 'no-eval': [logLevel],
86
- 'no-extend-native': [logLevel],
87
- 'no-extra-bind': [logLevel],
88
- 'no-floating-decimal': [logLevel],
89
- 'no-iterator': [logLevel],
90
- 'no-labels': [logLevel],
91
- 'no-loop-func': [logLevel],
92
- 'no-multi-str': [logLevel],
93
- 'no-new-wrappers': [logLevel],
94
- 'no-param-reassign': [logLevel],
95
- 'no-proto': [logLevel],
96
- 'no-redeclare': [
97
- logLevel,
98
- {
99
- builtinGlobals: true
100
- }
101
- ],
102
- 'no-return-assign': [logLevel],
103
- 'no-script-url': [logLevel],
104
- 'wrap-iife': [logLevel, 'outside'],
105
- 'block-spacing': [logLevel],
106
- 'brace-style': [logLevel],
107
- camelcase: [logLevel],
108
- 'comma-dangle': [logLevel],
109
- 'comma-spacing': [logLevel],
110
- 'func-call-spacing': [logLevel],
111
- // reference to this https://stackoverflow.com/questions/56337176/prettier-and-eslint-indents-not-working-together
112
- // when using prettier, we should disable eslint's indent rule
113
- indent: ['off', 2, { SwitchCase: 1 }],
114
- 'jsx-quotes': [logLevel, 'prefer-single'],
115
- 'key-spacing': [logLevel],
116
- 'keyword-spacing': [logLevel],
117
- 'lines-between-class-members': [logLevel],
118
- 'no-whitespace-before-property': [logLevel],
119
- 'object-curly-spacing': [logLevel, 'always'],
120
- 'space-before-blocks': [logLevel],
121
- 'switch-colon-spacing': [logLevel],
122
- 'space-in-parens': [logLevel],
123
- quotes: [logLevel, 'single'],
124
- semi: [logLevel],
125
- 'semi-spacing': [logLevel],
126
- 'arrow-spacing': [logLevel],
127
- 'arrow-body-style': [logLevel],
128
- 'arrow-parens': [logLevel, 'as-needed'],
129
- 'no-const-assign': [logLevel],
130
- 'no-dupe-class-members': [logLevel],
131
- 'no-this-before-super': [logLevel],
132
- 'no-duplicate-imports': [
133
- logLevel,
134
- {
135
- includeExports: true
136
- }
137
- ],
138
- 'no-var': [logLevel],
139
- 'prefer-destructuring': [logLevel],
140
- 'prefer-arrow-callback': [logLevel],
141
- 'prefer-spread': [logLevel],
142
- 'prefer-template': [logLevel],
143
- 'prefer-rest-params': [logLevel],
144
- 'no-useless-constructor': [logLevel],
145
- 'no-use-before-define': [logLevel],
146
-
147
- 'react/default-props-match-prop-types': [logLevel],
148
- 'react/destructuring-assignment': [logLevel],
149
- // 'react/no-did-update-set-state': [logLevel],
150
- 'react/no-redundant-should-component-update': [logLevel],
151
- 'react/no-danger': [logLevel],
152
- 'react/no-this-in-sfc': [logLevel],
153
- 'react/no-will-update-set-state': [logLevel],
154
- 'react/no-unused-state': [logLevel],
155
- // 'react/require-default-props': [logLevel],
156
- // 'react/require-optimization': [logLevel],
157
-
158
- 'react/jsx-closing-bracket-location': [logLevel],
159
- 'react/jsx-equals-spacing': [logLevel],
160
- 'react/jsx-indent': [logLevel, 2],
161
- 'react/jsx-key': [logLevel],
162
- 'react/jsx-pascal-case': [logLevel],
163
-
164
- 'react/no-array-index-key': [logLevel],
165
- 'react/no-unused-prop-types': [logLevel],
166
- 'react/forbid-component-props': [0],
167
- 'react/forbid-dom-props': [logLevel],
168
- 'react/jsx-no-bind': [logLevel],
169
- 'react/sort-prop-types': [logLevel],
170
- 'react/jsx-no-duplicate-props': [logLevel],
171
- 'react/no-deprecated': [logLevel],
172
- 'react/no-children-prop': [logLevel],
173
-
174
- 'css-modules/no-unused-class': [logLevel, { camelCase: true }],
175
- 'css-modules/no-undef-class': [logLevel, { camelCase: 'only' }]
176
- }
177
- };
178
-
179
- module.exports = isCI ? CIConfig : commonConfigs;
1
+ let getOptions = require('./lib/utils/getOptions').default;
2
+
3
+ let {
4
+ esLint: { isCI }
5
+ } = getOptions();
6
+ let logLevel = 'error';
7
+
8
+ let CIConfig = {
9
+ env: {
10
+ browser: true,
11
+ commonjs: true,
12
+ es6: true,
13
+ node: true
14
+ },
15
+ parser: 'babel-eslint',
16
+ parserOptions: {
17
+ ecmaFeatures: {
18
+ jsx: true
19
+ },
20
+ sourceType: 'module',
21
+ allowImportExportEverywhere: true
22
+ },
23
+ settings: {
24
+ react: {
25
+ version: '16.8.5'
26
+ }
27
+ },
28
+ plugins: ['@zohodesk/zsecurity', '@zohodesk/react-performance'],
29
+ rules: {
30
+ '@zohodesk/zsecurity/no-unsecure-html': [logLevel],
31
+ '@zohodesk/zsecurity/no-protocol-check': [logLevel],
32
+ '@zohodesk/react-performance/no-ref-mapstatetoprops': [logLevel]
33
+ }
34
+ };
35
+
36
+ let commonConfigs = {
37
+ env: {
38
+ browser: true,
39
+ commonjs: true,
40
+ es6: true,
41
+ node: true
42
+ },
43
+ extends: [
44
+ 'eslint:recommended',
45
+ 'plugin:react/recommended',
46
+ 'plugin:css-modules/recommended'
47
+ ],
48
+ parserOptions: {
49
+ ecmaFeatures: {
50
+ jsx: true
51
+ },
52
+ sourceType: 'module'
53
+ },
54
+ settings: {
55
+ react: {
56
+ version: '16.8.5'
57
+ }
58
+ },
59
+ plugins: [
60
+ 'react',
61
+ 'css-modules',
62
+ '@zohodesk/zsecurity',
63
+ '@zohodesk/react-performance'
64
+ ],
65
+ rules: {
66
+ '@zohodesk/zsecurity/no-unsecure-html': [logLevel],
67
+ '@zohodesk/zsecurity/no-protocol-check': [logLevel],
68
+ '@zohodesk/react-performance/no-ref-mapstatetoprops': [logLevel],
69
+ 'for-direction': [logLevel],
70
+ 'no-prototype-builtins': [logLevel],
71
+ 'no-template-curly-in-string': [logLevel],
72
+ 'array-callback-return': [logLevel],
73
+ curly: [logLevel],
74
+ 'default-case': [logLevel],
75
+ 'dot-location': [logLevel, 'property'],
76
+ 'dot-notation': [logLevel],
77
+ eqeqeq: [logLevel],
78
+ 'guard-for-in': [logLevel],
79
+ 'no-alert': [logLevel],
80
+ 'no-caller': [logLevel],
81
+ 'no-div-regex': [logLevel],
82
+ 'no-else-return': [logLevel],
83
+ 'no-empty-function': [logLevel],
84
+ 'no-eq-null': [logLevel],
85
+ 'no-eval': [logLevel],
86
+ 'no-extend-native': [logLevel],
87
+ 'no-extra-bind': [logLevel],
88
+ 'no-floating-decimal': [logLevel],
89
+ 'no-iterator': [logLevel],
90
+ 'no-labels': [logLevel],
91
+ 'no-loop-func': [logLevel],
92
+ 'no-multi-str': [logLevel],
93
+ 'no-new-wrappers': [logLevel],
94
+ 'no-param-reassign': [logLevel],
95
+ 'no-proto': [logLevel],
96
+ 'no-redeclare': [
97
+ logLevel,
98
+ {
99
+ builtinGlobals: true
100
+ }
101
+ ],
102
+ 'no-return-assign': [logLevel],
103
+ 'no-script-url': [logLevel],
104
+ 'wrap-iife': [logLevel, 'outside'],
105
+ 'block-spacing': [logLevel],
106
+ 'brace-style': [logLevel],
107
+ camelcase: [logLevel],
108
+ 'comma-dangle': [logLevel],
109
+ 'comma-spacing': [logLevel],
110
+ 'func-call-spacing': [logLevel],
111
+ // reference to this https://stackoverflow.com/questions/56337176/prettier-and-eslint-indents-not-working-together
112
+ // when using prettier, we should disable eslint's indent rule
113
+ indent: ['off', 2, { SwitchCase: 1 }],
114
+ 'jsx-quotes': [logLevel, 'prefer-single'],
115
+ 'key-spacing': [logLevel],
116
+ 'keyword-spacing': [logLevel],
117
+ 'lines-between-class-members': [logLevel],
118
+ 'no-whitespace-before-property': [logLevel],
119
+ 'object-curly-spacing': [logLevel, 'always'],
120
+ 'space-before-blocks': [logLevel],
121
+ 'switch-colon-spacing': [logLevel],
122
+ 'space-in-parens': [logLevel],
123
+ quotes: [logLevel, 'single'],
124
+ semi: [logLevel],
125
+ 'semi-spacing': [logLevel],
126
+ 'arrow-spacing': [logLevel],
127
+ 'arrow-body-style': [logLevel],
128
+ 'prefer-const': [logLevel],
129
+ 'arrow-parens': [logLevel, 'as-needed'],
130
+ 'no-const-assign': [logLevel],
131
+ 'no-dupe-class-members': [logLevel],
132
+ 'no-this-before-super': [logLevel],
133
+ 'no-duplicate-imports': [
134
+ logLevel,
135
+ {
136
+ includeExports: true
137
+ }
138
+ ],
139
+ 'no-var': [logLevel],
140
+ 'prefer-destructuring': [logLevel],
141
+ 'prefer-arrow-callback': [logLevel],
142
+ 'prefer-spread': [logLevel],
143
+ 'prefer-template': [logLevel],
144
+ 'prefer-rest-params': [logLevel],
145
+ 'no-useless-constructor': [logLevel],
146
+ 'no-use-before-define': [logLevel],
147
+
148
+ 'react/default-props-match-prop-types': [logLevel],
149
+ 'react/destructuring-assignment': [logLevel],
150
+ // 'react/no-did-update-set-state': [logLevel],
151
+ 'react/no-redundant-should-component-update': [logLevel],
152
+ 'react/no-danger': [logLevel],
153
+ 'react/no-this-in-sfc': [logLevel],
154
+ 'react/no-will-update-set-state': [logLevel],
155
+ 'react/no-unused-state': [logLevel],
156
+ // 'react/require-default-props': [logLevel],
157
+ // 'react/require-optimization': [logLevel],
158
+
159
+ 'react/jsx-closing-bracket-location': [logLevel],
160
+ 'react/jsx-equals-spacing': [logLevel],
161
+ 'react/jsx-indent': [logLevel, 2],
162
+ 'react/jsx-key': [logLevel],
163
+ 'react/jsx-pascal-case': [logLevel],
164
+
165
+ 'react/no-array-index-key': [logLevel],
166
+ 'react/no-unused-prop-types': [logLevel],
167
+ 'react/forbid-component-props': [0],
168
+ 'react/forbid-dom-props': [logLevel],
169
+ 'react/jsx-no-bind': [logLevel],
170
+ 'react/sort-prop-types': [logLevel],
171
+ 'react/jsx-no-duplicate-props': [logLevel],
172
+ 'react/no-deprecated': [logLevel],
173
+ 'react/no-children-prop': [logLevel],
174
+
175
+ 'css-modules/no-unused-class': [logLevel, { camelCase: true }],
176
+ 'css-modules/no-undef-class': [logLevel, { camelCase: 'only' }]
177
+ }
178
+ };
179
+
180
+ module.exports = isCI ? CIConfig : commonConfigs;
package/.prettierrc CHANGED
@@ -1,6 +1,6 @@
1
- {
2
- "trailingComma": "none",
3
- "singleQuote": true,
4
- "arrowParens": "avoid",
5
- "jsxSingleQuote": true
6
- }
1
+ {
2
+ "trailingComma": "none",
3
+ "singleQuote": true,
4
+ "arrowParens": "avoid",
5
+ "jsxSingleQuote": true
6
+ }