@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,10 +0,0 @@
1
- export default createSetHeaderMiddleware;
2
- /**
3
- * Фабрика для промежуточного слоя устанавливающего заголовки.
4
- * @param {Object} dependencies Объект зависимостей.
5
- * @param {Object} [dependencies.headers] Объект заголовков.
6
- * @return {Function} Промежуточный слой приложения для установки заголовков со ссылками на клиентские ресурсы.
7
- */
8
- declare function createSetHeaderMiddleware({ headers, }: {
9
- headers?: Object | undefined;
10
- }): Function;
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /**
4
- * Фабрика для промежуточного слоя устанавливающего заголовки.
5
- * @param {Object} dependencies Объект зависимостей.
6
- * @param {Object} [dependencies.headers] Объект заголовков.
7
- * @return {Function} Промежуточный слой приложения для установки заголовков со ссылками на клиентские ресурсы.
8
- */
9
- const createSetHeaderMiddleware = ({ headers = {}, }) => (request, response, next) => {
10
- Object.entries(headers).forEach(([key, value]) => {
11
- response.set({ [key]: value });
12
- });
13
- next();
14
- };
15
- exports.default = createSetHeaderMiddleware;
16
- //# sourceMappingURL=create.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/set-header-middleware/create.js"],"names":[],"mappings":";;AAAA;;;;;GAKG;AACH,MAAM,yBAAyB,GAAG,CAAC,EACjC,OAAO,GAAG,EAAE,GACb,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;IAChC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC/C,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,IAAI,EAAE,CAAC;AACT,CAAC,CAAC;AAEF,kBAAe,yBAAyB,CAAC"}
@@ -1,32 +0,0 @@
1
- import localStorageCache from './local-storage';
2
-
3
- /**
4
- * Создаёт обработчик события подключения к redis для установки статуса готовности кэша к работе.
5
- * @param {Object} cache Объект кэша.
6
- * @return {Function} Функция устанавливающая статус кэша.
7
- */
8
- export const getOnConnectCallback = cache => () => cache.status = true;
9
-
10
- /**
11
- * Создаёт обработчик события переподключения к redis для установки статуса готовности кэша к работе.
12
- * @param {Object} cache Объект кэша.
13
- * @return {Function} Функция устанавливающая статус кэша.
14
- */
15
- export const getOnReconnectingCallback = cache => () => cache.status = false;
16
-
17
- /**
18
- * Переподключение после ошибки.
19
- * @param {string} code Код ошибки.
20
- * @return {boolean} Сходится ли код ошибки с ECONNREFUSED.
21
- */
22
- export const reconnectOnError = ({ code }) => {
23
- const targetError = 'ECONNREFUSED';
24
- return code === targetError;
25
- };
26
-
27
- /**
28
- * Определяет есть ли в localStorage нужная информация.
29
- * @param {string} key Ключ.
30
- * @return {boolean} Признак наличия ключа.
31
- */
32
- export const keyInLocalStorageExists = key => localStorageCache.status && key in localStorage;
@@ -1,92 +0,0 @@
1
- /**
2
- * Определяет доступен ли кэш.
3
- * @return Флаг доступности кэш.
4
- */
5
- export const isAvailable = (): boolean => {
6
- try {
7
- const testKey = `local_storage_test_key::${Date.now()}`;
8
-
9
- window.localStorage.setItem(testKey, testKey);
10
- window.localStorage.removeItem(testKey);
11
-
12
- return true;
13
- } catch {
14
- return false;
15
- }
16
- }
17
-
18
- /**
19
- * Возвращает объект.
20
- * @param key Ключ.
21
- * @return Запрашиваемое значение.
22
- */
23
- export const getItem = (key: string): unknown => {
24
- const { value, expire } = JSON.parse(localStorage.getItem(key) || '{}');
25
- const now = Date.now();
26
- const isExpired = expire
27
- ? now > expire
28
- : true;
29
-
30
- isExpired && localStorage.removeItem(key);
31
-
32
- return isExpired ? null : value;
33
- };
34
-
35
- /**
36
- * Добавляет значение.
37
- * @param key Ключ.
38
- * @param value Значение.
39
- * @param duration Время жизни значения в секундах.
40
- */
41
- export const setItem = (key: string, value: any, duration = 3600) => {
42
- const now = Date.now();
43
- const durationMs = duration * 1000;
44
- const expire = now + durationMs;
45
-
46
- localStorage.setItem(key, JSON.stringify({
47
- value,
48
- expire,
49
- }));
50
- };
51
-
52
- /**
53
- * Определяет, превышена ли квота.
54
- * @param error Информация об ошибке.
55
- * @return Признак превышения квоты.
56
- */
57
- export const isQuotaExceeded = (error: any): boolean => {
58
- let quotaExceeded = false;
59
-
60
- if (error) {
61
- if (error.code) {
62
- switch (error.code) {
63
- case 22:
64
- quotaExceeded = true;
65
- break;
66
- case 1014:
67
- // Firefox
68
- if (error.name === 'NS_ERROR_DOM_QUOTA_REACHED') {
69
- quotaExceeded = true;
70
- }
71
- break;
72
- }
73
- } else if (error.number === -2147024882) {
74
- // IE 8
75
- quotaExceeded = true;
76
- }
77
- }
78
-
79
- return quotaExceeded;
80
- };
81
-
82
- /**
83
- * Набор методов для работы с кэшем.
84
- */
85
- const LocalStorageCache = {
86
- get: getItem,
87
- set: setItem,
88
- status: isAvailable(),
89
- quotaExceeded: isQuotaExceeded,
90
- } as const;
91
-
92
- export default LocalStorageCache;
@@ -1,79 +0,0 @@
1
- import Redis from 'ioredis';
2
- import { promisify } from 'util';
3
- import { createService } from '../container/index';
4
- import {
5
- reconnectOnError,
6
- getOnConnectCallback,
7
- getOnReconnectingCallback,
8
- } from './helpers';
9
- import isFunction from 'lodash/isFunction';
10
-
11
- /**
12
- * Кэширует данные в Redis.
13
- * @param {Object} config Объект с параметрами Redis.
14
- * @param {Function} [reconnectAfterError] Переподключение после ошибки.
15
- * @param {Function} [getRepeatStrategy] Устанавливает время для повтора перезаписи в redis.
16
- * @param {Function} [getOnJoinCallback] Коллбэк функция при коннект статусе.
17
- * @param {Function} [getAfterReconnectingCallback] Коллбэк функция при реконнект статусе.
18
- * @return {Object} Объект с методами для работы с Redis.
19
- */
20
- export const createRedisCache = (
21
- config,
22
- reconnectAfterError = reconnectOnError,
23
- getRepeatStrategy,
24
- getOnJoinCallback = getOnConnectCallback,
25
- getAfterReconnectingCallback = getOnReconnectingCallback
26
- ) => {
27
- const {
28
- cacheConfig = {},
29
- recDelay,
30
- defaultCacheDuration,
31
- redisEnabled,
32
- sentinelEnabled,
33
- sentinelConfig,
34
- } = config || {};
35
- const cache = { status: null };
36
-
37
- if (redisEnabled || sentinelEnabled) {
38
- const client = new Redis(
39
- redisEnabled ? {
40
- reconnectOnError: reconnectAfterError,
41
- retryStrategy: isFunction(getRepeatStrategy) ? getRepeatStrategy(recDelay) : undefined,
42
- ...cacheConfig,
43
- } : sentinelConfig
44
- );
45
-
46
- client.on('connect', getOnJoinCallback(cache));
47
- client.on('reconnecting', getAfterReconnectingCallback(cache));
48
-
49
- const getAsync = promisify(client.get).bind(client);
50
- cache.set = (key, value, duration = defaultCacheDuration) => client.set(key, value, 'EX', duration);
51
- cache.get = key => getAsync(key);
52
- }
53
- return cache;
54
- };
55
-
56
- /**
57
- * Преобразует опции сервиса в аргументы функции.
58
- * @param {Object} param Параметры.
59
- * @param {Object} param.config Объект с параметрами Redis.
60
- * @param {Function} param.reconnectAfterError Переподключение после ошибки.
61
- * @param {Function} param.getRepeatStrategy Время для повтора перезаписи в redis.
62
- * @param {Function} param.getOnJoinCallback Устанавливает статус кэша.
63
- * @param {Function} param.getAfterReconnectingCallback Устанавливает статус кэша.
64
- * @return {Object} Config Объект с параметрами Redis.
65
- */
66
- export const mapServiceOptionsToArgs = ({
67
- config,
68
- reconnectAfterError,
69
- getRepeatStrategy,
70
- getOnJoinCallback,
71
- getAfterReconnectingCallback,
72
- }) => [
73
- config,
74
- reconnectAfterError,
75
- getRepeatStrategy,
76
- getOnJoinCallback,
77
- getAfterReconnectingCallback,
78
- ];
79
- export default createService(createRedisCache, mapServiceOptionsToArgs);
@@ -1,57 +0,0 @@
1
- import { createService } from '../container';
2
-
3
- /**
4
- * Обертка методов кэша.
5
- * @param {Object} tracer Экземпляр jaeger-трейсера.
6
- * @param {Object} context Контекст спана.
7
- * @param {Object} cache Кэш.
8
- * @return {Object} Объект с методами кэша.
9
- */
10
- export const wrapInTrace = (tracer, context, cache) => ({
11
- /**
12
- * Получение ключа из кэша.
13
- * @param {string} key Ключ.
14
- * @return {Promise} Промис для получения ответа.
15
- */
16
- get: async key => {
17
- const span = tracer.startSpan(`Redis GET ${key}`, {
18
- childOf: context,
19
- });
20
- const result = await cache.get(key);
21
- span.finish();
22
- return result;
23
- },
24
-
25
- /**
26
- * Задаем значение в кэш.
27
- * @param {string} key Ключ.
28
- * @param {string} value Новое значение.
29
- * @param {number} duration Длительность.
30
- */
31
- set: (key, value, duration = 3600) => {
32
- const span = tracer.startSpan(`Redis SET ${key}`, {
33
- childOf: context,
34
- });
35
- cache.set(key, value, duration);
36
- span.finish();
37
- },
38
-
39
- /**
40
- * Геттер статуса кэша.
41
- * @return {string} Статус кэша.
42
- */
43
- get status () {
44
- return cache.status;
45
- },
46
- });
47
-
48
- /**
49
- * Преобразует опции сервиса в аргументы функции.
50
- * @param {Object} param Параметры.
51
- * @param {Object} param.tracer Экземпляр jaeger-трейсера.
52
- * @param {Object} param.context Контекст спана.
53
- * @param {Object} param.cache Кэш.
54
- * @return {Object} Config Объект с параметрами Redis.
55
- */
56
- export const mapServiceOptionsToArgs = ({ tracer, context = {}, cache }) => [tracer, context, cache];
57
- export default createService(wrapInTrace, mapServiceOptionsToArgs);
@@ -1,33 +0,0 @@
1
- import isFunction from 'lodash/isFunction';
2
- import isPlainObject from 'lodash/isPlainObject';
3
- import formatObjectKeys from '../helpers/utils/format-object-keys';
4
-
5
- /**
6
- * Собирает объект конфигурации из переданных параметров.
7
- * @param {Object} data Объект с данными, которые нужно добавить в конфигурацию.
8
- * @param {Object} base Базовый объект на основе которого строится конфигурация.
9
- * @param {boolean} needFormatKeys Признак форматирования ключей объекта.
10
- * @return {Object} Объект конфигурации.
11
- */
12
- export default function createConfig (
13
- data = {},
14
- base = { ...process.env },
15
- needFormatKeys = true
16
- ) {
17
- if (!isPlainObject(data)) {
18
- throw new TypeError('Параметр "data" должен быть чистым объектом');
19
- }
20
-
21
- if (!isPlainObject(base)) {
22
- throw new TypeError('Параметр "base" должен быть чистым объектом');
23
- }
24
-
25
- return Object.entries(data).reduce((config, current) => {
26
- const [key, value] = current;
27
-
28
- if (!(key in config)) {
29
- config[key] = isFunction(value) ? value(base) : value;
30
- }
31
- return config;
32
- }, needFormatKeys ? formatObjectKeys({ ...base }) : base);
33
- }
@@ -1,71 +0,0 @@
1
- import isString from 'lodash/isString';
2
- import isFunction from 'lodash/isFunction';
3
- import { RULE_TYPES } from './validate';
4
-
5
- /**
6
- * Станадртный валидатор, проверяет на непустую строку.
7
- * @param {*} value Значение, которое нужно провалидировать.
8
- * @return {boolean} Валидно ли значение.
9
- */
10
- export const defaultValidate = value => isString(value) && value.length > 0;
11
-
12
- /**
13
- * Возвращает текст ошибки про умолчанию.
14
- * @param {string} property Свойство для которого получена ошибка.
15
- * @return {string} Текст ошибки.
16
- */
17
- export const getDefaultError = property =>
18
- `Ошибка конфигрурации приложения: Поле "${property}" заполнено некорректно`;
19
-
20
- /**
21
- * Возвращает текст ошибки для переданной строки ошибки.
22
- * @param {string} property Свойство для которого получена ошибка.
23
- * @param {string} error Текст ошибки.
24
- * @return {string} Полный текст ошибки.
25
- */
26
- export const getStringError = (property, error) =>
27
- `Ошибка конфигурации. Поле "${property}": ${error}`;
28
-
29
- /**
30
- * Выбрасывает ошибку.
31
- * @param {string} errorText Текст ошибки.
32
- */
33
- export const throwError = errorText => {
34
- throw new Error(errorText);
35
- };
36
-
37
- /**
38
- * Выводит в лог ошибку.
39
- * @param {string} errorText Текст ошибки.
40
- */
41
- export const consoleError = errorText => {
42
- // eslint-disable-next-line no-console
43
- console.error(errorText);
44
- };
45
-
46
- /**
47
- * Вызывает ошибку.
48
- * @param {Object} errorData Данные необходимые для вывода ошибки.
49
- * @param {string} errorData.property Проверяемое свойство конфига.
50
- * @param {*} errorData.value Проверяемое значение.
51
- * @param {Function|string} [errorData.error] Либо функция, вызвающая ошибку, либо текст ошибки.
52
- * @param {'error'|'warning'} errorData.type Тип валидации.
53
- */
54
- export const callError = ({
55
- property,
56
- value,
57
- error,
58
- type,
59
- }) => {
60
- if (isFunction(error)) {
61
- error(property, value);
62
- } else {
63
- const errorText = isString(error)
64
- ? getStringError(property, error)
65
- : getDefaultError(property);
66
-
67
- type === RULE_TYPES.error
68
- ? throwError(errorText)
69
- : consoleError(errorText);
70
- }
71
- };
@@ -1,114 +0,0 @@
1
- import {
2
- defaultValidate,
3
- callError,
4
- } from './helpers';
5
- import isFunction from 'lodash/isFunction';
6
- import isPlainObject from 'lodash/isPlainObject';
7
-
8
- export const RULE_TYPES = Object.freeze({
9
- error: 'error',
10
- warning: 'warning',
11
- });
12
-
13
- /**
14
- * Возвращает массив валидаторов.
15
- * @param {Object|Array|Function} validation Функция-валидатор, либо объект-валидатор,
16
- * либо массив объектов-валидаторов.
17
- * @return {Array} Массив валидаторов.
18
- */
19
- export const getValidatorsList = validation => {
20
- let result = validation;
21
-
22
- if (isFunction(validation)) {
23
- result = [{ validate: validation }];
24
- } else if (isPlainObject(validation)) {
25
- result = [validation];
26
- }
27
-
28
- return result;
29
- };
30
-
31
- /**
32
- * Проверяет значение на корректность.
33
- * @param {Function} validate Функция-валидатор.
34
- * @param {*} value Значение.
35
- * @return {boolean} Валидно ли значение.
36
- */
37
- export const checkValue = (validate, value) => isFunction(validate)
38
- ? !validate(value)
39
- : !defaultValidate(value);
40
-
41
- /**
42
- * Валидирует значение свойства конфигурации.
43
- * @param {string} property Название свойства.
44
- * @param {*} value Значение, которое нужно провалидировать.
45
- * @param {Object} rules Правила валидации,.
46
- * @param {Object|Array|Function} rules.validation Функция-валидатор, либо объект-валидатор,
47
- * либо массив объектов-валидаторов.
48
- */
49
- export const validateValue = (
50
- property,
51
- value,
52
- {
53
- validation = defaultValidate,
54
- ...restRules
55
- }
56
- ) => {
57
- const validatorsList = getValidatorsList(validation);
58
- const failedValidator = validatorsList.find(({ validate }) =>
59
- checkValue(validate, value));
60
-
61
- failedValidator && callError({
62
- property,
63
- value,
64
- ...restRules,
65
- ...failedValidator,
66
- });
67
- };
68
-
69
- /**
70
- * Валидирует определенное свойство конфигурации.
71
- * @param {Object} config Объект конфигурации.
72
- * @param {string} property Название свойства.
73
- * @param {Object} rules Объект с описанием правил валидидации свойство.
74
- */
75
- export const validateProperty = (config, property, rules) => {
76
- const value = config[property];
77
- const rulesList = Array.isArray(rules) ? rules : [rules];
78
-
79
- if (value === undefined) {
80
- const { error, type } = rules;
81
- callError({ property, value, error, type });
82
- } else {
83
- rulesList.forEach(rule => {
84
- validateValue(property, value, rule);
85
- });
86
- }
87
- };
88
-
89
- /**
90
- * Валидирует конфигурацию.
91
- * @param {Object} config Конфигурация, которую нужно провалидировать.
92
- * @param {Object} validationConfig Конфигурация валидатора.
93
- * @return {Object} Конфигурация приложения.
94
- */
95
- const validateConfig = (
96
- config,
97
- validationConfig
98
- ) => {
99
- if (!isPlainObject(config)) {
100
- throw new TypeError('Конфигурация приложения должна быть чистым объектом');
101
- }
102
-
103
- if (!isPlainObject(validationConfig)) {
104
- throw new TypeError('Конфигурация валидатора должна быть чистым объектом');
105
- }
106
-
107
- Object.entries(validationConfig).forEach(([property, rules]) => {
108
- validateProperty(config, property, rules);
109
- });
110
-
111
- return config;
112
- };
113
-
114
- export default validateConfig;
@@ -1,32 +0,0 @@
1
- import isFunction from 'lodash/isFunction';
2
- import getDependencies from './get-dependencies';
3
- import isContainer from './is-container';
4
-
5
- /**
6
- * Создаёт функцию для инъекции зависимостей из контейнера в функции.
7
- * @param {Function} getContainer Функция для получения экземпляра контейнера.
8
- * @return {Function} Функция для инъекции зависимостей из контейнера.
9
- */
10
- const createInject = getContainer => ({
11
- target,
12
- dependencies = [],
13
- registerArgs,
14
- }) => async (...args) => {
15
- const container = getContainer();
16
-
17
- // Если не получили контейнера, то выходим с ошибкой.
18
- if (!isContainer(container)) {
19
- throw new TypeError('Полученный результат выполнения функции getContainer не реализует интерфейс контейнера.');
20
- }
21
-
22
- // Если требуется регистрируем аргументы функции как сервисы в контейнере.
23
- if (isFunction(registerArgs)) {
24
- registerArgs(container, ...args);
25
- }
26
- return target(
27
- ...args,
28
- ...Object.values(await getDependencies(container, dependencies))
29
- );
30
- };
31
-
32
- export default createInject;
@@ -1,46 +0,0 @@
1
- import isString from 'lodash/isString';
2
- import isPlainObject from 'lodash/isPlainObject';
3
-
4
- /**
5
- * Определяет, является ли зависимость статической, то есть не требующей инициализации.
6
- * @param {Object} dependency Конфигурация зависимости.
7
- * @param {string} dependency.name Название зависимости.
8
- * @param {*} dependency.value Значение зависимости.
9
- * @return {boolean} Является ли зависимость статической.
10
- */
11
- export const isStaticDependency = ({ name, value }) =>
12
- typeof name === 'string'
13
- && typeof value !== 'undefined';
14
-
15
- /**
16
- * Создает объект зависимостей на основе их названий.
17
- * @param {Object} container Экземпляр контейнера в котором должен осуществляться поиск зависимостей.
18
- * @param {Object} dependencies Список зависимостей.
19
- * @param {string} serviceName Названия сервиса.
20
- * @return {Object} Объект зависимостей.
21
- */
22
- const getDependencies = (
23
- container,
24
- dependencies = [],
25
- serviceName
26
- ) => dependencies.reduce(async (prevPromise, dependency) => {
27
- const result = await prevPromise;
28
- if (isString(dependency)) {
29
- result[dependency] = await container.get(dependency, serviceName);
30
- }
31
-
32
- if (isPlainObject(dependency)) {
33
- if (isStaticDependency(dependency)) {
34
- result[dependency.name] = dependency.value;
35
- } else {
36
- const [necessaryName, necessaryDepName] = Object.entries(dependency).shift() || [];
37
- if (necessaryName && necessaryDepName) {
38
- result[necessaryName] = await container.get(necessaryDepName);
39
- }
40
- }
41
- }
42
-
43
- return result;
44
- }, Promise.resolve({}));
45
-
46
- export default getDependencies;