@sima-land/isomorph 9.0.7 → 11.0.0-alpha.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 (530) hide show
  1. package/LICENSE +201 -0
  2. package/dist/cache/types.d.ts +7 -0
  3. package/dist/cache/types.js +3 -0
  4. package/dist/cache/types.js.map +1 -0
  5. package/dist/config/browser.d.ts +6 -0
  6. package/dist/config/browser.js +13 -0
  7. package/dist/config/browser.js.map +1 -0
  8. package/dist/config/index.d.ts +7 -0
  9. package/dist/config/index.js +20 -0
  10. package/dist/config/index.js.map +1 -0
  11. package/dist/config/node.d.ts +6 -0
  12. package/dist/config/node.js +19 -0
  13. package/dist/config/node.js.map +1 -0
  14. package/dist/config/types.d.ts +7 -0
  15. package/dist/config/types.js +3 -0
  16. package/dist/config/types.js.map +1 -0
  17. package/dist/config/utils.d.ts +5 -0
  18. package/dist/config/utils.js +12 -0
  19. package/dist/config/utils.js.map +1 -0
  20. package/dist/container/application.d.ts +25 -0
  21. package/dist/container/application.js +63 -0
  22. package/dist/container/application.js.map +1 -0
  23. package/dist/container/index.d.ts +18 -0
  24. package/dist/container/index.js +74 -0
  25. package/dist/container/index.js.map +1 -0
  26. package/dist/container/types.d.ts +14 -0
  27. package/dist/container/types.js +3 -0
  28. package/dist/container/types.js.map +1 -0
  29. package/dist/error-tracker/browser.d.ts +8 -0
  30. package/dist/error-tracker/browser.js +40 -0
  31. package/dist/error-tracker/browser.js.map +1 -0
  32. package/dist/error-tracker/node.d.ts +8 -0
  33. package/dist/error-tracker/node.js +40 -0
  34. package/dist/error-tracker/node.js.map +1 -0
  35. package/dist/error-tracker/types.d.ts +18 -0
  36. package/dist/error-tracker/types.js +3 -0
  37. package/dist/error-tracker/types.js.map +1 -0
  38. package/dist/error-tracker/utils.d.ts +12 -0
  39. package/dist/error-tracker/utils.js +19 -0
  40. package/dist/error-tracker/utils.js.map +1 -0
  41. package/dist/http-client/middleware/cookie.d.ts +19 -0
  42. package/dist/http-client/middleware/cookie.js +62 -0
  43. package/dist/http-client/middleware/cookie.js.map +1 -0
  44. package/dist/http-client/middleware/tracing.d.ts +32 -0
  45. package/dist/http-client/middleware/tracing.js +67 -0
  46. package/dist/http-client/middleware/tracing.js.map +1 -0
  47. package/dist/http-client/types.d.ts +6 -0
  48. package/dist/http-client/types.js +3 -0
  49. package/dist/http-client/types.js.map +1 -0
  50. package/dist/http-client/utils.d.ts +36 -0
  51. package/dist/http-client/utils.js +49 -0
  52. package/dist/http-client/utils.js.map +1 -0
  53. package/dist/http-server/constants.d.ts +4 -0
  54. package/dist/http-server/constants.js +8 -0
  55. package/dist/http-server/constants.js.map +1 -0
  56. package/dist/http-server/handler/health-check.d.ts +6 -0
  57. package/dist/http-server/handler/health-check.js +15 -0
  58. package/dist/http-server/handler/health-check.js.map +1 -0
  59. package/dist/http-server/middleware/logging.d.ts +10 -0
  60. package/dist/http-server/middleware/logging.js +31 -0
  61. package/dist/http-server/middleware/logging.js.map +1 -0
  62. package/dist/http-server/middleware/metrics.d.ts +23 -0
  63. package/dist/http-server/middleware/metrics.js +60 -0
  64. package/dist/http-server/middleware/metrics.js.map +1 -0
  65. package/dist/http-server/middleware/tracing.d.ts +8 -0
  66. package/dist/http-server/middleware/tracing.js +32 -0
  67. package/dist/http-server/middleware/tracing.js.map +1 -0
  68. package/dist/http-server/types.d.ts +25 -0
  69. package/dist/http-server/types.js +3 -0
  70. package/dist/http-server/types.js.map +1 -0
  71. package/dist/http-server/utils.d.ts +26 -0
  72. package/dist/http-server/utils.js +88 -0
  73. package/dist/http-server/utils.js.map +1 -0
  74. package/dist/logger/handler/console.d.ts +8 -0
  75. package/dist/logger/handler/console.js +36 -0
  76. package/dist/logger/handler/console.js.map +1 -0
  77. package/dist/logger/handler/sentry.d.ts +8 -0
  78. package/dist/logger/handler/sentry.js +36 -0
  79. package/dist/logger/handler/sentry.js.map +1 -0
  80. package/dist/logger/index.d.ts +6 -0
  81. package/dist/logger/index.js +31 -0
  82. package/dist/logger/index.js.map +1 -0
  83. package/dist/logger/types.d.ts +24 -0
  84. package/dist/logger/types.js +3 -0
  85. package/dist/logger/types.js.map +1 -0
  86. package/dist/metrics/constants.d.ts +4 -0
  87. package/dist/metrics/constants.js +8 -0
  88. package/dist/metrics/constants.js.map +1 -0
  89. package/dist/metrics/node.d.ts +18 -0
  90. package/dist/metrics/node.js +74 -0
  91. package/dist/metrics/node.js.map +1 -0
  92. package/dist/preset/index.d.ts +7 -0
  93. package/dist/preset/index.js +23 -0
  94. package/dist/preset/index.js.map +1 -0
  95. package/dist/preset/node/index.d.ts +15 -0
  96. package/dist/preset/node/index.js +90 -0
  97. package/dist/preset/node/index.js.map +1 -0
  98. package/dist/preset/node/response.d.ts +12 -0
  99. package/dist/preset/node/response.js +52 -0
  100. package/dist/preset/node/response.js.map +1 -0
  101. package/dist/preset/types.d.ts +7 -0
  102. package/dist/preset/types.js +3 -0
  103. package/dist/preset/types.js.map +1 -0
  104. package/dist/saga-runner/index.d.ts +8 -0
  105. package/dist/saga-runner/index.js +77 -0
  106. package/dist/saga-runner/index.js.map +1 -0
  107. package/dist/saga-runner/types.d.ts +10 -0
  108. package/dist/saga-runner/types.js +3 -0
  109. package/dist/saga-runner/types.js.map +1 -0
  110. package/dist/tokens.d.ts +40 -0
  111. package/dist/tokens.js +43 -0
  112. package/dist/tokens.js.map +1 -0
  113. package/dist/tracer/node.d.ts +10 -0
  114. package/dist/tracer/node.js +38 -0
  115. package/dist/tracer/node.js.map +1 -0
  116. package/dist/tracer/types.d.ts +2 -0
  117. package/dist/tracer/types.js +3 -0
  118. package/dist/tracer/types.js.map +1 -0
  119. package/dist/utils/browser/analytics/data-layer.d.ts +5 -0
  120. package/dist/utils/browser/analytics/data-layer.js +15 -0
  121. package/dist/utils/browser/analytics/data-layer.js.map +1 -0
  122. package/{helpers/analytics/index.d.ts → dist/utils/browser/analytics/oko.d.ts} +1 -6
  123. package/{helpers/analytics/index.js → dist/utils/browser/analytics/oko.js} +11 -20
  124. package/dist/utils/browser/analytics/oko.js.map +1 -0
  125. package/dist/utils/browser/storage/index.d.ts +4 -0
  126. package/dist/utils/browser/storage/index.js +63 -0
  127. package/dist/utils/browser/storage/index.js.map +1 -0
  128. package/dist/utils/number.d.ts +6 -0
  129. package/dist/utils/number.js +13 -0
  130. package/dist/utils/number.js.map +1 -0
  131. package/dist/utils/react/error-handlers/index.d.ts +38 -0
  132. package/dist/utils/react/error-handlers/index.js +47 -0
  133. package/dist/utils/react/error-handlers/index.js.map +1 -0
  134. package/dist/utils/redux/remote-data.d.ts +23 -0
  135. package/dist/utils/redux/remote-data.js +28 -0
  136. package/dist/utils/redux/remote-data.js.map +1 -0
  137. package/dist/utils/redux-saga/take-chain.d.ts +24 -0
  138. package/dist/utils/redux-saga/take-chain.js +56 -0
  139. package/dist/utils/redux-saga/take-chain.js.map +1 -0
  140. package/dist/utils/webpack/module-federation/index.d.ts +21 -0
  141. package/dist/utils/webpack/module-federation/index.js +74 -0
  142. package/dist/utils/webpack/module-federation/index.js.map +1 -0
  143. package/dist/utils/webpack/module-federation/types.d.ts +26 -0
  144. package/dist/utils/webpack/module-federation/types.js +3 -0
  145. package/dist/utils/webpack/module-federation/types.js.map +1 -0
  146. package/dist/utils/webpack/module-federation/utils.d.ts +15 -0
  147. package/dist/utils/webpack/module-federation/utils.js +36 -0
  148. package/dist/utils/webpack/module-federation/utils.js.map +1 -0
  149. package/package.json +50 -68
  150. package/readme.md +23 -0
  151. package/src/cache/types.ts +7 -0
  152. package/src/config/browser.ts +10 -0
  153. package/src/config/index.ts +18 -0
  154. package/src/config/node.ts +18 -0
  155. package/src/config/types.ts +9 -0
  156. package/src/config/utils.ts +7 -0
  157. package/src/container/application.ts +91 -0
  158. package/src/container/index.ts +79 -0
  159. package/src/container/types.ts +17 -0
  160. package/src/error-tracker/browser.ts +14 -0
  161. package/src/error-tracker/node.ts +14 -0
  162. package/src/error-tracker/types.ts +22 -0
  163. package/src/error-tracker/utils.ts +18 -0
  164. package/src/http-client/middleware/cookie.ts +73 -0
  165. package/src/{helpers/api/middlewares/trace-request-middleware.ts → http-client/middleware/tracing.ts} +28 -35
  166. package/src/http-client/types.ts +8 -0
  167. package/src/http-client/utils.ts +76 -0
  168. package/src/http-server/constants.ts +4 -0
  169. package/src/http-server/handler/health-check.ts +13 -0
  170. package/src/http-server/middleware/logging.ts +34 -0
  171. package/src/http-server/middleware/metrics.ts +87 -0
  172. package/src/http-server/middleware/tracing.ts +35 -0
  173. package/src/http-server/types.ts +29 -0
  174. package/src/http-server/utils.ts +105 -0
  175. package/src/logger/handler/console.ts +35 -0
  176. package/src/logger/handler/sentry.ts +38 -0
  177. package/src/logger/index.ts +31 -0
  178. package/src/logger/types.ts +28 -0
  179. package/src/metrics/constants.ts +4 -0
  180. package/src/metrics/node.ts +54 -0
  181. package/src/preset/index.ts +24 -0
  182. package/src/preset/node/index.ts +101 -0
  183. package/src/preset/node/response.ts +57 -0
  184. package/src/preset/types.ts +9 -0
  185. package/src/saga-runner/index.ts +59 -0
  186. package/src/saga-runner/types.ts +13 -0
  187. package/src/tokens.ts +54 -0
  188. package/src/tracer/node.ts +40 -0
  189. package/src/tracer/types.ts +3 -0
  190. package/src/utils/browser/analytics/__test__/data-layer.test.ts +50 -0
  191. package/src/utils/browser/analytics/__test__/oko.test.tsx +143 -0
  192. package/src/utils/browser/analytics/data-layer.ts +12 -0
  193. package/src/{helpers/analytics/index.ts → utils/browser/analytics/oko.ts} +10 -15
  194. package/src/utils/browser/storage/index.ts +75 -0
  195. package/src/utils/number.ts +8 -0
  196. package/src/utils/react/error-handlers/__test__/__snapshots__/index.test.tsx.snap +27 -0
  197. package/src/utils/react/error-handlers/__test__/index.test.tsx +64 -0
  198. package/src/utils/react/error-handlers/index.tsx +62 -0
  199. package/src/utils/redux/__test__/remote-data.test.ts +50 -0
  200. package/src/utils/redux/remote-data.ts +34 -0
  201. package/src/utils/redux-saga/__test__/take-chain.test.ts +141 -0
  202. package/src/utils/redux-saga/take-chain.ts +65 -0
  203. package/src/utils/webpack/module-federation/__test__/index.test.ts +246 -0
  204. package/src/utils/webpack/module-federation/index.ts +92 -0
  205. package/src/utils/webpack/module-federation/types.ts +44 -0
  206. package/src/utils/webpack/module-federation/utils.ts +43 -0
  207. package/cache/helpers.d.ts +0 -4
  208. package/cache/helpers.js +0 -39
  209. package/cache/helpers.js.map +0 -1
  210. package/cache/local-storage.d.ts +0 -34
  211. package/cache/local-storage.js +0 -90
  212. package/cache/local-storage.js.map +0 -1
  213. package/cache/redis.d.ts +0 -10
  214. package/cache/redis.js +0 -54
  215. package/cache/redis.js.map +0 -1
  216. package/cache/wrap-in-trace.d.ts +0 -8
  217. package/cache/wrap-in-trace.js +0 -68
  218. package/cache/wrap-in-trace.js.map +0 -1
  219. package/config/create.d.ts +0 -8
  220. package/config/create.js +0 -32
  221. package/config/create.js.map +0 -1
  222. package/config/helpers.d.ts +0 -11
  223. package/config/helpers.js +0 -71
  224. package/config/helpers.js.map +0 -1
  225. package/config/validate.d.ts +0 -18
  226. package/config/validate.js +0 -107
  227. package/config/validate.js.map +0 -1
  228. package/container/create-inject.d.ts +0 -7
  229. package/container/create-inject.js +0 -36
  230. package/container/create-inject.js.map +0 -1
  231. package/container/get-dependencies.d.ts +0 -13
  232. package/container/get-dependencies.js +0 -54
  233. package/container/get-dependencies.js.map +0 -1
  234. package/container/index.d.ts +0 -15
  235. package/container/index.js +0 -175
  236. package/container/index.js.map +0 -1
  237. package/container/is-container.d.ts +0 -7
  238. package/container/is-container.js +0 -17
  239. package/container/is-container.js.map +0 -1
  240. package/container/service-not-found-error.d.ts +0 -10
  241. package/container/service-not-found-error.js +0 -18
  242. package/container/service-not-found-error.js.map +0 -1
  243. package/create-proxy/create-proxy-middleware/index.d.ts +0 -16
  244. package/create-proxy/create-proxy-middleware/index.js +0 -47
  245. package/create-proxy/create-proxy-middleware/index.js.map +0 -1
  246. package/create-proxy/index.d.ts +0 -12
  247. package/create-proxy/index.js +0 -25
  248. package/create-proxy/index.js.map +0 -1
  249. package/create-response-sender/index.d.ts +0 -8
  250. package/create-response-sender/index.js +0 -42
  251. package/create-response-sender/index.js.map +0 -1
  252. package/get-dynamic-data/index.d.ts +0 -8
  253. package/get-dynamic-data/index.js +0 -23
  254. package/get-dynamic-data/index.js.map +0 -1
  255. package/graceful-shutdown/index.d.ts +0 -26
  256. package/graceful-shutdown/index.js +0 -87
  257. package/graceful-shutdown/index.js.map +0 -1
  258. package/helpers/add-error-handling/index.d.ts +0 -1
  259. package/helpers/add-error-handling/index.js +0 -42
  260. package/helpers/add-error-handling/index.js.map +0 -1
  261. package/helpers/analytics/index.js.map +0 -1
  262. package/helpers/api/create-enhancer.d.ts +0 -12
  263. package/helpers/api/create-enhancer.js +0 -52
  264. package/helpers/api/create-enhancer.js.map +0 -1
  265. package/helpers/api/create-instance.d.ts +0 -11
  266. package/helpers/api/create-instance.js +0 -39
  267. package/helpers/api/create-instance.js.map +0 -1
  268. package/helpers/api/middlewares/collect-cookie-middleware.d.ts +0 -10
  269. package/helpers/api/middlewares/collect-cookie-middleware.js +0 -39
  270. package/helpers/api/middlewares/collect-cookie-middleware.js.map +0 -1
  271. package/helpers/api/middlewares/count-api-response-time.d.ts +0 -12
  272. package/helpers/api/middlewares/count-api-response-time.js +0 -39
  273. package/helpers/api/middlewares/count-api-response-time.js.map +0 -1
  274. package/helpers/api/middlewares/error-handlers-middlewares.d.ts +0 -5
  275. package/helpers/api/middlewares/error-handlers-middlewares.js +0 -114
  276. package/helpers/api/middlewares/error-handlers-middlewares.js.map +0 -1
  277. package/helpers/api/middlewares/helpers.d.ts +0 -11
  278. package/helpers/api/middlewares/helpers.js +0 -27
  279. package/helpers/api/middlewares/helpers.js.map +0 -1
  280. package/helpers/api/middlewares/pass-headers-middleware.d.ts +0 -3
  281. package/helpers/api/middlewares/pass-headers-middleware.js +0 -27
  282. package/helpers/api/middlewares/pass-headers-middleware.js.map +0 -1
  283. package/helpers/api/middlewares/prepare-request-headers.d.ts +0 -5
  284. package/helpers/api/middlewares/prepare-request-headers.js +0 -20
  285. package/helpers/api/middlewares/prepare-request-headers.js.map +0 -1
  286. package/helpers/api/middlewares/set-http-agents-middleware.d.ts +0 -15
  287. package/helpers/api/middlewares/set-http-agents-middleware.js +0 -34
  288. package/helpers/api/middlewares/set-http-agents-middleware.js.map +0 -1
  289. package/helpers/api/middlewares/stages-trace-middleware.d.ts +0 -17
  290. package/helpers/api/middlewares/stages-trace-middleware.js +0 -57
  291. package/helpers/api/middlewares/stages-trace-middleware.js.map +0 -1
  292. package/helpers/api/middlewares/trace-request-middleware.d.ts +0 -24
  293. package/helpers/api/middlewares/trace-request-middleware.js +0 -69
  294. package/helpers/api/middlewares/trace-request-middleware.js.map +0 -1
  295. package/helpers/api/server-adapter/__fixtures__/fake-keys.d.ts +0 -10
  296. package/helpers/api/server-adapter/__fixtures__/fake-keys.js +0 -61
  297. package/helpers/api/server-adapter/__fixtures__/fake-keys.js.map +0 -1
  298. package/helpers/api/server-adapter/constants.d.ts +0 -5
  299. package/helpers/api/server-adapter/constants.js +0 -16
  300. package/helpers/api/server-adapter/constants.js.map +0 -1
  301. package/helpers/api/server-adapter/helpers.d.ts +0 -26
  302. package/helpers/api/server-adapter/helpers.js +0 -208
  303. package/helpers/api/server-adapter/helpers.js.map +0 -1
  304. package/helpers/api/server-adapter/index.d.ts +0 -10
  305. package/helpers/api/server-adapter/index.js +0 -118
  306. package/helpers/api/server-adapter/index.js.map +0 -1
  307. package/helpers/development/use-dot-env.d.ts +0 -6
  308. package/helpers/development/use-dot-env.js +0 -11
  309. package/helpers/development/use-dot-env.js.map +0 -1
  310. package/helpers/get-params/index.d.ts +0 -4
  311. package/helpers/get-params/index.js +0 -51
  312. package/helpers/get-params/index.js.map +0 -1
  313. package/helpers/http/request-getters.d.ts +0 -5
  314. package/helpers/http/request-getters.js +0 -49
  315. package/helpers/http/request-getters.js.map +0 -1
  316. package/helpers/http/statuses-validator.d.ts +0 -3
  317. package/helpers/http/statuses-validator.js +0 -25
  318. package/helpers/http/statuses-validator.js.map +0 -1
  319. package/helpers/logger/create-pino-instance/index.d.ts +0 -6
  320. package/helpers/logger/create-pino-instance/index.js +0 -39
  321. package/helpers/logger/create-pino-instance/index.js.map +0 -1
  322. package/helpers/logger/format-time/index.d.ts +0 -6
  323. package/helpers/logger/format-time/index.js +0 -9
  324. package/helpers/logger/format-time/index.js.map +0 -1
  325. package/helpers/metrics/index.d.ts +0 -23
  326. package/helpers/metrics/index.js +0 -42
  327. package/helpers/metrics/index.js.map +0 -1
  328. package/helpers/prometheus/index.d.ts +0 -4
  329. package/helpers/prometheus/index.js +0 -13
  330. package/helpers/prometheus/index.js.map +0 -1
  331. package/helpers/prometheus/measure-middleware.d.ts +0 -5
  332. package/helpers/prometheus/measure-middleware.js +0 -69
  333. package/helpers/prometheus/measure-middleware.js.map +0 -1
  334. package/helpers/prometheus/metric-adapter.d.ts +0 -36
  335. package/helpers/prometheus/metric-adapter.js +0 -98
  336. package/helpers/prometheus/metric-adapter.js.map +0 -1
  337. package/helpers/react/error-handlers/index.d.ts +0 -40
  338. package/helpers/react/error-handlers/index.js +0 -52
  339. package/helpers/react/error-handlers/index.js.map +0 -1
  340. package/helpers/redux/constants.d.ts +0 -5
  341. package/helpers/redux/constants.js +0 -14
  342. package/helpers/redux/constants.js.map +0 -1
  343. package/helpers/redux/create-compose-middleware.d.ts +0 -15
  344. package/helpers/redux/create-compose-middleware.js +0 -23
  345. package/helpers/redux/create-compose-middleware.js.map +0 -1
  346. package/helpers/redux/get-dev-compose-creator.d.ts +0 -6
  347. package/helpers/redux/get-dev-compose-creator.js +0 -13
  348. package/helpers/redux/get-dev-compose-creator.js.map +0 -1
  349. package/helpers/redux/prepare-on-ready.d.ts +0 -9
  350. package/helpers/redux/prepare-on-ready.js +0 -16
  351. package/helpers/redux/prepare-on-ready.js.map +0 -1
  352. package/helpers/redux/remote-data.d.ts +0 -40
  353. package/helpers/redux/remote-data.js +0 -91
  354. package/helpers/redux/remote-data.js.map +0 -1
  355. package/helpers/redux/selector/statuses.d.ts +0 -23
  356. package/helpers/redux/selector/statuses.js +0 -34
  357. package/helpers/redux/selector/statuses.js.map +0 -1
  358. package/helpers/redux/wait-on-store-readiness.d.ts +0 -11
  359. package/helpers/redux/wait-on-store-readiness.js +0 -29
  360. package/helpers/redux/wait-on-store-readiness.js.map +0 -1
  361. package/helpers/render/get-react-markup-data.d.ts +0 -14
  362. package/helpers/render/get-react-markup-data.js +0 -20
  363. package/helpers/render/get-react-markup-data.js.map +0 -1
  364. package/helpers/render/index.d.ts +0 -21
  365. package/helpers/render/index.js +0 -72
  366. package/helpers/render/index.js.map +0 -1
  367. package/helpers/render/render-app.d.ts +0 -12
  368. package/helpers/render/render-app.js +0 -12
  369. package/helpers/render/render-app.js.map +0 -1
  370. package/helpers/saga/__fixtures__/do-safe-request.d.ts +0 -43
  371. package/helpers/saga/__fixtures__/do-safe-request.js +0 -50
  372. package/helpers/saga/__fixtures__/do-safe-request.js.map +0 -1
  373. package/helpers/saga/cache-result.d.ts +0 -46
  374. package/helpers/saga/cache-result.js +0 -71
  375. package/helpers/saga/cache-result.js.map +0 -1
  376. package/helpers/saga/create-store.d.ts +0 -20
  377. package/helpers/saga/create-store.js +0 -106
  378. package/helpers/saga/create-store.js.map +0 -1
  379. package/helpers/saga/do-safe-request.d.ts +0 -38
  380. package/helpers/saga/do-safe-request.js +0 -45
  381. package/helpers/saga/do-safe-request.js.map +0 -1
  382. package/helpers/saga/safe-request.d.ts +0 -7
  383. package/helpers/saga/safe-request.js +0 -15
  384. package/helpers/saga/safe-request.js.map +0 -1
  385. package/helpers/saga/take-chain.d.ts +0 -20
  386. package/helpers/saga/take-chain.js +0 -56
  387. package/helpers/saga/take-chain.js.map +0 -1
  388. package/helpers/tracer/create-child-tracing-middleware.d.ts +0 -7
  389. package/helpers/tracer/create-child-tracing-middleware.js +0 -40
  390. package/helpers/tracer/create-child-tracing-middleware.js.map +0 -1
  391. package/helpers/tracer/index.d.ts +0 -24
  392. package/helpers/tracer/index.js +0 -144
  393. package/helpers/tracer/index.js.map +0 -1
  394. package/helpers/utils/check-feature-by-segment.d.ts +0 -2
  395. package/helpers/utils/check-feature-by-segment.js +0 -31
  396. package/helpers/utils/check-feature-by-segment.js.map +0 -1
  397. package/helpers/utils/format-object-keys.d.ts +0 -6
  398. package/helpers/utils/format-object-keys.js +0 -27
  399. package/helpers/utils/format-object-keys.js.map +0 -1
  400. package/helpers/utils/get-ms-from-hrt.d.ts +0 -2
  401. package/helpers/utils/get-ms-from-hrt.js +0 -22
  402. package/helpers/utils/get-ms-from-hrt.js.map +0 -1
  403. package/helpers/utils/is-match-pattern-list.d.ts +0 -8
  404. package/helpers/utils/is-match-pattern-list.js +0 -16
  405. package/helpers/utils/is-match-pattern-list.js.map +0 -1
  406. package/helpers/utils/is-not-empty-array.d.ts +0 -2
  407. package/helpers/utils/is-not-empty-array.js +0 -12
  408. package/helpers/utils/is-not-empty-array.js.map +0 -1
  409. package/helpers/utils/is-not-empty-string.d.ts +0 -2
  410. package/helpers/utils/is-not-empty-string.js +0 -15
  411. package/helpers/utils/is-not-empty-string.js.map +0 -1
  412. package/helpers/utils/is-numeric.d.ts +0 -7
  413. package/helpers/utils/is-numeric.js +0 -16
  414. package/helpers/utils/is-numeric.js.map +0 -1
  415. package/helpers/utils/wrap-in-measure-event.d.ts +0 -9
  416. package/helpers/utils/wrap-in-measure-event.js +0 -50
  417. package/helpers/utils/wrap-in-measure-event.js.map +0 -1
  418. package/logger/create-logger-middleware/index.d.ts +0 -14
  419. package/logger/create-logger-middleware/index.js +0 -41
  420. package/logger/create-logger-middleware/index.js.map +0 -1
  421. package/logger/create-sentry-instance/index.d.ts +0 -29
  422. package/logger/create-sentry-instance/index.js +0 -63
  423. package/logger/create-sentry-instance/index.js.map +0 -1
  424. package/logger/create-sentry-middleware/index.d.ts +0 -14
  425. package/logger/create-sentry-middleware/index.js +0 -19
  426. package/logger/create-sentry-middleware/index.js.map +0 -1
  427. package/logger/handler-creators/index.d.ts +0 -5
  428. package/logger/handler-creators/index.js +0 -41
  429. package/logger/handler-creators/index.js.map +0 -1
  430. package/logger/initialize-sentry-creator/index.d.ts +0 -17
  431. package/logger/initialize-sentry-creator/index.js +0 -35
  432. package/logger/initialize-sentry-creator/index.js.map +0 -1
  433. package/logger/sentry-logger/index.d.ts +0 -9
  434. package/logger/sentry-logger/index.js +0 -36
  435. package/logger/sentry-logger/index.js.map +0 -1
  436. package/module-federation/__example__/webpack-config.example.d.ts +0 -366
  437. package/module-federation/__example__/webpack-config.example.js +0 -51
  438. package/module-federation/__example__/webpack-config.example.js.map +0 -1
  439. package/module-federation/enhanced-module-federation-plugin.d.ts +0 -46
  440. package/module-federation/enhanced-module-federation-plugin.js +0 -72
  441. package/module-federation/enhanced-module-federation-plugin.js.map +0 -1
  442. package/module-federation/utils/index.d.ts +0 -8
  443. package/module-federation/utils/index.js +0 -28
  444. package/module-federation/utils/index.js.map +0 -1
  445. package/observe-middleware/index.d.ts +0 -9
  446. package/observe-middleware/index.js +0 -67
  447. package/observe-middleware/index.js.map +0 -1
  448. package/set-header-middleware/create.d.ts +0 -10
  449. package/set-header-middleware/create.js +0 -16
  450. package/set-header-middleware/create.js.map +0 -1
  451. package/src/cache/helpers.js +0 -32
  452. package/src/cache/local-storage.ts +0 -92
  453. package/src/cache/redis.js +0 -79
  454. package/src/cache/wrap-in-trace.js +0 -57
  455. package/src/config/create.js +0 -33
  456. package/src/config/helpers.js +0 -71
  457. package/src/config/validate.js +0 -114
  458. package/src/container/create-inject.js +0 -32
  459. package/src/container/get-dependencies.js +0 -46
  460. package/src/container/index.js +0 -188
  461. package/src/container/is-container.js +0 -14
  462. package/src/container/service-not-found-error.js +0 -14
  463. package/src/create-proxy/create-proxy-middleware/index.js +0 -47
  464. package/src/create-proxy/index.js +0 -27
  465. package/src/create-response-sender/index.js +0 -48
  466. package/src/get-dynamic-data/index.js +0 -26
  467. package/src/graceful-shutdown/index.js +0 -97
  468. package/src/helpers/add-error-handling/index.js +0 -24
  469. package/src/helpers/api/create-enhancer.js +0 -52
  470. package/src/helpers/api/create-instance.js +0 -42
  471. package/src/helpers/api/middlewares/collect-cookie-middleware.js +0 -27
  472. package/src/helpers/api/middlewares/count-api-response-time.js +0 -31
  473. package/src/helpers/api/middlewares/error-handlers-middlewares.js +0 -124
  474. package/src/helpers/api/middlewares/helpers.js +0 -26
  475. package/src/helpers/api/middlewares/pass-headers-middleware.js +0 -19
  476. package/src/helpers/api/middlewares/prepare-request-headers.js +0 -18
  477. package/src/helpers/api/middlewares/set-http-agents-middleware.js +0 -22
  478. package/src/helpers/api/middlewares/stages-trace-middleware.js +0 -46
  479. package/src/helpers/api/server-adapter/__fixtures__/fake-keys.js +0 -58
  480. package/src/helpers/api/server-adapter/constants.js +0 -12
  481. package/src/helpers/api/server-adapter/helpers.js +0 -244
  482. package/src/helpers/api/server-adapter/index.js +0 -155
  483. package/src/helpers/development/use-dot-env.js +0 -9
  484. package/src/helpers/get-params/index.js +0 -59
  485. package/src/helpers/http/request-getters.js +0 -42
  486. package/src/helpers/http/statuses-validator.js +0 -20
  487. package/src/helpers/logger/create-pino-instance/index.js +0 -41
  488. package/src/helpers/logger/format-time/index.js +0 -6
  489. package/src/helpers/metrics/index.js +0 -40
  490. package/src/helpers/prometheus/index.js +0 -9
  491. package/src/helpers/prometheus/measure-middleware.js +0 -73
  492. package/src/helpers/prometheus/metric-adapter.js +0 -99
  493. package/src/helpers/react/error-handlers/index.tsx +0 -68
  494. package/src/helpers/redux/constants.js +0 -10
  495. package/src/helpers/redux/create-compose-middleware.js +0 -24
  496. package/src/helpers/redux/get-dev-compose-creator.js +0 -9
  497. package/src/helpers/redux/prepare-on-ready.js +0 -16
  498. package/src/helpers/redux/remote-data.js +0 -124
  499. package/src/helpers/redux/selector/statuses.js +0 -30
  500. package/src/helpers/redux/wait-on-store-readiness.js +0 -40
  501. package/src/helpers/render/get-react-markup-data.js +0 -18
  502. package/src/helpers/render/index.js +0 -69
  503. package/src/helpers/render/render-app.js +0 -15
  504. package/src/helpers/saga/__fixtures__/do-safe-request.js +0 -49
  505. package/src/helpers/saga/cache-result.js +0 -77
  506. package/src/helpers/saga/create-store.js +0 -102
  507. package/src/helpers/saga/do-safe-request.js +0 -47
  508. package/src/helpers/saga/safe-request.js +0 -11
  509. package/src/helpers/saga/take-chain.js +0 -53
  510. package/src/helpers/tracer/create-child-tracing-middleware.js +0 -42
  511. package/src/helpers/tracer/index.js +0 -171
  512. package/src/helpers/utils/check-feature-by-segment.js +0 -32
  513. package/src/helpers/utils/format-object-keys.js +0 -23
  514. package/src/helpers/utils/get-ms-from-hrt.js +0 -16
  515. package/src/helpers/utils/is-match-pattern-list.js +0 -13
  516. package/src/helpers/utils/is-not-empty-array.js +0 -8
  517. package/src/helpers/utils/is-not-empty-string.js +0 -11
  518. package/src/helpers/utils/is-numeric.ts +0 -12
  519. package/src/helpers/utils/wrap-in-measure-event.js +0 -35
  520. package/src/logger/create-logger-middleware/index.js +0 -46
  521. package/src/logger/create-sentry-instance/index.js +0 -74
  522. package/src/logger/create-sentry-middleware/index.js +0 -16
  523. package/src/logger/handler-creators/index.js +0 -38
  524. package/src/logger/initialize-sentry-creator/index.js +0 -43
  525. package/src/logger/sentry-logger/index.js +0 -33
  526. package/src/module-federation/__example__/webpack-config.example.js +0 -57
  527. package/src/module-federation/enhanced-module-federation-plugin.js +0 -92
  528. package/src/module-federation/utils/index.js +0 -32
  529. package/src/observe-middleware/index.js +0 -70
  530. package/src/set-header-middleware/create.js +0 -17
