@dr.pogodin/react-utils 1.25.6 → 1.26.0

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 (290) hide show
  1. package/babel.config.js +3 -1
  2. package/bin/build.js +18 -4
  3. package/build/development/client/getInj.js +9 -8
  4. package/build/development/client/getInj.js.map +1 -1
  5. package/build/development/client/index.js +6 -3
  6. package/build/development/client/index.js.map +1 -1
  7. package/build/development/client/init.js +4 -0
  8. package/build/development/client/init.js.map +1 -1
  9. package/build/development/index.js +166 -38
  10. package/build/development/index.js.map +1 -1
  11. package/build/development/server/Cache.js +13 -13
  12. package/build/development/server/Cache.js.map +1 -1
  13. package/build/development/server/index.js +16 -23
  14. package/build/development/server/index.js.map +1 -1
  15. package/build/development/server/renderer.js +56 -43
  16. package/build/development/server/renderer.js.map +1 -1
  17. package/build/development/server/server.js +9 -5
  18. package/build/development/server/server.js.map +1 -1
  19. package/build/development/server/utils/errors.js +12 -9
  20. package/build/development/server/utils/errors.js.map +1 -1
  21. package/build/development/server/utils/index.js +2 -2
  22. package/build/development/server/utils/index.js.map +1 -1
  23. package/build/development/shared/components/Button/index.js +7 -5
  24. package/build/development/shared/components/Button/index.js.map +1 -1
  25. package/build/development/shared/components/Checkbox/index.js +24 -26
  26. package/build/development/shared/components/Checkbox/index.js.map +1 -1
  27. package/build/development/shared/components/Dropdown/index.js +24 -17
  28. package/build/development/shared/components/Dropdown/index.js.map +1 -1
  29. package/build/development/shared/components/GenericLink/index.js +44 -37
  30. package/build/development/shared/components/GenericLink/index.js.map +1 -1
  31. package/build/development/shared/components/Input/index.js +7 -7
  32. package/build/development/shared/components/Input/index.js.map +1 -1
  33. package/build/development/shared/components/Link.js +10 -9
  34. package/build/development/shared/components/Link.js.map +1 -1
  35. package/build/development/shared/components/MetaTags.js +22 -18
  36. package/build/development/shared/components/MetaTags.js.map +1 -1
  37. package/build/development/shared/components/Modal/index.js +16 -16
  38. package/build/development/shared/components/Modal/index.js.map +1 -1
  39. package/build/development/shared/components/NavLink.js +10 -9
  40. package/build/development/shared/components/NavLink.js.map +1 -1
  41. package/build/development/shared/components/PageLayout/index.js +16 -18
  42. package/build/development/shared/components/PageLayout/index.js.map +1 -1
  43. package/build/development/shared/components/ScalableRect/index.js +27 -7
  44. package/build/development/shared/components/ScalableRect/index.js.map +1 -1
  45. package/build/development/shared/components/Throbber/index.js +14 -22
  46. package/build/development/shared/components/Throbber/index.js.map +1 -1
  47. package/build/development/shared/components/WithTooltip/Tooltip.js +19 -21
  48. package/build/development/shared/components/WithTooltip/Tooltip.js.map +1 -1
  49. package/build/development/shared/components/WithTooltip/index.js +11 -10
  50. package/build/development/shared/components/WithTooltip/index.js.map +1 -1
  51. package/build/development/shared/components/YouTubeVideo/index.js +15 -13
  52. package/build/development/shared/components/YouTubeVideo/index.js.map +1 -1
  53. package/build/development/shared/components/index.js +2 -2
  54. package/build/development/shared/components/index.js.map +1 -1
  55. package/build/development/shared/utils/config.js.map +1 -1
  56. package/build/development/shared/utils/globalState.js +15 -0
  57. package/build/development/shared/utils/globalState.js.map +1 -0
  58. package/build/development/shared/utils/index.js +13 -10
  59. package/build/development/shared/utils/index.js.map +1 -1
  60. package/build/development/shared/utils/isomorphy/buildInfo.js +7 -3
  61. package/build/development/shared/utils/isomorphy/buildInfo.js.map +1 -1
  62. package/build/development/shared/utils/isomorphy/environment-check.js.map +1 -1
  63. package/build/development/shared/utils/isomorphy/index.js.map +1 -1
  64. package/build/development/shared/utils/jest/E2eSsrEnv.js +35 -28
  65. package/build/development/shared/utils/jest/E2eSsrEnv.js.map +1 -1
  66. package/build/development/shared/utils/jest/global.js +17 -0
  67. package/build/development/shared/utils/jest/global.js.map +1 -0
  68. package/build/development/shared/utils/jest/index.js +17 -9
  69. package/build/development/shared/utils/jest/index.js.map +1 -1
  70. package/build/development/shared/utils/splitComponent.js +25 -34
  71. package/build/development/shared/utils/splitComponent.js.map +1 -1
  72. package/build/development/shared/utils/time.js +16 -12
  73. package/build/development/shared/utils/time.js.map +1 -1
  74. package/build/development/shared/utils/webpack.js +3 -3
  75. package/build/development/shared/utils/webpack.js.map +1 -1
  76. package/build/development/web.bundle.js +92 -82
  77. package/build/production/client/getInj.js +1 -1
  78. package/build/production/client/getInj.js.map +1 -1
  79. package/build/production/client/index.js +4 -4
  80. package/build/production/client/index.js.map +1 -1
  81. package/build/production/client/init.js +3 -1
  82. package/build/production/client/init.js.map +1 -1
  83. package/build/production/index.js +1 -1
  84. package/build/production/index.js.map +1 -1
  85. package/build/production/server/Cache.js +7 -8
  86. package/build/production/server/Cache.js.map +1 -1
  87. package/build/production/server/index.js +5 -4
  88. package/build/production/server/index.js.map +1 -1
  89. package/build/production/server/renderer.js +32 -30
  90. package/build/production/server/renderer.js.map +1 -1
  91. package/build/production/server/server.js +7 -5
  92. package/build/production/server/server.js.map +1 -1
  93. package/build/production/server/utils/errors.js +9 -10
  94. package/build/production/server/utils/errors.js.map +1 -1
  95. package/build/production/server/utils/index.js +1 -1
  96. package/build/production/server/utils/index.js.map +1 -1
  97. package/build/production/shared/components/Button/index.js +3 -3
  98. package/build/production/shared/components/Button/index.js.map +1 -1
  99. package/build/production/shared/components/Checkbox/index.js +11 -11
  100. package/build/production/shared/components/Checkbox/index.js.map +1 -1
  101. package/build/production/shared/components/Dropdown/index.js +11 -11
  102. package/build/production/shared/components/Dropdown/index.js.map +1 -1
  103. package/build/production/shared/components/GenericLink/index.js +25 -20
  104. package/build/production/shared/components/GenericLink/index.js.map +1 -1
  105. package/build/production/shared/components/Input/index.js +7 -7
  106. package/build/production/shared/components/Input/index.js.map +1 -1
  107. package/build/production/shared/components/Link.js +2 -2
  108. package/build/production/shared/components/Link.js.map +1 -1
  109. package/build/production/shared/components/MetaTags.js +10 -10
  110. package/build/production/shared/components/MetaTags.js.map +1 -1
  111. package/build/production/shared/components/Modal/index.js +2 -2
  112. package/build/production/shared/components/Modal/index.js.map +1 -1
  113. package/build/production/shared/components/NavLink.js +1 -1
  114. package/build/production/shared/components/NavLink.js.map +1 -1
  115. package/build/production/shared/components/PageLayout/index.js +2 -2
  116. package/build/production/shared/components/PageLayout/index.js.map +1 -1
  117. package/build/production/shared/components/ScalableRect/index.js +7 -3
  118. package/build/production/shared/components/ScalableRect/index.js.map +1 -1
  119. package/build/production/shared/components/Throbber/index.js +2 -2
  120. package/build/production/shared/components/Throbber/index.js.map +1 -1
  121. package/build/production/shared/components/WithTooltip/Tooltip.js +13 -13
  122. package/build/production/shared/components/WithTooltip/Tooltip.js.map +1 -1
  123. package/build/production/shared/components/WithTooltip/index.js +3 -3
  124. package/build/production/shared/components/WithTooltip/index.js.map +1 -1
  125. package/build/production/shared/components/YouTubeVideo/index.js +7 -7
  126. package/build/production/shared/components/YouTubeVideo/index.js.map +1 -1
  127. package/build/production/shared/components/index.js +1 -1
  128. package/build/production/shared/components/index.js.map +1 -1
  129. package/build/production/shared/utils/config.js.map +1 -1
  130. package/build/production/shared/utils/globalState.js +3 -0
  131. package/build/production/shared/utils/globalState.js.map +1 -0
  132. package/build/production/shared/utils/index.js +2 -2
  133. package/build/production/shared/utils/index.js.map +1 -1
  134. package/build/production/shared/utils/isomorphy/buildInfo.js +7 -4
  135. package/build/production/shared/utils/isomorphy/buildInfo.js.map +1 -1
  136. package/build/production/shared/utils/isomorphy/environment-check.js.map +1 -1
  137. package/build/production/shared/utils/isomorphy/index.js.map +1 -1
  138. package/build/production/shared/utils/jest/E2eSsrEnv.js +9 -9
  139. package/build/production/shared/utils/jest/E2eSsrEnv.js.map +1 -1
  140. package/build/production/shared/utils/jest/global.js +2 -0
  141. package/build/production/shared/utils/jest/global.js.map +1 -0
  142. package/build/production/shared/utils/jest/index.js +5 -5
  143. package/build/production/shared/utils/jest/index.js.map +1 -1
  144. package/build/production/shared/utils/splitComponent.js +16 -16
  145. package/build/production/shared/utils/splitComponent.js.map +1 -1
  146. package/build/production/shared/utils/time.js +12 -8
  147. package/build/production/shared/utils/time.js.map +1 -1
  148. package/build/production/shared/utils/webpack.js +3 -3
  149. package/build/production/shared/utils/webpack.js.map +1 -1
  150. package/build/production/web.bundle.js +1 -1
  151. package/build/production/web.bundle.js.map +1 -1
  152. package/build/types-code/client/getInj.d.ts +3 -0
  153. package/build/types-code/client/index.d.ts +11 -0
  154. package/build/types-code/client/init.d.ts +9 -0
  155. package/build/types-code/index.d.ts +10 -0
  156. package/build/types-code/server/Cache.d.ts +37 -0
  157. package/build/types-code/server/index.d.ts +145 -0
  158. package/build/types-code/server/renderer.d.ts +106 -0
  159. package/build/types-code/server/server.d.ts +41 -0
  160. package/build/types-code/server/utils/errors.d.ts +104 -0
  161. package/build/types-code/server/utils/index.d.ts +1 -0
  162. package/build/types-code/shared/components/Button/index.d.ts +27 -0
  163. package/build/types-code/shared/components/Checkbox/index.d.ts +21 -0
  164. package/build/types-code/shared/components/Dropdown/index.d.ts +23 -0
  165. package/build/types-code/shared/components/GenericLink/index.d.ts +61 -0
  166. package/build/types-code/shared/components/Input/index.d.ts +11 -0
  167. package/build/types-code/shared/components/Link.d.ts +12 -0
  168. package/build/types-code/shared/components/MetaTags.d.ts +68 -0
  169. package/build/types-code/shared/components/Modal/index.d.ts +26 -0
  170. package/build/types-code/shared/components/NavLink.d.ts +5 -0
  171. package/build/types-code/shared/components/PageLayout/index.d.ts +16 -0
  172. package/build/types-code/shared/components/ScalableRect/index.d.ts +19 -0
  173. package/build/types-code/shared/components/Throbber/index.d.ts +9 -0
  174. package/build/types-code/shared/components/WithTooltip/Tooltip.d.ts +23 -0
  175. package/build/types-code/shared/components/WithTooltip/index.d.ts +17 -0
  176. package/build/types-code/shared/components/YouTubeVideo/index.d.ts +13 -0
  177. package/build/types-code/shared/components/index.d.ts +16 -0
  178. package/build/types-code/shared/utils/config.d.ts +2 -0
  179. package/build/types-code/shared/utils/globalState.d.ts +20 -0
  180. package/build/types-code/shared/utils/index.d.ts +52 -0
  181. package/build/types-code/shared/utils/isomorphy/buildInfo.d.ts +23 -0
  182. package/build/types-code/shared/utils/isomorphy/environment-check.d.ts +11 -0
  183. package/build/types-code/shared/utils/isomorphy/index.d.ts +20 -0
  184. package/build/types-code/shared/utils/jest/E2eSsrEnv.d.ts +31 -0
  185. package/build/types-code/shared/utils/jest/global.d.ts +12 -0
  186. package/build/types-code/shared/utils/jest/index.d.ts +85 -0
  187. package/build/types-code/shared/utils/splitComponent.d.ts +41 -0
  188. package/build/types-code/shared/utils/time.d.ts +62 -0
  189. package/build/types-code/shared/utils/webpack.d.ts +18 -0
  190. package/build/types-scss/__tests__/js/config/publicPath support/__assets__/style.scss.d.ts +1 -0
  191. package/build/types-scss/__tests__/js/config/stylename-generation/__assets__/MockPackageA/TestComponent/style.scss.d.ts +1 -0
  192. package/build/types-scss/__tests__/js/config/stylename-generation/__assets__/MockPackageB/TestComponent/style.scss.d.ts +1 -0
  193. package/build/types-scss/__tests__/js/config/stylename-generation/__assets__/style.scss.d.ts +1 -0
  194. package/build/types-scss/__tests__/js/shared/components/NavLink/styles.scss.d.ts +1 -0
  195. package/build/types-scss/__tests__/js/shared/utils/splitComponent/__assets__/SampleScene/ComponentA/style.scss.d.ts +1 -0
  196. package/build/types-scss/__tests__/js/shared/utils/splitComponent/__assets__/SampleScene/ComponentB/style.scss.d.ts +1 -0
  197. package/build/types-scss/__tests__/js/shared/utils/splitComponent/__assets__/SampleScene/ComponentC/style.scss.d.ts +1 -0
  198. package/build/types-scss/__tests__/js/shared/utils/splitComponent/__assets__/SampleScene/style.scss.d.ts +1 -0
  199. package/build/types-scss/__tests__/ts/config/publicPath support/__assets__/style.scss.d.ts +1 -0
  200. package/build/types-scss/__tests__/ts/config/stylename-generation/__assets__/MockPackageA/TestComponent/style.scss.d.ts +1 -0
  201. package/build/types-scss/__tests__/ts/config/stylename-generation/__assets__/MockPackageB/TestComponent/style.scss.d.ts +1 -0
  202. package/build/types-scss/__tests__/ts/config/stylename-generation/__assets__/style.scss.d.ts +1 -0
  203. package/build/types-scss/__tests__/ts/shared/components/NavLink/styles.scss.d.ts +1 -0
  204. package/build/types-scss/__tests__/ts/shared/utils/splitComponent/__assets__/SampleScene/ComponentA/style.scss.d.ts +1 -0
  205. package/build/types-scss/__tests__/ts/shared/utils/splitComponent/__assets__/SampleScene/ComponentB/style.scss.d.ts +1 -0
  206. package/build/types-scss/__tests__/ts/shared/utils/splitComponent/__assets__/SampleScene/ComponentC/style.scss.d.ts +1 -0
  207. package/build/types-scss/__tests__/ts/shared/utils/splitComponent/__assets__/SampleScene/style.scss.d.ts +1 -0
  208. package/build/types-scss/src/shared/components/Button/style.scss.d.ts +6 -0
  209. package/build/types-scss/src/shared/components/Checkbox/theme.scss.d.ts +6 -0
  210. package/build/types-scss/src/shared/components/Dropdown/theme.scss.d.ts +9 -0
  211. package/build/types-scss/src/shared/components/GenericLink/style.scss.d.ts +1 -0
  212. package/build/types-scss/src/shared/components/Input/theme.scss.d.ts +6 -0
  213. package/build/types-scss/src/shared/components/Modal/base-theme.scss.d.ts +5 -0
  214. package/build/types-scss/src/shared/components/PageLayout/base-theme.scss.d.ts +6 -0
  215. package/build/types-scss/src/shared/components/ScalableRect/style.scss.d.ts +2 -0
  216. package/build/types-scss/src/shared/components/Throbber/theme.scss.d.ts +6 -0
  217. package/build/types-scss/src/shared/components/WithTooltip/default-theme.scss.d.ts +7 -0
  218. package/build/types-scss/src/shared/components/YouTubeVideo/base.scss.d.ts +5 -0
  219. package/build/types-scss/src/shared/components/YouTubeVideo/throbber.scss.d.ts +4 -0
  220. package/config/eslint/jest.json +3 -2
  221. package/config/eslint/typescript.js +34 -0
  222. package/config/jest/default.js +3 -3
  223. package/package.json +74 -32
  224. package/src/client/getInj.ts +43 -0
  225. package/src/client/index.tsx +40 -0
  226. package/src/client/init.ts +47 -0
  227. package/src/index.ts +58 -0
  228. package/src/server/Cache.ts +68 -0
  229. package/src/server/index.ts +230 -0
  230. package/src/server/renderer.tsx +604 -0
  231. package/src/server/server.ts +309 -0
  232. package/src/server/utils/errors.ts +135 -0
  233. package/src/server/utils/index.ts +3 -0
  234. package/src/shared/components/Button/index.tsx +146 -0
  235. package/src/shared/components/Button/style.scss +53 -0
  236. package/src/shared/components/Checkbox/index.tsx +71 -0
  237. package/src/shared/components/Checkbox/theme.scss +43 -0
  238. package/src/shared/components/Dropdown/index.tsx +144 -0
  239. package/src/shared/components/Dropdown/theme.scss +63 -0
  240. package/src/shared/components/GenericLink/index.tsx +157 -0
  241. package/src/shared/components/GenericLink/style.scss +3 -0
  242. package/src/shared/components/Input/index.tsx +59 -0
  243. package/src/shared/components/Input/theme.scss +27 -0
  244. package/src/shared/components/Link.tsx +21 -0
  245. package/src/shared/components/MetaTags.tsx +170 -0
  246. package/src/shared/components/Modal/base-theme.scss +38 -0
  247. package/src/shared/components/Modal/index.tsx +144 -0
  248. package/src/shared/components/Modal/styles.scss +5 -0
  249. package/src/shared/components/NavLink.tsx +13 -0
  250. package/src/shared/components/PageLayout/base-theme.scss +30 -0
  251. package/src/shared/components/PageLayout/index.tsx +76 -0
  252. package/src/shared/components/ScalableRect/index.tsx +84 -0
  253. package/src/shared/components/ScalableRect/style.scss +10 -0
  254. package/src/shared/components/Throbber/index.tsx +43 -0
  255. package/src/shared/components/Throbber/theme.scss +26 -0
  256. package/src/shared/components/WithTooltip/Tooltip.tsx +353 -0
  257. package/src/shared/components/WithTooltip/default-theme.scss +36 -0
  258. package/src/shared/components/WithTooltip/index.tsx +204 -0
  259. package/src/shared/components/YouTubeVideo/base.scss +13 -0
  260. package/src/shared/components/YouTubeVideo/index.tsx +96 -0
  261. package/src/shared/components/YouTubeVideo/throbber.scss +11 -0
  262. package/src/shared/components/index.ts +17 -0
  263. package/src/shared/utils/config.ts +21 -0
  264. package/src/shared/utils/globalState.ts +29 -0
  265. package/src/shared/utils/index.ts +105 -0
  266. package/src/shared/utils/isomorphy/buildInfo.ts +54 -0
  267. package/src/shared/utils/isomorphy/environment-check.ts +18 -0
  268. package/src/shared/utils/isomorphy/index.ts +38 -0
  269. package/src/shared/utils/jest/E2eSsrEnv.ts +250 -0
  270. package/src/shared/utils/jest/global.ts +19 -0
  271. package/src/shared/utils/jest/index.tsx +157 -0
  272. package/src/shared/utils/splitComponent.tsx +255 -0
  273. package/src/shared/utils/time.ts +118 -0
  274. package/src/shared/utils/webpack.ts +45 -0
  275. package/src/styles/_global/reset.css +52 -0
  276. package/src/styles/global.scss +11 -0
  277. package/tsconfig.configs.json +18 -0
  278. package/tsconfig.json +27 -0
  279. package/tsconfig.types.json +53 -0
  280. package/typed-scss-modules.config.ts +9 -0
  281. package/types.d.ts +37 -0
  282. package/{webpack.config.js → webpack.config.ts} +7 -3
  283. package/config/babel/node-ssr.js +0 -85
  284. package/config/babel/webpack.js +0 -123
  285. package/config/webpack/app-base.js +0 -330
  286. package/config/webpack/app-development.js +0 -80
  287. package/config/webpack/app-production.js +0 -60
  288. package/config/webpack/lib-base.js +0 -155
  289. package/config/webpack/lib-development.js +0 -45
  290. package/config/webpack/lib-production.js +0 -44
