@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,188 +0,0 @@
1
- import isString from 'lodash/isString';
2
- import isFunction from 'lodash/isFunction';
3
- import ServiceNotFoundError from './service-not-found-error';
4
- import getDependencies from './get-dependencies';
5
- import isContainer from './is-container';
6
- import isNotEmptyString from '../helpers/utils/is-not-empty-string';
7
-
8
- /**
9
- * Оборачивает функцию для использования в контейнере.
10
- * @param {Function} fn Функция, которую необходимо обернуть.
11
- * @param {Function} dependenciesToArgs Функция для преобразования зависимостей сервиса в аргументы функции.
12
- * @return {Function} Функция-сервис, для использования в контейнере.
13
- */
14
- export const createService = (
15
- fn,
16
- dependenciesToArgs
17
- ) => (dependencies, ...args) => fn(...dependenciesToArgs(dependencies), ...args);
18
-
19
- /**
20
- * Создаёт функцию для получения синглтона контейнера с заданными параметрами.
21
- * @param {Object} options Опции для создания контейнера.
22
- * @return {function(): Object} Функция для получения контейнера-синглтона.
23
- */
24
- export const createSingleton = options => {
25
- let container;
26
- return () => {
27
- if (!container) {
28
- container = create(options);
29
- }
30
- return container;
31
- };
32
- };
33
-
34
- /**
35
- * Создаёт функцию-фабрику для создания нового экземпляра контейнера при её вызове.
36
- * @param {Object} options Опции для создания контейнера.
37
- * @return {function(): Object} Функция-фабрика для получения экземпляра контейнера с заданными параметрами.
38
- */
39
- export const createFactory = options => () => create(options);
40
-
41
- /**
42
- * Реализует наследование контейнера от другого контейнера.
43
- * @param {Object} container Дочерний контейнер.
44
- * @param {Object} parentContainer Родительский контейнер.
45
- * @return {Object} Контейнер с поиском зависимости в родителе.
46
- */
47
- const inherit = (
48
- container,
49
- parentContainer
50
- ) => {
51
- let result = container;
52
- if (isContainer(parentContainer)) {
53
- result = {
54
- ...container,
55
-
56
- /**
57
- * Оборачивает получение зависимости для добавления поиска в родительском контейнере.
58
- * @param {string} name Название зависимости.
59
- * @return {*} Зависимость.
60
- * @throws {TypeError} Выдаст ошибку если параметр "name" не строка.
61
- * @throws {Error} Выдаст ошибку если параметр "name" не строка или пустая строка.
62
- * @throws {ServiceNotFoundError} Выдаст ошибку при попытке вызвать незарегистрированный сервис.
63
- */
64
- async get (name) {
65
- let dependency;
66
- try {
67
- dependency = await container.get(name);
68
- } catch (e) {
69
- if (e instanceof ServiceNotFoundError) {
70
- dependency = await parentContainer.get(name);
71
- } else {
72
- throw e;
73
- }
74
- }
75
- return dependency;
76
- },
77
- };
78
- }
79
- return result;
80
- };
81
-
82
- /**
83
- * Функция создает IoC-контейнер.
84
- * @param {Object} options Дополнительные опции для IoC-контейнера.
85
- * @param {Array} options.services Массив сервисов, которые нужно зарегистрировать.
86
- * @param {Object} options.parent Родительский контейнер.
87
- * @return {Object} IoC Container.
88
- * @throws {TypeError} Выдаст ошибку если параметр "services" не массив.
89
- */
90
- export default function create ({ services = [], parent = null } = {}) {
91
- if (!Array.isArray(services)) {
92
- throw new TypeError('Параметр "services" должен быть массивом');
93
- }
94
-
95
- const registry = {};
96
-
97
- const container = inherit({
98
- /**
99
- * Добавляет зависимость в список зависимостей.
100
- * @param {Object} options Опции необходимые для добавления зависимости.
101
- * @param {string} options.name Название зависимости.
102
- * @param {Function} options.singleton Функция-синглтон.
103
- * @param {Function} options.factory Функция-конструктор.
104
- * @param {*} options.value Переданная зависимость.
105
- * @param {Array} options.dependencies Массив зависимостей.
106
- * @throws {Error} Выдаст ошибку если параметр "name" не строка или пустая строка.
107
- * @throws {Error} Выдаст ошибку если не передан ни один из параметров "factory", "singleton" или "value".
108
- */
109
- set ({ name, singleton, factory, value, dependencies = [] } = {}) {
110
- if (!isString(name) || name === '') {
111
- throw new Error('Параметр "name" должен быть непустой строкой');
112
- }
113
-
114
- if (factory !== undefined && !isFunction(factory)) {
115
- throw new TypeError('Параметр "factory" должен быть функцией');
116
- }
117
-
118
- if (singleton !== undefined && !isFunction(singleton)) {
119
- throw new TypeError('Параметр "singleton" должен быть функцией');
120
- }
121
-
122
- if (factory === undefined && value === undefined && singleton === undefined) {
123
- throw Error(`Сервис ${name} не зарегистрирован,
124
- так как обязательно должен быть передан один из параметров "factory", "singleton" или "value"`);
125
- }
126
-
127
- registry[name] = {
128
- name,
129
- singleton,
130
- factory,
131
- dependencies,
132
- value,
133
- };
134
- },
135
-
136
- /**
137
- * Получает зависимость по ее названию.
138
- * @param {string} name Название зависимости.
139
- * @param {string} serviceName Название сервиса.
140
- * @return {*} Зависимость.
141
- * @throws {TypeError} Выдаст ошибку если параметр "name" не строка.
142
- * @throws {Error} Выдаст ошибку если параметр "name" не строка или пустая строка.
143
- * @throws {ServiceNotFoundError} Выдаст ошибку при попытке вызвать незарегистрированный сервис.
144
- */
145
- async get (name, serviceName = '') {
146
- if (!isString(name) || name === '') {
147
- throw new Error('Параметр "name" должен быть непустой строкой');
148
- }
149
-
150
- const service = registry[name];
151
- let dependency;
152
-
153
- if (!service) {
154
- throw new ServiceNotFoundError(
155
- isNotEmptyString(serviceName)
156
- ? `Не найдена зависимость "${name}" в цепочке вызовов "${serviceName}"`
157
- : `Сервис "${name}" не зарегистрирован`
158
- );
159
- }
160
-
161
- if (service.singleton && !service.value) {
162
- service.value = await service.singleton(
163
- {
164
- ...await getDependencies(container, service.dependencies, `${serviceName}/${name}`),
165
- }
166
- );
167
- }
168
-
169
- if (service.value !== undefined) {
170
- dependency = service.value;
171
- }
172
-
173
- if (service.factory) {
174
- dependency = await service.factory(
175
- {
176
- ...await getDependencies(container, service.dependencies, `${serviceName}/${name}`),
177
- }
178
- );
179
- }
180
-
181
- return dependency;
182
- },
183
- }, parent);
184
-
185
- services.forEach(service => container.set(service));
186
-
187
- return container;
188
- }
@@ -1,14 +0,0 @@
1
- import isPlainObject from 'lodash/isPlainObject';
2
- import isFunction from 'lodash/isFunction';
3
-
4
- /**
5
- * Проверяет является ли переданный экземпляр контейнером.
6
- * @param {*} instance Предполагаемый экземпляр контейнера.
7
- * @return {boolean} Является ли переданный экземпляр контейнером.
8
- */
9
- const isContainer = instance =>
10
- isPlainObject(instance)
11
- && isFunction(instance.get)
12
- && isFunction(instance.set);
13
-
14
- export default isContainer;
@@ -1,14 +0,0 @@
1
- /**
2
- * Ошибка поиска сервиса в контейнере.
3
- */
4
- export default class ServiceNotFoundError extends Error {
5
- /**
6
- * Конструктор.
7
- * @param {...*} args Аргументы.
8
- */
9
- constructor (...args) {
10
- super(...args);
11
- this.name = this.constructor.name;
12
- Error.captureStackTrace && Error.captureStackTrace(this, this.constructor);
13
- }
14
- }
@@ -1,47 +0,0 @@
1
- import get from 'lodash/get';
2
- import pipe from 'lodash/fp/pipe';
3
- import isFunction from 'lodash/isFunction';
4
- import expressProxy from 'express-http-proxy';
5
-
6
- const urlApi = require('url');
7
-
8
- /**
9
- * Получает обработчик с прокинутым path из config url.
10
- * @param {string} path Часть пути после хоста.
11
- * @return {Function} Обработчик для передачи URL запроса из оригинальной версии с клиента в проксирующий запрос.
12
- */
13
- export const getRequestPathResolver = path => request => request && path + request.originalUrl;
14
-
15
- /**
16
- * Функция создающая обработчик запроса.
17
- * @param {string} header Отслеживаемый заголовок.
18
- * @param {Array} map Массив обработчика.
19
- * @param {Object} config Конфигурация приложения.
20
- * @param {Object} proxyOptions Пользовательская конфигурация прокси.
21
- * @return {Function} Функция, обрабатывающая запрос.
22
- */
23
- export default function createProxyMiddleware (header, map, config, proxyOptions = {}) {
24
- return (req, res, next) => {
25
- const headerType = get(req, `headers['${header.toLowerCase()}']`, null);
26
- const getUrl = headerType ? map[headerType] : null;
27
- const proxyInstance = isFunction(getUrl) ? expressProxy(getUrl(config), {
28
- proxyReqPathResolver: getRequestPathResolver(getUrlPath(getUrl(config))), ...proxyOptions,
29
- }) : null;
30
-
31
- if (proxyInstance) {
32
- proxyInstance(req, res, next);
33
- } else {
34
- next();
35
- }
36
- };
37
- }
38
-
39
- /**
40
- * Получает path из url без слэша в конце.
41
- * @param {string} url Url.
42
- * @return {string} Path или пустую строку.
43
- */
44
- export const getUrlPath = pipe(
45
- urlApi.parse,
46
- url => url.path && url.path.replace(/\/$/, '')
47
- );
@@ -1,27 +0,0 @@
1
- import createProxyMiddleware from './create-proxy-middleware';
2
-
3
- /**
4
- * Конструктор сервиса проксирования.
5
- * @param {Object} param Параметры.
6
- * @param {Object} param.config Конфигурация приложения.
7
- * @param {Object} param.config.proxy Конфигурация прокси.
8
- * @return {Function} Функция-конструктор.
9
- */
10
- export default function createProxy (
11
- {
12
- config,
13
- config: {
14
- proxy,
15
- },
16
- }
17
- ) {
18
- return app => {
19
- if (!Array.isArray(proxy)) {
20
- throw TypeError('Параметр proxy должен быть массивом');
21
- }
22
-
23
- proxy.forEach(({ url, header, map, proxyOptions }) => {
24
- app.use(url, createProxyMiddleware(header, map, config, proxyOptions));
25
- });
26
- };
27
- }
@@ -1,48 +0,0 @@
1
- import propOr from 'lodash/fp/propOr';
2
-
3
- const getDataLayer = propOr({}, ['app', 'dataLayer']);
4
-
5
- /**
6
- * Возвращает функцию ответа на запрос, подходящую для текущего окружения.
7
- * @param {Object} dependencies Зависимости.
8
- * @param {boolean} dependencies.config.isProduction Флаг production среды.
9
- * @param {Object} dependencies.response Объект ответа.
10
- * @return {Function} Функция ответа на запрос.
11
- */
12
- export default function createResponseSender ({ config: { isProduction }, response }) {
13
- /**
14
- * Функция ответа на запрос в формате HTML.
15
- * @param {Object} options Опции.
16
- * @param {string} options.markup Разметка.
17
- */
18
- const htmlSender = ({ markup }) => { response.send(markup); };
19
-
20
- /**
21
- * Функция ответа на запрос в формате JSON.
22
- * @param {Object} options Опции.
23
- * @param {string} options.markup Разметка.
24
- * @param {{css: string, js: string, criticalJs: string[]}} options.assets Ссылки на ресурсы приложения.
25
- * @param {Object} options.store Стор приложения.
26
- */
27
- const jsonSender = ({
28
- markup,
29
- assets: {
30
- css,
31
- js,
32
- criticalJs,
33
- },
34
- store,
35
- }) => {
36
- const payload = {
37
- markup,
38
- bundle_css: css || '',
39
- bundle_js: js || '',
40
- critical_js: criticalJs || [],
41
- meta: getDataLayer(store.getState()),
42
- };
43
-
44
- response.json(payload);
45
- };
46
-
47
- return isProduction ? jsonSender : htmlSender;
48
- }
@@ -1,26 +0,0 @@
1
- import { getMethod, getStatus, getXClientIp, getOriginalUrl } from '../helpers/http/request-getters';
2
-
3
- /**
4
- * Получает данные API для логирования.
5
- * @param {Object} params Входные параметры.
6
- * @param {Object} params.response Ответ.
7
- * @param {string} params.timeDataKey Поле в response.local, из которого следует запрашивать log data.
8
- * @return {number} Статус ответа.
9
- */
10
- export const getApiLogData = ({ response, timeDataKey }) => response.locals[timeDataKey] || {};
11
-
12
- /**
13
- * Возвращает динамически получаемые данные.
14
- * @param {Object} dependencies Зависимости.
15
- * @param {Object} dependencies.config Конфигурация.
16
- * @param {string} dependencies.timeDataKey Поле в response.local, из которого следует запрашивать log data.
17
- * @return {Object} Объект с данными.
18
- */
19
- export const getDynamicData = ({ config, timeDataKey = 'logData' }) => (request, response) => ({
20
- remote_ip: getXClientIp({ request }),
21
- method: getMethod({ request }),
22
- status: getStatus({ response }),
23
- route: getOriginalUrl({ request }),
24
- ...getApiLogData({ response, timeDataKey }),
25
- version: config.version,
26
- });
@@ -1,97 +0,0 @@
1
- import isFunction from 'lodash/isFunction';
2
- import isNumeric from '../helpers/utils/is-numeric';
3
-
4
- /**
5
- * Время ожидания до принудительного завершения процесса приложения по умолчанию.
6
- * @type {number}
7
- */
8
- export const defaultExitTimeout = 20000;
9
-
10
- /**
11
- * Декорирует http-сервер, добавляя остановку при завершении процесса node-приложения.
12
- * @param {import('http').Server} server Экземпляр класса http.Server.
13
- * @param {Object} [options] Экземпляр класса http.Server.
14
- * @param {Function} [options.onSuccess] Будет вызвана перед завершением процесса в случае успешного завершения.
15
- * @param {Function} [options.onError] Будет вызвана перед принудительным завершением процесса.
16
- * @param {number} [options.timeout=20000] Время ожидания остановки, после которого выполнится принудительная остановка.
17
- */
18
- export const decorateGracefulShutdown = (server, options) => {
19
- const handleShutdown = createShutdownHandler(server, options);
20
-
21
- // e.g. kill
22
- process.on('SIGTERM', handleShutdown);
23
-
24
- // e.g. Ctrl + C
25
- process.on('SIGINT', handleShutdown);
26
- };
27
-
28
- /**
29
- * Возвращает функцию, которая запускает остановку http-сервера и завершает процесс приложения принудительно.
30
- * @param {import('http').Server} server Экземпляр класса http.Server.
31
- * @param {Object} [options] Экземпляр класса http.Server.
32
- * @param {Function} [options.onSuccess] Будет вызвана перед завершением процесса.
33
- * @param {Function} [options.onError] Будет вызвана перед завершением процесса.
34
- * @param {number} [options.timeout=20000] Время ожидания остановки, после которого выполнится принудительная остановка.
35
- * @return {Function} Функция, запускающая остановку http-сервера и завершающая процесс приложения принудительно.
36
- */
37
- export const createShutdownHandler = (
38
- server,
39
- {
40
- onError,
41
- onSuccess,
42
- timeout = defaultExitTimeout,
43
- } = {}
44
- ) => {
45
- const validTimeout = isNumeric(timeout)
46
- ? Number(timeout)
47
- : defaultExitTimeout;
48
-
49
- return () => {
50
- server.close(createCloseHandler(0, onSuccess));
51
- setTimeout(createCloseHandler(1, onError), validTimeout); // принудительное завершение
52
- };
53
- };
54
-
55
- /**
56
- * Возвращает функцию, которая завершает процесс node-приложения с определенным кодом.
57
- * @param {number} [exitCode=0] Код завершения процесса.
58
- * @param {Function} [onClose] Функция, которая будет вызвана перед завершением процесса.
59
- * @return {Function} Функция завершения процесса.
60
- */
61
- export const createCloseHandler = (exitCode = 0, onClose) => () => {
62
- isFunction(onClose) && onClose(exitCode);
63
- process.exit(exitCode);
64
- };
65
-
66
- /**
67
- * Создаёт обработчики событий завершения приложения.
68
- * @param {Object} options Опции.
69
- * @param {Object} options.logger Логгер.
70
- * @param {Object} [options.config] Конфигурация приложения.
71
- * @param {string} options.message Сообщение, которое будет залоггировано в консоль.
72
- * @return {Function} Обработчик завершения приложения.
73
- */
74
- export const onExitHandlerCreator = ({ logger, config, message }) => () => {
75
- const { isDevelopment = true } = config || {};
76
- isDevelopment && logger.info(message);
77
- };
78
-
79
- /**
80
- * Сервис для реализации лёгкого завершения приложения.
81
- * @param {Object} options Опции.
82
- * @param {Function} options.onExitError Обработчик завершения с ошибкой.
83
- * @param {Function} options.onExitSuccess Обработчик успешного завершения.
84
- * @param {number} options.processExitTimeout Максимальное время, отведённое приложению на завершение.
85
- * @return {Function} Функция, реализующая лёгкое завершение приложения.
86
- */
87
- export const gracefulShutdownCreator = (
88
- {
89
- onExitError: onError,
90
- onExitSuccess: onSuccess,
91
- processExitTimeout: timeout,
92
- }
93
- ) => server => decorateGracefulShutdown(server, {
94
- onError,
95
- onSuccess,
96
- timeout,
97
- });
@@ -1,24 +0,0 @@
1
- import isFunction from 'lodash/isFunction';
2
-
3
- /**
4
- * Возвращает функцию с обработкой ошибки обработчика роута Express.
5
- * @param {Function} handler Обработчик роута Express.
6
- * @param {Function} [errorHandler] Обработчик ошибки роута Express.
7
- * @return {Function} Обработчик роута обернутого для отлова ошибок.
8
- */
9
- export const addErrorHandling = (handler, errorHandler) => {
10
- if (!isFunction(handler)) {
11
- throw new Error('Аргумент "handler" должен быть функцией.');
12
- }
13
- return async (request, response, next, ...args) => {
14
- try {
15
- await handler(request, response, next, ...args);
16
- } catch (err) {
17
- if (isFunction(errorHandler)) {
18
- await errorHandler(err, request, response, next, ...args);
19
- } else {
20
- await next(err);
21
- }
22
- }
23
- };
24
- };
@@ -1,52 +0,0 @@
1
- import { createService } from '../../container';
2
-
3
- /**
4
- * Конструктор для создания функции для применения middleware к экземпляру axios.
5
- * @param {Array} middlewares Middleware, которые должны быть применены.
6
- * @return {function(Object): Object} Функция для применения middleware к экземпляру axios.
7
- */
8
- export const applyMiddleware = (...middlewares) =>
9
- instance =>
10
- middlewares.reduce(
11
- (currentInstance, middleware) => currentInstance.use(middleware),
12
- instance
13
- );
14
-
15
- /**
16
- * Функция для сборки middleware в функцию для применения к экземпляру axios.
17
- * @param {Array<Function>} constructors Функции-конструкторы middleware.
18
- * @param {Object} params Параметры для конструкторов.
19
- * @return {function(Object): Object} Функция для применения созданных middleware к экземпляру axios.
20
- */
21
- export const createEnhancer = (constructors, params) =>
22
- applyMiddleware(
23
- ...Array.isArray(constructors) ? constructors.map(constructor => constructor(params)) : []
24
- );
25
-
26
- /**
27
- * Преобразует опции сервиса в аргументы функции.
28
- * @param {Object} param Параметры.
29
- * @param {Array<Function>} param.constructors Функции-конструкторы middleware.
30
- * @param {Object} param.params Параметры для конструкторов.
31
- * @return {Array} Массив агрументов для использования в функции.
32
- */
33
- export const mapServiceOptionsToArgs = (
34
- {
35
- constructors,
36
- ...params
37
- }
38
- ) => [
39
- constructors,
40
- params,
41
- ];
42
-
43
- /**
44
- * Функция для сборки middleware в функцию для применения к экземпляру axios для использования в контейнере.
45
- * @type {Function}
46
- */
47
- const enhancerConstructor = createService(
48
- createEnhancer,
49
- mapServiceOptionsToArgs
50
- );
51
-
52
- export default enhancerConstructor;
@@ -1,42 +0,0 @@
1
- import { create } from 'middleware-axios';
2
- import isFunction from 'lodash/isFunction';
3
- import { createService } from '../../container';
4
-
5
- /**
6
- * Функция для создания экземпляра axios с возможностью передать обработчик для применения middleware.
7
- * @param {Object} config Конфигурация для axios.
8
- * @param {Function} enhancer Функция для применения middleware к экземпляру.
9
- * @return {Object} Экземпляр axios с применёнными middleware.
10
- */
11
- export const createInstance = (config, enhancer) => {
12
- const instance = create(config);
13
- return isFunction(enhancer) ? enhancer(instance) : instance;
14
- };
15
-
16
- /**
17
- * Преобразует опции сервиса в аргументы функции.
18
- * @param {Object} param Параметры.
19
- * @param {Object} param.config Конфигурация для axios.
20
- * @param {Function} param.enhancer Функция для применения middleware к экземпляру.
21
- * @return {Array} Массив агрументов для использования в функции.
22
- */
23
- export const mapServiceOptionsToArgs = (
24
- {
25
- config,
26
- enhancer,
27
- }
28
- ) => [
29
- config,
30
- enhancer,
31
- ];
32
-
33
- /**
34
- * Конструктор экземпляра axios для использования в контейнере.
35
- * @type {Function}
36
- */
37
- const instanceConstructor = createService(
38
- createInstance,
39
- mapServiceOptionsToArgs
40
- );
41
-
42
- export default instanceConstructor;
@@ -1,27 +0,0 @@
1
- import uniq from 'lodash/uniq';
2
- import get from 'lodash/get';
3
-
4
- /**
5
- * Создаёт middleware для сбора cookie со всех запросов в API и их передачи в ответ сервера.
6
- * @param {Object} options Параметры для создания middleware.
7
- * @param {Object} options.response Ответ на запрос в сервис.
8
- * @return {function(Object, Function): Promise} Middleware для сбора cookie со всех запросов в API.
9
- */
10
- const createCollectCookieMiddleware = ({ response }) =>
11
-
12
- /**
13
- * Middleware для сбора cookie со всех запросов в API.
14
- * @param {Object} requestConfig Конфигурация запроса API.
15
- * @param {Function} next Функция для передачи контекста выполнения следующему middleware.
16
- * @return {Promise} Промис.
17
- */
18
- async (requestConfig, next) => {
19
- const apiResponse = await next(requestConfig);
20
- const initialCookie = response.get('set-cookie') || [];
21
- const additionalCookie = get(apiResponse, 'headers.set-cookie', []);
22
- if (additionalCookie.length) {
23
- response.set('set-cookie', uniq([...initialCookie, ...additionalCookie]));
24
- }
25
- };
26
-
27
- export default createCollectCookieMiddleware;
@@ -1,31 +0,0 @@
1
- import { getMsFromHRT } from '../../utils/get-ms-from-hrt';
2
-
3
- /**
4
- * Создаёт middleware, собирающий данные о времени ответа запросов в API.
5
- * @param {Object} param Параметры.
6
- * @param {Object} param.response Ответ.
7
- * @param {string} param.timeDataKey Ключ свойства в response.locals для сохранения замеров времени.
8
- * @return {function(Object, Function)} Middleware для сохранения времени ответа API.
9
- */
10
- const createCountApiResponseTimeMiddleware = ({ response, timeDataKey }) =>
11
-
12
- /**
13
- * Middleware для сбора данных о времени ответа запросов в API.
14
- * @param {Object} requestConfig Конфигурация запроса API.
15
- * @param {Function} next Функция для передачи контекста выполнения следующему middleware.
16
- * @return {Promise} Промис.
17
- */
18
- async (requestConfig, next) => {
19
- const startTime = process.hrtime();
20
- const apiResponse = await next(requestConfig);
21
- const url = apiResponse.config.url.replace(/\/\d+/gi, '/ID');
22
- const method = apiResponse.config.method.toUpperCase();
23
-
24
- if (!response.locals[timeDataKey]) {
25
- response.locals[timeDataKey] = {};
26
- }
27
- response.locals[timeDataKey][`${method} ${url}`] = getMsFromHRT(process.hrtime(startTime));
28
- return response;
29
- };
30
-
31
- export default createCountApiResponseTimeMiddleware;