@@ -1,16 +0,0 @@
1
- /**
2
- * Оборачивает опциональный обработчик события готовности стора, добавляя отписку и опциональную очистку таймера.
3
- * @param {Object} store Стор.
4
- * @param {Function} unsubscribe Функция отписки от стора.
5
- * @param {Function|*} onReady Опциональный обработчик события готовности стора.
6
- * @return {Function} Обёрнутый обработчик готовности стора.
7
- */
8
- const prepareOnReady = (store, unsubscribe, onReady) => timerId => {
9
- unsubscribe();
10
-
11
- timerId && clearTimeout(timerId);
12
-
13
- onReady && onReady(store);
14
- };
15
-
16
- export default prepareOnReady;
@@ -1,124 +0,0 @@
1
- import {
2
- createReducer as pureCreateReducer,
3
- } from 'reduxsauce';
4
- import { STATUSES } from './constants';
5
- import pipe from 'lodash/fp/pipe';
6
-
7
- /**
8
- * Приняв статус, вернет функцию,
9
- * которая примет состояние и добавит в него статус в поле "status".
10
- * @param {string} status Значение статуса.
11
- * @return {function (Object): Object} Примет состояние и добавит в него статус в поле "status".
12
- */
13
- const defaultStatusAdderMaker = status => state => ({
14
- ...state,
15
- status,
16
- });
17
-
18
- /**
19
- * Возвращает новую функцию, которая вернет обернутый обработчик.
20
- * Обернутый обработчик добавит статус в состояние с помощью переданной функции withStatus.
21
- * @param {Function} withStatus Функция, добавляющая в состояние статус.
22
- * @return {function (Function): Function} Функция, оборачивающая обработчик.
23
- */
24
- const createHandleWithStatusMaker = withStatus => {
25
- /**
26
- * Приняв обработчик, вернет функцию,
27
- * которая будет применять withStatus к результату обработчика.
28
- * @param {Function} handler Обработчик.
29
- * @return {*} Новое состояние.
30
- */
31
- const handlerMaker = handler => {
32
- const handleWithStatus = pipe(
33
- handler,
34
- withStatus
35
- );
36
-
37
- return handleWithStatus;
38
- };
39
-
40
- return handlerMaker;
41
- };
42
-
43
- /**
44
- * Модифицированная версия createReducer из пакета "reduxsauce".
45
- * @param {*} initialState Начальное состояние.
46
- * @param {function (Wrappers, Handlers): Object} createHandlers Должна вернуть набор обработчиков.
47
- * @param {Object} [options] Опции.
48
- * @param {Object} [options.createStatusAdder] Функция, которая добавит статус в состояние.
49
- * @return {Function} Функция-reducer.
50
- */
51
- export const createReducer = (
52
- initialState,
53
- createHandlers,
54
- {
55
- createStatusAdder = defaultStatusAdderMaker,
56
- } = {}
57
- ) => {
58
- /**
59
- * @typedef {Object} Wrappers Набор оберток для обработчиков.
60
- * @property {Function} asInitial Обернет переданный обработчик, добавляя в состояние статус "initial".
61
- * @property {Function} asRequest Обернет переданный обработчик, добавляя в состояние статус "fetching".
62
- * @property {Function} asSuccess Обернет переданный обработчик, добавляя в состояние статус "success".
63
- * @property {Function} asFailure Обернет переданный обработчик, добавляя в состояние статус "failure".
64
- */
65
- const wrappers = {
66
- asInitial: createHandleWithStatusMaker(
67
- createStatusAdder(STATUSES.initial)
68
- ),
69
- asRequest: createHandleWithStatusMaker(
70
- createStatusAdder(STATUSES.fetching)
71
- ),
72
- asSuccess: createHandleWithStatusMaker(
73
- createStatusAdder(STATUSES.success)
74
- ),
75
- asFailure: createHandleWithStatusMaker(
76
- createStatusAdder(STATUSES.failure)
77
- ),
78
- };
79
-
80
- /**
81
- * @typedef {Object} Handlers Набор обработчиков.
82
- * @property {Function} initial Обработает состояние, добавив статус "initial" с помощью createStatusAdder.
83
- * @property {Function} request Обработает состояние, добавив статус "fetching" с помощью createStatusAdder.
84
- * @property {Function} success Обработает состояние, добавив статус "success" с помощью createStatusAdder.
85
- * @property {Function} failure Обработает состояние, добавив статус "failure" с помощью createStatusAdder.
86
- */
87
- const handlers = {
88
- initial: createStatusAdder(STATUSES.initial),
89
- request: createStatusAdder(STATUSES.fetching),
90
- success: createStatusAdder(STATUSES.success),
91
- failure: createStatusAdder(STATUSES.failure),
92
- };
93
-
94
- return pureCreateReducer(
95
- initialState,
96
- createHandlers(wrappers, handlers)
97
- );
98
- };
99
-
100
- /**
101
- * Возвращает функцию, создающую начальное состояние со статусом.
102
- * @param {*} baseInitialState Начальное состояние.
103
- * @param {Object} [options] Опции.
104
- * @param {Function} [options.createStatusAdder] Получив статус, вернет функцию, которая применит его к состоянию.
105
- * @return {Function} Функция, создающую начальное состояние со статусом.
106
- */
107
- export const createStateMaker = (
108
- baseInitialState = {},
109
- {
110
- createStatusAdder = defaultStatusAdderMaker,
111
- } = {}
112
- ) => {
113
- const addStatus = createStatusAdder(STATUSES.initial);
114
-
115
- /**
116
- * Генерирует состояние с начальным статусом.
117
- * @return {*} Состояние с начальным статусом.
118
- */
119
- const createStateWithStatus = () => addStatus(
120
- baseInitialState
121
- );
122
-
123
- return createStateWithStatus;
124
- };
@@ -1,30 +0,0 @@
1
- import { createSelector } from 'reselect';
2
- import propEq from 'lodash/fp/propEq';
3
- import identity from 'lodash/identity';
4
- import { STATUSES } from '../constants';
5
-
6
- const statusEq = propEq('status');
7
- const isInitial = statusEq(STATUSES.initial);
8
- const isFetching = statusEq(STATUSES.fetching);
9
- const isSuccessful = statusEq(STATUSES.success);
10
- const isFailed = statusEq(STATUSES.failure);
11
-
12
- /**
13
- * Вернет новый набор селекторов статуса.
14
- * @param {Function} [selectSection=identity] Вернет раздел состояния, у которого есть статус.
15
- * @return {{ isInitial: Function, isFetching: Function, isSuccessful: Function, isFailed: Function }} Селекторы.
16
- */
17
- const create = (selectSection = identity) => ({
18
- isInitial: createSelector(selectSection, isInitial),
19
- isFetching: createSelector(selectSection, isFetching),
20
- isSuccessful: createSelector(selectSection, isSuccessful),
21
- isFailed: createSelector(selectSection, isFailed),
22
- });
23
-
24
- export const StatusSelectors = {
25
- create,
26
- isInitial,
27
- isFetching,
28
- isSuccessful,
29
- isFailed,
30
- };
@@ -1,40 +0,0 @@
1
- import prepareOnReady from './prepare-on-ready';
2
- import isFunction from 'lodash/isFunction';
3
-
4
- /**
5
- * Наблюдатель за готовностью стора.
6
- * @param {Object} store Стор.
7
- * @param {Function} isReady Функция определения готовности стора.
8
- * @param {Function} onReady Функция обработчик события готовности стора.
9
- * @param {Function} onTimeout Функция обработчик события таймаута ожидания готовности стора.
10
- * @param {number} timeout Максимальное время, отведённое на ожидание готовности стора.
11
- * @return {Object} Стор.
12
- */
13
- const waitOnStoreReadiness = (
14
- store,
15
- isReady,
16
- onReady,
17
- onTimeout,
18
- timeout = 2 ** 30
19
- ) => {
20
- let timer = null;
21
- const wrapperOnReady = prepareOnReady(
22
- store,
23
- store.subscribe(
24
- () => {
25
- isReady(store) && wrapperOnReady(timer);
26
- }
27
- ),
28
- onReady
29
- );
30
- timer = setTimeout(
31
- () => {
32
- wrapperOnReady();
33
- isFunction(onTimeout) && onTimeout(store);
34
- },
35
- timeout
36
- );
37
- return store;
38
- };
39
-
40
- export default waitOnStoreReadiness;
@@ -1,18 +0,0 @@
1
- import React from 'react';
2
- import { renderToString } from 'react-dom/server';
3
- import { Provider } from 'react-redux';
4
-
5
- /**
6
- * Возвращает функцию формирующую данные React-приложения.
7
- * @param {Object} param Параметры.
8
- * @param {ReactElement} param.app Главный компонент приложения.
9
- * @param {Object} param.store Объект глобального состояния приложения.
10
- * @param {string} param.key Ключ.
11
- * @return {Function} Функция формирующая данные React-приложения.
12
- */
13
- const getReactMarkupData = ({ app: App, store, key = 'markup' }) => data => ({
14
- ...data,
15
- [key]: renderToString(<Provider store={store}><App /></Provider>),
16
- });
17
-
18
- export default getReactMarkupData;
@@ -1,69 +0,0 @@
1
- import isFunction from 'lodash/isFunction';
2
- import wrapInMeasureEvent from '../utils/wrap-in-measure-event';
3
-
4
- /**
5
- * Создаёт функцию для рендеринга приложения, навешивая необходимые события.
6
- * @param {Object} param Параметры.
7
- * @param {Function} param.render Пользовательская функция для рендеринга приложения.
8
- * @param {import('http').ServerResponse} param.response Ответ.
9
- * @return {Function} Функция, обёрнутая в событие для измерения времени рендеринга.
10
- */
11
- export const prepareRenderFunction = ({
12
- render,
13
- response,
14
- }) => wrapInMeasureEvent(
15
- {
16
- fn: render,
17
- startEvent: 'render:start',
18
- endEvent: 'render:finish',
19
- emitter: response,
20
- }
21
- );
22
-
23
- /**
24
- * Возвращает шаблон, который подходит текущей конфигурации.
25
- * @param {Object} data Данные.
26
- * @param {Object} data.templates Шаблоны.
27
- * @param {Object} data.config Конфигурация со средой выполнения.
28
- * @return {Object} Шаблон совпадающий со средой выполнения.
29
- */
30
- export const getTemplate = ({ templates, config } = {}) => {
31
- for (const templateName in templates) {
32
- const { checker, template } = validateTemplate(templates[templateName]);
33
- if (checker(config)) {
34
- return template;
35
- }
36
- }
37
- };
38
-
39
- /**
40
- * Проверка templates на валидность.
41
- * @param {Object} templateObject Шаблон.
42
- * @return {Object} [templateObject] Валидный шаблон.
43
- */
44
- export function validateTemplate (templateObject) {
45
- const { checker, template } = templateObject || {};
46
- if ([checker, template].some(value => !isFunction(value))) {
47
- const jsonView = JSON.stringify(templateObject, jsonStringifyReplacer, 2);
48
- throw Error(`
49
- Template object must contain properties "checker" and "template" that must be a functions.
50
- ${jsonView}
51
- `.trim());
52
- } else {
53
- return templateObject;
54
- }
55
- }
56
-
57
- /**
58
- * Преобразует функцию в строку.
59
- * @param {string} key Ключ объекта.
60
- * @param {*} value Значение объекта.
61
- * @return {*} [value] Преобразованное значение объекта.
62
- */
63
- export function jsonStringifyReplacer (key, value) {
64
- let result = value;
65
- if (!JSON.stringify(value)) {
66
- result = Object.prototype.toString.call(value);
67
- }
68
- return result;
69
- }
@@ -1,15 +0,0 @@
1
- /**
2
- * Выводит данные в шаблон.
3
- * @param {Object} data Исхоные данные для рендеринга.
4
- * @param {Function} data.template Функция-шаблон, для вывода данных в разметку.
5
- * @param {Function} data.getAppData Функция формирующая настройки приложения.
6
- * @return {string} Разметка, в виде строки, полученная в результате рендеринга шаблона.
7
- */
8
- const renderApp = ({
9
- template,
10
- getAppData,
11
- }) => template({
12
- ...getAppData(),
13
- });
14
-
15
- export default renderApp;
@@ -1,49 +0,0 @@
1
- export const data = {
2
- id: 500,
3
- trademark: {},
4
- notices_text_all: ['text', 'text'],
5
- files: [
6
- {
7
- filename: 'test_1.pdf',
8
- title: 'Тест-1',
9
- size: 13,
10
- url: 'https://test-1.pgf',
11
- },
12
- {
13
- filename: 'test_2.pdf',
14
- title: 'Тест-2',
15
- size: 31,
16
- url: 'https://test-2.pgf',
17
- },
18
- ],
19
- modifier: {
20
- isPicture: false,
21
- },
22
- };
23
-
24
- export const error = {
25
- message: 'Error message',
26
- };
27
-
28
- export const errorWithConfig = {
29
- message: 'Error message',
30
- config: {
31
- url: 'test-error-url',
32
- },
33
- };
34
-
35
- export const errorWithResponse = {
36
- message: 'Error message',
37
- response: {
38
- status: 500,
39
- data: {
40
- test: 'test',
41
- },
42
- headers: {
43
- test: 'test',
44
- },
45
- config: {
46
- test: 'test',
47
- },
48
- },
49
- };
@@ -1,77 +0,0 @@
1
- import { call } from 'redux-saga/effects';
2
- import isFunction from 'lodash/isFunction';
3
- import isPlainObject from 'lodash/isPlainObject';
4
- import doSafeRequest from './do-safe-request';
5
-
6
- /**
7
- * Проверяет наличие данных, запрошенных из кэша.
8
- * @param {*} data Данные, запрошенных из кэша.
9
- * @return {boolean} Получен ли ответ.
10
- */
11
- export const validateCacheDefault = data => Boolean(data);
12
-
13
- /**
14
- * Проверяет валидность ответа API.
15
- * @param {Object} response Ответ API.
16
- * @return {boolean} Результат проверки.
17
- */
18
- export const validateResultDefault = response =>
19
- Boolean(response) && isPlainObject(response) && Boolean(response.ok);
20
-
21
- /**
22
- * @typedef {Object} Cache Объект кэша.
23
- * @property {Function} get Функция, получающая данные из кэша.
24
- * @property {Function} set Функция, записывающая данные в кэш.
25
- * @property {boolean} status Статус доступности кэша.
26
- */
27
-
28
- /**
29
- * Запрашивает данные с сервера с кэшированием.
30
- * @param {Object} options Настройки кэширования.
31
- * @param {Cache} options.cache Объект кэша.
32
- * @param {string} options.key Ключ для сохранения.
33
- * @param {Function} options.captureException Обработчик ошибки.
34
- * @param {Function} options.validateCache Функция для проверки валидности данных кэша.
35
- * @param {Function} options.validateResult Функция для проверки валидности результата при сохранении в кэш.
36
- * @param {Function} options.fn Функция для получения данных.
37
- * @param {Array} options.args Аргументы функции для запроса данных.
38
- * @return {import('./do-safe-request').ServerResponse} Результат.
39
- */
40
- export default function * cacheResult ({
41
- cache,
42
- key,
43
- captureException,
44
- validateCache = validateCacheDefault,
45
- validateResult = validateResultDefault,
46
- fn = doSafeRequest,
47
- args = [],
48
- duration = 3600,
49
- }) {
50
- const { get, set, status } = cache || {};
51
- let isCacheAvailable = status && isFunction(get) && isFunction(set);
52
- const canDoRequest = isFunction(validateCache) && isFunction(fn);
53
- let result;
54
- try {
55
- result = isCacheAvailable && (yield call(get, key));
56
- if (validateCache(result)) {
57
- result = JSON.parse(result);
58
- }
59
- } catch (error) {
60
- if (isFunction(captureException)) {
61
- captureException(error);
62
- }
63
- isCacheAvailable = false;
64
- result = null;
65
- }
66
-
67
- if (canDoRequest && !validateCache(result)) {
68
- result = yield call(fn, ...args);
69
- const isResultValid = isFunction(validateResult) && validateResult(result);
70
-
71
- if (isCacheAvailable && isResultValid) {
72
- yield call(set, key, JSON.stringify(result), duration);
73
- }
74
- }
75
-
76
- return result;
77
- }
@@ -1,102 +0,0 @@
1
- import { applyMiddleware, createStore as createReduxStore } from 'redux';
2
- import createSagaMiddleware, { END } from 'redux-saga';
3
- import isFunction from 'lodash/isFunction';
4
- import { createService } from '../../container';
5
- import waitOnStoreReadiness from '../redux/wait-on-store-readiness';
6
-
7
- /**
8
- * Создаёт функцию для обработки успешного завершения подготовки стора.
9
- * @param {Function} onReady Опциональный обработчик успешного завершения.
10
- * @return {Function} Функция для обработки успешного завершения подготовки стора.
11
- */
12
- export const createSagaReadyHandler = onReady => store => {
13
- store.dispatch(END);
14
- isFunction(onReady) && onReady(store);
15
- };
16
-
17
- /**
18
- * Создаёт store с применённым middleware саг.
19
- * @param {Function} reducer Редьюсер.
20
- * @param {Function} initialSaga Инициализирующая сага.
21
- * @param {Object} options Необязательные опции.
22
- * @param {Function} options.isReady Функция для определения готовности store.
23
- * @param {Object} options.initialState Начальное состояние.
24
- * @param {Function} options.compose Функция для применения middleware.
25
- * @param {Array} options.middleware Список дополнительных middleware.
26
- * @param {Function} options.onReady Функция которая будет выполнена по готовности store.
27
- * @param {number} options.timeout Максимальное время ожидания готовности store.
28
- * @param {Function} [options.onTimeout] Функция обработчик события таймаута ожидания готовности store.
29
- * @param {Function} [options.onSagasErrorHandler] Корневой обработчик ошибок в сагах.
30
- * @return {Object} Объект со store и функцией runSaga для запуска саг.
31
- */
32
- export const createStore = (
33
- reducer,
34
- initialSaga,
35
- {
36
- isReady,
37
- initialState = {},
38
- compose = input => input,
39
- middleware = [],
40
- onReady,
41
- timeout,
42
- onTimeout,
43
- onSagasErrorHandler,
44
- } = {}
45
- ) => {
46
- const sagaMiddleware = createSagaMiddleware(
47
- isFunction(onSagasErrorHandler)
48
- ? { onError: onSagasErrorHandler }
49
- : {}
50
- );
51
- let store = createReduxStore(
52
- reducer,
53
- initialState,
54
- compose(applyMiddleware(sagaMiddleware, ...middleware))
55
- );
56
- if (isFunction(isReady)) {
57
- store = waitOnStoreReadiness(
58
- store,
59
- isReady,
60
- createSagaReadyHandler(onReady),
61
- onTimeout,
62
- timeout
63
- );
64
- } else if (isFunction(onReady)) {
65
- throw new TypeError(
66
- 'Third argument property "onReady" is a function, when property "isReady" is not a function. '
67
- + 'The "onReady" function will never be called.'
68
- );
69
- }
70
- return {
71
- store,
72
- runSaga: () => sagaMiddleware.run(initialSaga).toPromise(),
73
- };
74
- };
75
-
76
- /**
77
- * Преобразует опции сервиса в аргументы функции.
78
- * @param {Object} param Параметры.
79
- * @param {Function} param.reducer Редьюсер.
80
- * @param {Function} param.initialSaga Инициализирующая сага.
81
- * @param {Object} param.options Остальные, необязательные опции.
82
- * @return {Array} Массив агрументов для использования в функции.
83
- */
84
- export const mapServiceOptionsToArgs = (
85
- {
86
- reducer,
87
- initialSaga,
88
- ...options
89
- }
90
- ) => [
91
- reducer,
92
- initialSaga,
93
- options,
94
- ];
95
-
96
- /**
97
- * @type {Function} Сервис создания store для использования совместно с контейнером
98
- */
99
- export const createStoreService = createService(
100
- createStore,
101
- mapServiceOptionsToArgs
102
- );
@@ -1,47 +0,0 @@
1
- import { call } from 'redux-saga/effects';
2
- import get from 'lodash/get';
3
-
4
- /**
5
- * @typedef {Object} ServerResponse Ответ сервера.
6
- * @property {boolean} ok Были ли запрос совершен успешно.
7
- * @property {Object|null} error Объект ошибки.
8
- * @property {Object|string|null} data Данные ответа.
9
- * @property {number|null} status Статус ответа.
10
- */
11
-
12
- /**
13
- * Безопасно запрашивает данные c сервера, с обработкой и логированием ошибок, обрабатывает ответ.
14
- * @param {Function} performRequest Функция, выполняющая запрос.
15
- * @param {Object} [options] Опции.
16
- * @param {Array} [options.args] Аргументы функции, выполняющей запрос.
17
- * @return {ServerResponse} Ответ сервера.
18
- */
19
- export default function * doSafeRequest (
20
- performRequest,
21
- options
22
- ) {
23
- const {
24
- args = [],
25
- } = options || {};
26
-
27
- let response;
28
- let ok = false;
29
- let originalError = null;
30
-
31
- try {
32
- response = yield call(performRequest, ...args);
33
- ok = true;
34
- } catch (error) {
35
- // пытаемся получить данные ответа из ошибки
36
- response = error.response;
37
-
38
- // добавляем в результат объект ошибки
39
- originalError = error;
40
- }
41
- return {
42
- ok,
43
- error: originalError,
44
- data: get(response, 'data', null),
45
- status: get(response, 'status', null),
46
- };
47
- }
@@ -1,11 +0,0 @@
1
- import { call } from 'redux-saga/effects';
2
- import doSafeRequest from './do-safe-request';
3
-
4
- /**
5
- * Обёрнутая в эффект call сага doSafeRequest.
6
- * @param {Array} args Аргументы для вызова саги.
7
- * @return {import('@redux-saga/core/effects').CallEffect} Эффект.
8
- */
9
- const safeRequest = (...args) => call(doSafeRequest, ...args);
10
-
11
- export default safeRequest;
@@ -1,53 +0,0 @@
1
- import { delay, fork, put, race, take } from 'redux-saga/effects';
2
- import propEq from 'lodash/fp/propEq';
3
- import now from 'lodash/now';
4
-
5
- /**
6
- * Накапливает экшены и генерирует эффект по таймауту.
7
- * @param {number} timeout Время задержки в мс.
8
- * @param {Array} types Массив с типами экшенов.
9
- * @param {Function} task Генератор.
10
- * @param {...*} args Аргументы для генератора.
11
- * @return {Object} Эффект.
12
- */
13
- export const takeChain = (timeout, types, task, ...args) =>
14
- fork(generateTakeChain, timeout, types, task, ...args);
15
-
16
- /**
17
- * Генерирует эффект по таймауту.
18
- * @param {number} timeout Время задержки в мс.
19
- * @param {Array} types Массив с типами экшенов.
20
- * @param {Function} task Генератор.
21
- * @param {...*} args Аргументы для генератора.
22
- */
23
- export function * generateTakeChain (timeout, types, task, ...args) {
24
- while (true) {
25
- const BREAK_TYPE = `BREAK_${now()}`;
26
- const collectedActions = [yield take(types)];
27
-
28
- yield fork(putDelayed, timeout, BREAK_TYPE);
29
-
30
- while (true) {
31
- const { action, canceled } = yield race({
32
- action: take(types),
33
- canceled: take(BREAK_TYPE),
34
- });
35
-
36
- action && collectedActions.push(action);
37
- if (canceled || types.every(type => collectedActions.some(propEq('type', type)))) {
38
- yield fork(task, ...args, collectedActions);
39
- break;
40
- }
41
- }
42
- }
43
- }
44
-
45
- /**
46
- * Вызывает экшен с заданной задержкой.
47
- * @param {number} timeout Время задержки в мс.
48
- * @param {string} type Тип экшена.
49
- */
50
- export function * putDelayed (timeout, type) {
51
- yield delay(timeout);
52
- yield put({ type });
53
- }