@@ -1,80 +0,0 @@
1
- /**
2
- * @category Configs
3
- * @module webpack/app-development
4
- * @desc development Webpack configuration for applications.
5
- */
6
- const { clone, defaults } = require('lodash');
7
- const MiniCssExtractPlugin = require('mini-css-extract-plugin');
8
-
9
- const ReactRefreshPlugin = require('@pmmmwh/react-refresh-webpack-plugin');
10
-
11
- const webpack = require('webpack');
12
- const { merge } = require('webpack-merge');
13
-
14
- const baseFactory = require('./app-base');
15
-
16
- /**
17
- * @param {object} ops
18
- * @param {boolean} [ops.dontUseReactGlobalStateDebugging]
19
- * @param {boolean} [ops.dontUseHmr]
20
- */
21
- module.exports = function configFactory(ops) {
22
- const o = defaults(clone(ops), {
23
- cssLocalIdent: '[package]___[path][name]___[local]___[hash:base64:6]',
24
- });
25
-
26
- const entry = ['@dr.pogodin/react-utils/build/development/client/init'];
27
- if (!o.dontUseHmr) entry.push('webpack-hot-middleware/client?reload=true');
28
- entry.push(...Array.isArray(o.entry) ? o.entry : [o.entry]);
29
-
30
- const plugins = [
31
- new MiniCssExtractPlugin({
32
- chunkFilename: '[id].css',
33
- filename: '[id].css',
34
- }),
35
- new webpack.DefinePlugin({
36
- 'process.env.BABEL_ENV': JSON.stringify('development'),
37
- 'process.env.DEV_TOOLS': JSON.stringify(true),
38
- 'process.env.NODE_ENV': JSON.stringify('development'),
39
- 'process.env.REACT_GLOBAL_STATE_DEBUG':
40
- JSON.stringify(!o.dontUseReactGlobalStateDebugging),
41
- }),
42
- ];
43
-
44
- // TODO: There should be no reason to include these plugins when HMR is opted
45
- // out, however if I remove them, the compilation fails with obscure
46
- // "ReferenceError: $RefreshReg$ is not defined" error. For now it seems
47
- // fine to keep these plugins anyway, thus the shortcut of "if" condition
48
- // below.
49
- if (true || !o.dontUseHmr) {
50
- plugins.push(
51
- new webpack.HotModuleReplacementPlugin(),
52
- new ReactRefreshPlugin({
53
- overlay: {
54
- sockIntegration: 'whm',
55
- },
56
- }),
57
- );
58
- }
59
-
60
- const res = merge(baseFactory({
61
- ...o,
62
- babelEnv: 'development',
63
- entry,
64
- mode: 'development',
65
- }), {
66
- output: {
67
- chunkFilename: '[id].js',
68
- filename: '[id].js',
69
- },
70
- plugins,
71
- snapshot: {
72
- // This enforces Webpack to watch for possible changes in node_modules
73
- // dependencies, which is a great convenience in library-centric dev
74
- // workflows.
75
- managedPaths: [],
76
- },
77
- });
78
-
79
- return res;
80
- };
@@ -1,60 +0,0 @@
1
- /**
2
- * @category Configs
3
- * @module webpack/app-production
4
- * @desc Production Webpack configuration for applications.
5
- */
6
-
7
- const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
8
- const MiniCssExtractPlugin = require('mini-css-extract-plugin');
9
- const webpack = require('webpack');
10
- const { merge } = require('webpack-merge');
11
- const baseFactory = require('./app-base');
12
-
13
- /**
14
- * @param {object} ops
15
- * @param {string} ops.context Base URL for resolution of relative config paths.
16
- * @param {boolean} [ops.dontEmitBuildInfo] If set the `.build-info` file won't
17
- * be created at the disk during the compilation.
18
- */
19
- module.exports = function configFactory(ops) {
20
- const entry = [
21
- '@dr.pogodin/react-utils/build/production/client/init',
22
- ...Array.isArray(ops.entry) ? ops.entry : [ops.entry],
23
- ];
24
-
25
- const res = merge(baseFactory({
26
- ...ops,
27
- babelEnv: 'production',
28
- entry,
29
- mode: 'production',
30
- }), {
31
- optimization: {
32
- minimizer: [
33
- '...',
34
- new CssMinimizerPlugin({
35
- minimizerOptions: {
36
- preset: ['default', {
37
- /* Due to the way our styles are organized, these dangerous
38
- * optimizations can break our styles, thus they are disabled. */
39
- discardUnused: false,
40
- reduceIdents: false,
41
- zindex: false,
42
- }],
43
- },
44
- }),
45
- ],
46
- },
47
- plugins: [
48
- new webpack.DefinePlugin({
49
- 'process.env.BABEL_ENV': JSON.stringify('production'),
50
- 'process.env.NODE_ENV': JSON.stringify('production'),
51
- }),
52
- new MiniCssExtractPlugin({
53
- chunkFilename: '[contenthash].css',
54
- filename: '[contenthash].css',
55
- }),
56
- ],
57
- });
58
-
59
- return res;
60
- };
@@ -1,155 +0,0 @@
1
- // Base Webpack config for ReactJS libraries.
2
-
3
- const path = require('path');
4
-
5
- const autoprefixer = require('autoprefixer');
6
- const MiniCssExtractPlugin = require('mini-css-extract-plugin');
7
- const { ProgressPlugin } = require('webpack');
8
-
9
- const {
10
- getLocalIdent,
11
- } = require('@dr.pogodin/babel-plugin-react-css-modules/utils');
12
-
13
- /**
14
- * @param {object} ops
15
- * @param {boolean} [ops.dontUseProgressPlugin] Set to not include progress
16
- * plugin.
17
- * @return {object}
18
- */
19
- module.exports = function configFactory(ops) {
20
- const plugins = [
21
- new MiniCssExtractPlugin({ filename: 'style.css' }),
22
- ];
23
-
24
- if (!ops.dontUseProgressPlugin) plugins.push(new ProgressPlugin());
25
-
26
- return {
27
- context: ops.context,
28
- entry: ops.entry,
29
- externals: [
30
- /@babel\/runtime/,
31
- '@dr.pogodin/react-global-state',
32
- '@dr.pogodin/js-utils',
33
- '@dr.pogodin/react-themes',
34
- '@dr.pogodin/react-utils',
35
- 'axios',
36
- 'dayjs',
37
- 'lodash',
38
- /node-forge/,
39
- 'prop-types',
40
- 'qs',
41
- 'react',
42
- /react-dom/,
43
- 'react-helmet',
44
- 'react-router-dom',
45
- 'uuid',
46
- ],
47
- mode: ops.mode,
48
- output: {
49
- filename: 'web.bundle.js',
50
-
51
- // TODO: Check, whether this fix can be dropped.
52
- // Workaround to fix umd build, restore webpack v3 behaviour
53
- // https://github.com/webpack/webpack/issues/6677
54
- // https://github.com/webpack/webpack/issues/6642
55
- globalObject: "typeof self !== 'undefined' ? self : this",
56
-
57
- library: ops.library,
58
- path: ops.outputPath,
59
- libraryTarget: 'umd',
60
- },
61
- plugins,
62
- module: {
63
- rules: [{
64
- /* Handles font imports in url(..) instructions in CSS. Effectively,
65
- * with such configuration it just rewrites those URLs to point to
66
- * the original location of the font assets in
67
- * the library being build. */
68
- test: /\.(eot|otf|svg|ttf|woff2?)$/,
69
- include: [
70
- /node_modules/,
71
- /src[/\\]assets[/\\]fonts/,
72
- ],
73
- type: 'asset/resource',
74
- generator: {
75
- // TODO: This comes from the older config version which relied on
76
- // file-loader. It might require some correction to correctly join
77
- // `publicPath` and `filename`.
78
- filename: '../shared/[path][name][ext]',
79
- publicPath: `${ops.library}/build/shared`,
80
- },
81
- }, {
82
- /* Loads JS and JSX moudles, and inlines SVG assets. */
83
- test: /\.(jsx?|svg)$/,
84
- exclude: [
85
- /node_modules/,
86
- /src[/\\]assets[/\\]fonts/,
87
- ],
88
- loader: 'babel-loader',
89
- options: {
90
- babelrc: false,
91
- configFile: false,
92
- envName: ops.babelEnv,
93
- presets: [
94
- // NOTE: For the compilation of this very library (react-utils),
95
- // this plugin path is overriden in webpack.config.js in the root of
96
- // the codebase.
97
- ['@dr.pogodin/react-utils/config/babel/webpack', {
98
- noRR: true,
99
- }],
100
- ],
101
- ...ops.babelLoaderOptions || {},
102
- },
103
- }, {
104
- /* Loads SCSS stylesheets. */
105
- test: /\.scss/,
106
- exclude: /node_modules/,
107
- use: [
108
- MiniCssExtractPlugin.loader, {
109
- loader: 'css-loader',
110
- options: {
111
- importLoaders: 3,
112
- modules: {
113
- getLocalIdent,
114
- localIdentName: ops.cssLocalIdent,
115
- },
116
- },
117
- }, {
118
- loader: 'postcss-loader',
119
- options: {
120
- postcssOptions: {
121
- plugins: [
122
- autoprefixer,
123
- ],
124
- },
125
- },
126
- }, 'resolve-url-loader', {
127
- loader: 'sass-loader',
128
- options: {
129
- sourceMap: true,
130
- },
131
- },
132
- ],
133
- }, {
134
- /* Loads CSS stylesheets. It is assumed that CSS stylesheets come only
135
- * from dependencies, as we use SCSS inside our own code. */
136
- test: /\.css$/,
137
- use: [
138
- MiniCssExtractPlugin.loader,
139
- 'css-loader',
140
- ],
141
- }],
142
- },
143
- resolve: {
144
- alias: {
145
- /* Aliases to JS an JSX files are handled by Babel. */
146
- assets: path.resolve(ops.context, 'src/assets'),
147
- components: path.resolve(ops.context, 'src/shared/components'),
148
- fonts: path.resolve(ops.context, 'src/assets/fonts'),
149
- styles: path.resolve(ops.context, 'src/styles'),
150
- },
151
- extensions: ['.js', '.json', '.jsx', '.scss'],
152
- symlinks: false,
153
- },
154
- };
155
- };
@@ -1,45 +0,0 @@
1
- /**
2
- * @category Configs
3
- * @module webpack/lib-development
4
- * @desc
5
- * Development Webpack config for ReactJS libraries.
6
- */
7
-
8
- const path = require('path');
9
- const webpack = require('webpack');
10
- const { merge } = require('webpack-merge');
11
-
12
- const baseFactory = require('./lib-base');
13
-
14
- module.exports = function configFactory(ops) {
15
- return merge(
16
- baseFactory({
17
- ...ops,
18
- babelEnv: 'development',
19
- cssLocalIdent: '[package]___[path][name]___[local]___[hash:base64:6]',
20
- mode: 'development',
21
- outputPath: path.resolve(__dirname, ops.context, 'build/development'),
22
- }),
23
- {
24
- plugins: [
25
- new webpack.DefinePlugin({
26
- // Dev. build of the library wraps modules inside eval() statements,
27
- // hiding BUILD_INFO literals from the host code's Webpack build, thus
28
- // leaving them undefined. As a work around, let's get it via global
29
- // window object.
30
- BUILD_INFO: 'window.__DEV_BUILD_INFO__',
31
-
32
- 'process.env.BABEL_ENV': JSON.stringify('development'),
33
- 'process.env.NODE_ENV': JSON.stringify('development'),
34
- 'process.env.REACT_GLOBAL_STATE_DEBUG': JSON.stringify(true),
35
- }),
36
- ],
37
- snapshot: {
38
- // This enforces Webpack to watch for possible changes in node_modules
39
- // dependencies, which is a great convenience in library-centric dev
40
- // workflows.
41
- managedPaths: [],
42
- },
43
- },
44
- );
45
- };
@@ -1,44 +0,0 @@
1
- // Production Webpack config for ReactJS libraries.
2
-
3
- const path = require('path');
4
-
5
- const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
6
- const webpack = require('webpack');
7
- const { merge } = require('webpack-merge');
8
-
9
- const baseFactory = require('./lib-base');
10
-
11
- module.exports = function configFactory(ops) {
12
- const baseConfig = baseFactory({
13
- ...ops,
14
- babelEnv: 'production',
15
- cssLocalIdent: '[hash:base64:6]',
16
- mode: 'production',
17
- outputPath: path.resolve(__dirname, ops.context, 'build/production'),
18
- });
19
- return merge(baseConfig, {
20
- devtool: 'source-map',
21
- optimization: {
22
- minimizer: [
23
- '...',
24
- new CssMinimizerPlugin({
25
- minimizerOptions: {
26
- preset: ['default', {
27
- /* Due to the way our styles are organized, these dangerous
28
- * optimizations can break our styles, thus they are disabled. */
29
- discardUnused: false,
30
- reduceIdents: false,
31
- zindex: false,
32
- }],
33
- },
34
- }),
35
- ],
36
- },
37
- plugins: [
38
- new webpack.DefinePlugin({
39
- 'process.env.BABEL_ENV': JSON.stringify('production'),
40
- 'process.env.NODE_ENV': JSON.stringify('production'),
41
- }),
42
- ],
43
- });
44
- };