@sima-land/isomorph 10.0.0 → 11.0.0-alpha.1

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 (476) hide show
  1. package/cache/types.d.ts +7 -0
  2. package/cache/types.js +3 -0
  3. package/cache/types.js.map +1 -0
  4. package/config/browser.d.ts +6 -0
  5. package/config/browser.js +13 -0
  6. package/config/browser.js.map +1 -0
  7. package/config/index.d.ts +7 -0
  8. package/config/index.js +20 -0
  9. package/config/index.js.map +1 -0
  10. package/config/node.d.ts +6 -0
  11. package/config/node.js +19 -0
  12. package/config/node.js.map +1 -0
  13. package/config/types.d.ts +7 -0
  14. package/config/types.js +3 -0
  15. package/config/types.js.map +1 -0
  16. package/config/utils.d.ts +5 -0
  17. package/config/utils.js +12 -0
  18. package/config/utils.js.map +1 -0
  19. package/container/application.d.ts +25 -0
  20. package/container/application.js +63 -0
  21. package/container/application.js.map +1 -0
  22. package/container/index.d.ts +16 -13
  23. package/container/index.js +60 -161
  24. package/container/index.js.map +1 -1
  25. package/container/types.d.ts +14 -0
  26. package/container/types.js +3 -0
  27. package/container/types.js.map +1 -0
  28. package/error-tracker/browser.d.ts +8 -0
  29. package/error-tracker/browser.js +40 -0
  30. package/error-tracker/browser.js.map +1 -0
  31. package/error-tracker/node.d.ts +8 -0
  32. package/error-tracker/node.js +40 -0
  33. package/error-tracker/node.js.map +1 -0
  34. package/error-tracker/types.d.ts +18 -0
  35. package/error-tracker/types.js +3 -0
  36. package/error-tracker/types.js.map +1 -0
  37. package/error-tracker/utils.d.ts +12 -0
  38. package/error-tracker/utils.js +19 -0
  39. package/error-tracker/utils.js.map +1 -0
  40. package/http-client/middleware/cookie.d.ts +19 -0
  41. package/http-client/middleware/cookie.js +62 -0
  42. package/http-client/middleware/cookie.js.map +1 -0
  43. package/http-client/middleware/tracing.d.ts +32 -0
  44. package/http-client/middleware/tracing.js +67 -0
  45. package/http-client/middleware/tracing.js.map +1 -0
  46. package/http-client/types.d.ts +6 -0
  47. package/http-client/types.js +3 -0
  48. package/http-client/types.js.map +1 -0
  49. package/http-client/utils.d.ts +36 -0
  50. package/http-client/utils.js +49 -0
  51. package/http-client/utils.js.map +1 -0
  52. package/http-server/constants.d.ts +4 -0
  53. package/http-server/constants.js +8 -0
  54. package/http-server/constants.js.map +1 -0
  55. package/http-server/handler/health-check.d.ts +6 -0
  56. package/http-server/handler/health-check.js +15 -0
  57. package/http-server/handler/health-check.js.map +1 -0
  58. package/http-server/middleware/logging.d.ts +10 -0
  59. package/http-server/middleware/logging.js +31 -0
  60. package/http-server/middleware/logging.js.map +1 -0
  61. package/http-server/middleware/metrics.d.ts +23 -0
  62. package/http-server/middleware/metrics.js +60 -0
  63. package/http-server/middleware/metrics.js.map +1 -0
  64. package/http-server/middleware/tracing.d.ts +8 -0
  65. package/http-server/middleware/tracing.js +32 -0
  66. package/http-server/middleware/tracing.js.map +1 -0
  67. package/http-server/template/index.d.ts +1 -0
  68. package/http-server/template/index.js +36 -0
  69. package/http-server/template/index.js.map +1 -0
  70. package/http-server/types.d.ts +33 -0
  71. package/http-server/types.js +3 -0
  72. package/http-server/types.js.map +1 -0
  73. package/http-server/utils.d.ts +30 -0
  74. package/http-server/utils.js +100 -0
  75. package/http-server/utils.js.map +1 -0
  76. package/logger/handler/console.d.ts +8 -0
  77. package/logger/handler/console.js +36 -0
  78. package/logger/handler/console.js.map +1 -0
  79. package/logger/handler/sentry.d.ts +8 -0
  80. package/logger/handler/sentry.js +36 -0
  81. package/logger/handler/sentry.js.map +1 -0
  82. package/logger/index.d.ts +6 -0
  83. package/logger/index.js +31 -0
  84. package/logger/index.js.map +1 -0
  85. package/logger/types.d.ts +24 -0
  86. package/logger/types.js +3 -0
  87. package/logger/types.js.map +1 -0
  88. package/metrics/constants.d.ts +4 -0
  89. package/metrics/constants.js +8 -0
  90. package/metrics/constants.js.map +1 -0
  91. package/metrics/node.d.ts +18 -0
  92. package/metrics/node.js +74 -0
  93. package/metrics/node.js.map +1 -0
  94. package/package.json +44 -63
  95. package/preset/index.d.ts +7 -0
  96. package/preset/index.js +25 -0
  97. package/preset/index.js.map +1 -0
  98. package/preset/node/index.d.ts +15 -0
  99. package/preset/node/index.js +90 -0
  100. package/preset/node/index.js.map +1 -0
  101. package/preset/node/response.d.ts +17 -0
  102. package/preset/node/response.js +78 -0
  103. package/preset/node/response.js.map +1 -0
  104. package/preset/types.d.ts +7 -0
  105. package/preset/types.js +3 -0
  106. package/preset/types.js.map +1 -0
  107. package/saga-runner/index.d.ts +8 -0
  108. package/saga-runner/index.js +79 -0
  109. package/saga-runner/index.js.map +1 -0
  110. package/saga-runner/types.d.ts +10 -0
  111. package/saga-runner/types.js +3 -0
  112. package/saga-runner/types.js.map +1 -0
  113. package/tokens.d.ts +41 -0
  114. package/tokens.js +44 -0
  115. package/tokens.js.map +1 -0
  116. package/tracer/node.d.ts +10 -0
  117. package/tracer/node.js +38 -0
  118. package/tracer/node.js.map +1 -0
  119. package/tracer/types.d.ts +2 -0
  120. package/tracer/types.js +3 -0
  121. package/tracer/types.js.map +1 -0
  122. package/{browser → utils/browser}/analytics/data-layer.d.ts +0 -0
  123. package/{browser → utils/browser}/analytics/data-layer.js +1 -2
  124. package/utils/browser/analytics/data-layer.js.map +1 -0
  125. package/{browser → utils/browser}/analytics/oko.d.ts +0 -0
  126. package/{browser → utils/browser}/analytics/oko.js +6 -7
  127. package/utils/browser/analytics/oko.js.map +1 -0
  128. package/utils/browser/storage/index.d.ts +4 -0
  129. package/utils/browser/storage/index.js +63 -0
  130. package/utils/browser/storage/index.js.map +1 -0
  131. package/utils/number.d.ts +6 -0
  132. package/utils/number.js +13 -0
  133. package/utils/number.js.map +1 -0
  134. package/utils/react/error-handlers/index.d.ts +38 -0
  135. package/utils/react/error-handlers/index.js +47 -0
  136. package/utils/react/error-handlers/index.js.map +1 -0
  137. package/utils/redux/remote-data.d.ts +23 -0
  138. package/utils/redux/remote-data.js +28 -0
  139. package/utils/redux/remote-data.js.map +1 -0
  140. package/utils/redux-saga/take-chain.d.ts +24 -0
  141. package/utils/redux-saga/take-chain.js +56 -0
  142. package/utils/redux-saga/take-chain.js.map +1 -0
  143. package/utils/webpack/module-federation/index.d.ts +21 -0
  144. package/utils/webpack/module-federation/index.js +74 -0
  145. package/utils/webpack/module-federation/index.js.map +1 -0
  146. package/utils/webpack/module-federation/types.d.ts +26 -0
  147. package/utils/webpack/module-federation/types.js +3 -0
  148. package/utils/webpack/module-federation/types.js.map +1 -0
  149. package/utils/webpack/module-federation/utils.d.ts +15 -0
  150. package/utils/webpack/module-federation/utils.js +36 -0
  151. package/utils/webpack/module-federation/utils.js.map +1 -0
  152. package/browser/analytics/data-layer.js.map +0 -1
  153. package/browser/analytics/oko.js.map +0 -1
  154. package/cache/helpers.d.ts +0 -4
  155. package/cache/helpers.js +0 -39
  156. package/cache/helpers.js.map +0 -1
  157. package/cache/local-storage.d.ts +0 -34
  158. package/cache/local-storage.js +0 -90
  159. package/cache/local-storage.js.map +0 -1
  160. package/cache/redis.d.ts +0 -10
  161. package/cache/redis.js +0 -54
  162. package/cache/redis.js.map +0 -1
  163. package/cache/wrap-in-trace.d.ts +0 -8
  164. package/cache/wrap-in-trace.js +0 -68
  165. package/cache/wrap-in-trace.js.map +0 -1
  166. package/config/create.d.ts +0 -8
  167. package/config/create.js +0 -32
  168. package/config/create.js.map +0 -1
  169. package/config/helpers.d.ts +0 -11
  170. package/config/helpers.js +0 -71
  171. package/config/helpers.js.map +0 -1
  172. package/config/validate.d.ts +0 -18
  173. package/config/validate.js +0 -107
  174. package/config/validate.js.map +0 -1
  175. package/container/create-inject.d.ts +0 -7
  176. package/container/create-inject.js +0 -36
  177. package/container/create-inject.js.map +0 -1
  178. package/container/get-dependencies.d.ts +0 -13
  179. package/container/get-dependencies.js +0 -54
  180. package/container/get-dependencies.js.map +0 -1
  181. package/container/is-container.d.ts +0 -7
  182. package/container/is-container.js +0 -17
  183. package/container/is-container.js.map +0 -1
  184. package/container/service-not-found-error.d.ts +0 -10
  185. package/container/service-not-found-error.js +0 -18
  186. package/container/service-not-found-error.js.map +0 -1
  187. package/create-proxy/create-proxy-middleware/index.d.ts +0 -16
  188. package/create-proxy/create-proxy-middleware/index.js +0 -47
  189. package/create-proxy/create-proxy-middleware/index.js.map +0 -1
  190. package/create-proxy/index.d.ts +0 -12
  191. package/create-proxy/index.js +0 -25
  192. package/create-proxy/index.js.map +0 -1
  193. package/create-response-sender/index.d.ts +0 -8
  194. package/create-response-sender/index.js +0 -42
  195. package/create-response-sender/index.js.map +0 -1
  196. package/get-dynamic-data/index.d.ts +0 -8
  197. package/get-dynamic-data/index.js +0 -23
  198. package/get-dynamic-data/index.js.map +0 -1
  199. package/graceful-shutdown/index.d.ts +0 -26
  200. package/graceful-shutdown/index.js +0 -87
  201. package/graceful-shutdown/index.js.map +0 -1
  202. package/helpers/add-error-handling/index.d.ts +0 -1
  203. package/helpers/add-error-handling/index.js +0 -42
  204. package/helpers/add-error-handling/index.js.map +0 -1
  205. package/helpers/api/create-enhancer.d.ts +0 -12
  206. package/helpers/api/create-enhancer.js +0 -52
  207. package/helpers/api/create-enhancer.js.map +0 -1
  208. package/helpers/api/create-instance.d.ts +0 -11
  209. package/helpers/api/create-instance.js +0 -39
  210. package/helpers/api/create-instance.js.map +0 -1
  211. package/helpers/api/middlewares/collect-cookie-middleware.d.ts +0 -10
  212. package/helpers/api/middlewares/collect-cookie-middleware.js +0 -39
  213. package/helpers/api/middlewares/collect-cookie-middleware.js.map +0 -1
  214. package/helpers/api/middlewares/count-api-response-time.d.ts +0 -12
  215. package/helpers/api/middlewares/count-api-response-time.js +0 -39
  216. package/helpers/api/middlewares/count-api-response-time.js.map +0 -1
  217. package/helpers/api/middlewares/error-handlers-middlewares.d.ts +0 -5
  218. package/helpers/api/middlewares/error-handlers-middlewares.js +0 -114
  219. package/helpers/api/middlewares/error-handlers-middlewares.js.map +0 -1
  220. package/helpers/api/middlewares/helpers.d.ts +0 -11
  221. package/helpers/api/middlewares/helpers.js +0 -27
  222. package/helpers/api/middlewares/helpers.js.map +0 -1
  223. package/helpers/api/middlewares/pass-headers-middleware.d.ts +0 -3
  224. package/helpers/api/middlewares/pass-headers-middleware.js +0 -27
  225. package/helpers/api/middlewares/pass-headers-middleware.js.map +0 -1
  226. package/helpers/api/middlewares/prepare-request-headers.d.ts +0 -5
  227. package/helpers/api/middlewares/prepare-request-headers.js +0 -20
  228. package/helpers/api/middlewares/prepare-request-headers.js.map +0 -1
  229. package/helpers/api/middlewares/set-http-agents-middleware.d.ts +0 -15
  230. package/helpers/api/middlewares/set-http-agents-middleware.js +0 -34
  231. package/helpers/api/middlewares/set-http-agents-middleware.js.map +0 -1
  232. package/helpers/api/middlewares/stages-trace-middleware.d.ts +0 -17
  233. package/helpers/api/middlewares/stages-trace-middleware.js +0 -57
  234. package/helpers/api/middlewares/stages-trace-middleware.js.map +0 -1
  235. package/helpers/api/middlewares/trace-request-middleware.d.ts +0 -24
  236. package/helpers/api/middlewares/trace-request-middleware.js +0 -69
  237. package/helpers/api/middlewares/trace-request-middleware.js.map +0 -1
  238. package/helpers/api/server-adapter/__fixtures__/fake-keys.d.ts +0 -10
  239. package/helpers/api/server-adapter/__fixtures__/fake-keys.js +0 -61
  240. package/helpers/api/server-adapter/__fixtures__/fake-keys.js.map +0 -1
  241. package/helpers/api/server-adapter/constants.d.ts +0 -5
  242. package/helpers/api/server-adapter/constants.js +0 -16
  243. package/helpers/api/server-adapter/constants.js.map +0 -1
  244. package/helpers/api/server-adapter/helpers.d.ts +0 -26
  245. package/helpers/api/server-adapter/helpers.js +0 -208
  246. package/helpers/api/server-adapter/helpers.js.map +0 -1
  247. package/helpers/api/server-adapter/index.d.ts +0 -10
  248. package/helpers/api/server-adapter/index.js +0 -118
  249. package/helpers/api/server-adapter/index.js.map +0 -1
  250. package/helpers/development/use-dot-env.d.ts +0 -6
  251. package/helpers/development/use-dot-env.js +0 -11
  252. package/helpers/development/use-dot-env.js.map +0 -1
  253. package/helpers/get-params/index.d.ts +0 -4
  254. package/helpers/get-params/index.js +0 -51
  255. package/helpers/get-params/index.js.map +0 -1
  256. package/helpers/http/request-getters.d.ts +0 -5
  257. package/helpers/http/request-getters.js +0 -49
  258. package/helpers/http/request-getters.js.map +0 -1
  259. package/helpers/http/statuses-validator.d.ts +0 -3
  260. package/helpers/http/statuses-validator.js +0 -25
  261. package/helpers/http/statuses-validator.js.map +0 -1
  262. package/helpers/logger/create-pino-instance/index.d.ts +0 -6
  263. package/helpers/logger/create-pino-instance/index.js +0 -39
  264. package/helpers/logger/create-pino-instance/index.js.map +0 -1
  265. package/helpers/logger/format-time/index.d.ts +0 -6
  266. package/helpers/logger/format-time/index.js +0 -9
  267. package/helpers/logger/format-time/index.js.map +0 -1
  268. package/helpers/metrics/index.d.ts +0 -23
  269. package/helpers/metrics/index.js +0 -42
  270. package/helpers/metrics/index.js.map +0 -1
  271. package/helpers/prometheus/index.d.ts +0 -4
  272. package/helpers/prometheus/index.js +0 -13
  273. package/helpers/prometheus/index.js.map +0 -1
  274. package/helpers/prometheus/measure-middleware.d.ts +0 -5
  275. package/helpers/prometheus/measure-middleware.js +0 -69
  276. package/helpers/prometheus/measure-middleware.js.map +0 -1
  277. package/helpers/prometheus/metric-adapter.d.ts +0 -36
  278. package/helpers/prometheus/metric-adapter.js +0 -98
  279. package/helpers/prometheus/metric-adapter.js.map +0 -1
  280. package/helpers/react/error-handlers/index.d.ts +0 -40
  281. package/helpers/react/error-handlers/index.js +0 -52
  282. package/helpers/react/error-handlers/index.js.map +0 -1
  283. package/helpers/redux/constants.d.ts +0 -5
  284. package/helpers/redux/constants.js +0 -14
  285. package/helpers/redux/constants.js.map +0 -1
  286. package/helpers/redux/create-compose-middleware.d.ts +0 -15
  287. package/helpers/redux/create-compose-middleware.js +0 -23
  288. package/helpers/redux/create-compose-middleware.js.map +0 -1
  289. package/helpers/redux/get-dev-compose-creator.d.ts +0 -6
  290. package/helpers/redux/get-dev-compose-creator.js +0 -13
  291. package/helpers/redux/get-dev-compose-creator.js.map +0 -1
  292. package/helpers/redux/prepare-on-ready.d.ts +0 -9
  293. package/helpers/redux/prepare-on-ready.js +0 -16
  294. package/helpers/redux/prepare-on-ready.js.map +0 -1
  295. package/helpers/redux/remote-data.d.ts +0 -40
  296. package/helpers/redux/remote-data.js +0 -91
  297. package/helpers/redux/remote-data.js.map +0 -1
  298. package/helpers/redux/selector/statuses.d.ts +0 -23
  299. package/helpers/redux/selector/statuses.js +0 -34
  300. package/helpers/redux/selector/statuses.js.map +0 -1
  301. package/helpers/redux/wait-on-store-readiness.d.ts +0 -11
  302. package/helpers/redux/wait-on-store-readiness.js +0 -29
  303. package/helpers/redux/wait-on-store-readiness.js.map +0 -1
  304. package/helpers/render/get-react-markup-data.d.ts +0 -14
  305. package/helpers/render/get-react-markup-data.js +0 -20
  306. package/helpers/render/get-react-markup-data.js.map +0 -1
  307. package/helpers/render/index.d.ts +0 -21
  308. package/helpers/render/index.js +0 -72
  309. package/helpers/render/index.js.map +0 -1
  310. package/helpers/render/render-app.d.ts +0 -12
  311. package/helpers/render/render-app.js +0 -12
  312. package/helpers/render/render-app.js.map +0 -1
  313. package/helpers/saga/__fixtures__/do-safe-request.d.ts +0 -43
  314. package/helpers/saga/__fixtures__/do-safe-request.js +0 -50
  315. package/helpers/saga/__fixtures__/do-safe-request.js.map +0 -1
  316. package/helpers/saga/cache-result.d.ts +0 -46
  317. package/helpers/saga/cache-result.js +0 -71
  318. package/helpers/saga/cache-result.js.map +0 -1
  319. package/helpers/saga/create-store.d.ts +0 -20
  320. package/helpers/saga/create-store.js +0 -106
  321. package/helpers/saga/create-store.js.map +0 -1
  322. package/helpers/saga/do-safe-request.d.ts +0 -38
  323. package/helpers/saga/do-safe-request.js +0 -45
  324. package/helpers/saga/do-safe-request.js.map +0 -1
  325. package/helpers/saga/safe-request.d.ts +0 -7
  326. package/helpers/saga/safe-request.js +0 -15
  327. package/helpers/saga/safe-request.js.map +0 -1
  328. package/helpers/saga/take-chain.d.ts +0 -20
  329. package/helpers/saga/take-chain.js +0 -56
  330. package/helpers/saga/take-chain.js.map +0 -1
  331. package/helpers/tracer/create-child-tracing-middleware.d.ts +0 -7
  332. package/helpers/tracer/create-child-tracing-middleware.js +0 -40
  333. package/helpers/tracer/create-child-tracing-middleware.js.map +0 -1
  334. package/helpers/tracer/index.d.ts +0 -24
  335. package/helpers/tracer/index.js +0 -144
  336. package/helpers/tracer/index.js.map +0 -1
  337. package/helpers/utils/check-feature-by-segment.d.ts +0 -2
  338. package/helpers/utils/check-feature-by-segment.js +0 -31
  339. package/helpers/utils/check-feature-by-segment.js.map +0 -1
  340. package/helpers/utils/format-object-keys.d.ts +0 -6
  341. package/helpers/utils/format-object-keys.js +0 -27
  342. package/helpers/utils/format-object-keys.js.map +0 -1
  343. package/helpers/utils/get-ms-from-hrt.d.ts +0 -2
  344. package/helpers/utils/get-ms-from-hrt.js +0 -22
  345. package/helpers/utils/get-ms-from-hrt.js.map +0 -1
  346. package/helpers/utils/is-match-pattern-list.d.ts +0 -8
  347. package/helpers/utils/is-match-pattern-list.js +0 -16
  348. package/helpers/utils/is-match-pattern-list.js.map +0 -1
  349. package/helpers/utils/is-not-empty-array.d.ts +0 -2
  350. package/helpers/utils/is-not-empty-array.js +0 -12
  351. package/helpers/utils/is-not-empty-array.js.map +0 -1
  352. package/helpers/utils/is-not-empty-string.d.ts +0 -2
  353. package/helpers/utils/is-not-empty-string.js +0 -15
  354. package/helpers/utils/is-not-empty-string.js.map +0 -1
  355. package/helpers/utils/is-numeric.d.ts +0 -7
  356. package/helpers/utils/is-numeric.js +0 -16
  357. package/helpers/utils/is-numeric.js.map +0 -1
  358. package/helpers/utils/wrap-in-measure-event.d.ts +0 -9
  359. package/helpers/utils/wrap-in-measure-event.js +0 -50
  360. package/helpers/utils/wrap-in-measure-event.js.map +0 -1
  361. package/logger/create-logger-middleware/index.d.ts +0 -14
  362. package/logger/create-logger-middleware/index.js +0 -41
  363. package/logger/create-logger-middleware/index.js.map +0 -1
  364. package/logger/create-sentry-instance/index.d.ts +0 -29
  365. package/logger/create-sentry-instance/index.js +0 -63
  366. package/logger/create-sentry-instance/index.js.map +0 -1
  367. package/logger/create-sentry-middleware/index.d.ts +0 -14
  368. package/logger/create-sentry-middleware/index.js +0 -19
  369. package/logger/create-sentry-middleware/index.js.map +0 -1
  370. package/logger/handler-creators/index.d.ts +0 -5
  371. package/logger/handler-creators/index.js +0 -41
  372. package/logger/handler-creators/index.js.map +0 -1
  373. package/logger/initialize-sentry-creator/index.d.ts +0 -17
  374. package/logger/initialize-sentry-creator/index.js +0 -35
  375. package/logger/initialize-sentry-creator/index.js.map +0 -1
  376. package/logger/sentry-logger/index.d.ts +0 -9
  377. package/logger/sentry-logger/index.js +0 -36
  378. package/logger/sentry-logger/index.js.map +0 -1
  379. package/module-federation/__example__/webpack-config.example.d.ts +0 -366
  380. package/module-federation/__example__/webpack-config.example.js +0 -51
  381. package/module-federation/__example__/webpack-config.example.js.map +0 -1
  382. package/module-federation/enhanced-module-federation-plugin.d.ts +0 -46
  383. package/module-federation/enhanced-module-federation-plugin.js +0 -72
  384. package/module-federation/enhanced-module-federation-plugin.js.map +0 -1
  385. package/module-federation/utils/index.d.ts +0 -8
  386. package/module-federation/utils/index.js +0 -28
  387. package/module-federation/utils/index.js.map +0 -1
  388. package/observe-middleware/index.d.ts +0 -9
  389. package/observe-middleware/index.js +0 -67
  390. package/observe-middleware/index.js.map +0 -1
  391. package/set-header-middleware/create.d.ts +0 -10
  392. package/set-header-middleware/create.js +0 -16
  393. package/set-header-middleware/create.js.map +0 -1
  394. package/src/browser/analytics/data-layer.ts +0 -12
  395. package/src/browser/analytics/oko.ts +0 -42
  396. package/src/cache/helpers.js +0 -32
  397. package/src/cache/local-storage.ts +0 -92
  398. package/src/cache/redis.js +0 -79
  399. package/src/cache/wrap-in-trace.js +0 -57
  400. package/src/config/create.js +0 -33
  401. package/src/config/helpers.js +0 -71
  402. package/src/config/validate.js +0 -114
  403. package/src/container/create-inject.js +0 -32
  404. package/src/container/get-dependencies.js +0 -46
  405. package/src/container/index.js +0 -188
  406. package/src/container/is-container.js +0 -14
  407. package/src/container/service-not-found-error.js +0 -14
  408. package/src/create-proxy/create-proxy-middleware/index.js +0 -47
  409. package/src/create-proxy/index.js +0 -27
  410. package/src/create-response-sender/index.js +0 -48
  411. package/src/get-dynamic-data/index.js +0 -26
  412. package/src/graceful-shutdown/index.js +0 -97
  413. package/src/helpers/add-error-handling/index.js +0 -24
  414. package/src/helpers/api/create-enhancer.js +0 -52
  415. package/src/helpers/api/create-instance.js +0 -42
  416. package/src/helpers/api/middlewares/collect-cookie-middleware.js +0 -27
  417. package/src/helpers/api/middlewares/count-api-response-time.js +0 -31
  418. package/src/helpers/api/middlewares/error-handlers-middlewares.js +0 -124
  419. package/src/helpers/api/middlewares/helpers.js +0 -26
  420. package/src/helpers/api/middlewares/pass-headers-middleware.js +0 -19
  421. package/src/helpers/api/middlewares/prepare-request-headers.js +0 -18
  422. package/src/helpers/api/middlewares/set-http-agents-middleware.js +0 -22
  423. package/src/helpers/api/middlewares/stages-trace-middleware.js +0 -46
  424. package/src/helpers/api/middlewares/trace-request-middleware.ts +0 -86
  425. package/src/helpers/api/server-adapter/__fixtures__/fake-keys.js +0 -58
  426. package/src/helpers/api/server-adapter/constants.js +0 -12
  427. package/src/helpers/api/server-adapter/helpers.js +0 -244
  428. package/src/helpers/api/server-adapter/index.js +0 -155
  429. package/src/helpers/development/use-dot-env.js +0 -9
  430. package/src/helpers/get-params/index.js +0 -59
  431. package/src/helpers/http/request-getters.js +0 -42
  432. package/src/helpers/http/statuses-validator.js +0 -20
  433. package/src/helpers/logger/create-pino-instance/index.js +0 -41
  434. package/src/helpers/logger/format-time/index.js +0 -6
  435. package/src/helpers/metrics/index.js +0 -40
  436. package/src/helpers/prometheus/index.js +0 -9
  437. package/src/helpers/prometheus/measure-middleware.js +0 -73
  438. package/src/helpers/prometheus/metric-adapter.js +0 -99
  439. package/src/helpers/react/error-handlers/index.tsx +0 -68
  440. package/src/helpers/redux/constants.js +0 -10
  441. package/src/helpers/redux/create-compose-middleware.js +0 -24
  442. package/src/helpers/redux/get-dev-compose-creator.js +0 -9
  443. package/src/helpers/redux/prepare-on-ready.js +0 -16
  444. package/src/helpers/redux/remote-data.js +0 -124
  445. package/src/helpers/redux/selector/statuses.js +0 -30
  446. package/src/helpers/redux/wait-on-store-readiness.js +0 -40
  447. package/src/helpers/render/get-react-markup-data.js +0 -18
  448. package/src/helpers/render/index.js +0 -69
  449. package/src/helpers/render/render-app.js +0 -15
  450. package/src/helpers/saga/__fixtures__/do-safe-request.js +0 -49
  451. package/src/helpers/saga/cache-result.js +0 -77
  452. package/src/helpers/saga/create-store.js +0 -102
  453. package/src/helpers/saga/do-safe-request.js +0 -47
  454. package/src/helpers/saga/safe-request.js +0 -11
  455. package/src/helpers/saga/take-chain.js +0 -53
  456. package/src/helpers/tracer/create-child-tracing-middleware.js +0 -42
  457. package/src/helpers/tracer/index.js +0 -171
  458. package/src/helpers/utils/check-feature-by-segment.js +0 -32
  459. package/src/helpers/utils/format-object-keys.js +0 -23
  460. package/src/helpers/utils/get-ms-from-hrt.js +0 -16
  461. package/src/helpers/utils/is-match-pattern-list.js +0 -13
  462. package/src/helpers/utils/is-not-empty-array.js +0 -8
  463. package/src/helpers/utils/is-not-empty-string.js +0 -11
  464. package/src/helpers/utils/is-numeric.ts +0 -12
  465. package/src/helpers/utils/wrap-in-measure-event.js +0 -35
  466. package/src/logger/create-logger-middleware/index.js +0 -46
  467. package/src/logger/create-sentry-instance/index.js +0 -74
  468. package/src/logger/create-sentry-middleware/index.js +0 -16
  469. package/src/logger/handler-creators/index.js +0 -38
  470. package/src/logger/initialize-sentry-creator/index.js +0 -43
  471. package/src/logger/sentry-logger/index.js +0 -33
  472. package/src/module-federation/__example__/webpack-config.example.js +0 -57
  473. package/src/module-federation/enhanced-module-federation-plugin.js +0 -92
  474. package/src/module-federation/utils/index.js +0 -32
  475. package/src/observe-middleware/index.js +0 -70
  476. package/src/set-header-middleware/create.js +0 -17
@@ -1,77 +0,0 @@
1
- import { call } from 'redux-saga/effects';
2
- import isFunction from 'lodash/isFunction';
3
- import isPlainObject from 'lodash/isPlainObject';
4
- import doSafeRequest from './do-safe-request';
5
-
6
- /**
7
- * Проверяет наличие данных, запрошенных из кэша.
8
- * @param {*} data Данные, запрошенных из кэша.
9
- * @return {boolean} Получен ли ответ.
10
- */
11
- export const validateCacheDefault = data => Boolean(data);
12
-
13
- /**
14
- * Проверяет валидность ответа API.
15
- * @param {Object} response Ответ API.
16
- * @return {boolean} Результат проверки.
17
- */
18
- export const validateResultDefault = response =>
19
- Boolean(response) && isPlainObject(response) && Boolean(response.ok);
20
-
21
- /**
22
- * @typedef {Object} Cache Объект кэша.
23
- * @property {Function} get Функция, получающая данные из кэша.
24
- * @property {Function} set Функция, записывающая данные в кэш.
25
- * @property {boolean} status Статус доступности кэша.
26
- */
27
-
28
- /**
29
- * Запрашивает данные с сервера с кэшированием.
30
- * @param {Object} options Настройки кэширования.
31
- * @param {Cache} options.cache Объект кэша.
32
- * @param {string} options.key Ключ для сохранения.
33
- * @param {Function} options.captureException Обработчик ошибки.
34
- * @param {Function} options.validateCache Функция для проверки валидности данных кэша.
35
- * @param {Function} options.validateResult Функция для проверки валидности результата при сохранении в кэш.
36
- * @param {Function} options.fn Функция для получения данных.
37
- * @param {Array} options.args Аргументы функции для запроса данных.
38
- * @return {import('./do-safe-request').ServerResponse} Результат.
39
- */
40
- export default function * cacheResult ({
41
- cache,
42
- key,
43
- captureException,
44
- validateCache = validateCacheDefault,
45
- validateResult = validateResultDefault,
46
- fn = doSafeRequest,
47
- args = [],
48
- duration = 3600,
49
- }) {
50
- const { get, set, status } = cache || {};
51
- let isCacheAvailable = status && isFunction(get) && isFunction(set);
52
- const canDoRequest = isFunction(validateCache) && isFunction(fn);
53
- let result;
54
- try {
55
- result = isCacheAvailable && (yield call(get, key));
56
- if (validateCache(result)) {
57
- result = JSON.parse(result);
58
- }
59
- } catch (error) {
60
- if (isFunction(captureException)) {
61
- captureException(error);
62
- }
63
- isCacheAvailable = false;
64
- result = null;
65
- }
66
-
67
- if (canDoRequest && !validateCache(result)) {
68
- result = yield call(fn, ...args);
69
- const isResultValid = isFunction(validateResult) && validateResult(result);
70
-
71
- if (isCacheAvailable && isResultValid) {
72
- yield call(set, key, JSON.stringify(result), duration);
73
- }
74
- }
75
-
76
- return result;
77
- }
@@ -1,102 +0,0 @@
1
- import { applyMiddleware, createStore as createReduxStore } from 'redux';
2
- import createSagaMiddleware, { END } from 'redux-saga';
3
- import isFunction from 'lodash/isFunction';
4
- import { createService } from '../../container';
5
- import waitOnStoreReadiness from '../redux/wait-on-store-readiness';
6
-
7
- /**
8
- * Создаёт функцию для обработки успешного завершения подготовки стора.
9
- * @param {Function} onReady Опциональный обработчик успешного завершения.
10
- * @return {Function} Функция для обработки успешного завершения подготовки стора.
11
- */
12
- export const createSagaReadyHandler = onReady => store => {
13
- store.dispatch(END);
14
- isFunction(onReady) && onReady(store);
15
- };
16
-
17
- /**
18
- * Создаёт store с применённым middleware саг.
19
- * @param {Function} reducer Редьюсер.
20
- * @param {Function} initialSaga Инициализирующая сага.
21
- * @param {Object} options Необязательные опции.
22
- * @param {Function} options.isReady Функция для определения готовности store.
23
- * @param {Object} options.initialState Начальное состояние.
24
- * @param {Function} options.compose Функция для применения middleware.
25
- * @param {Array} options.middleware Список дополнительных middleware.
26
- * @param {Function} options.onReady Функция которая будет выполнена по готовности store.
27
- * @param {number} options.timeout Максимальное время ожидания готовности store.
28
- * @param {Function} [options.onTimeout] Функция обработчик события таймаута ожидания готовности store.
29
- * @param {Function} [options.onSagasErrorHandler] Корневой обработчик ошибок в сагах.
30
- * @return {Object} Объект со store и функцией runSaga для запуска саг.
31
- */
32
- export const createStore = (
33
- reducer,
34
- initialSaga,
35
- {
36
- isReady,
37
- initialState = {},
38
- compose = input => input,
39
- middleware = [],
40
- onReady,
41
- timeout,
42
- onTimeout,
43
- onSagasErrorHandler,
44
- } = {}
45
- ) => {
46
- const sagaMiddleware = createSagaMiddleware(
47
- isFunction(onSagasErrorHandler)
48
- ? { onError: onSagasErrorHandler }
49
- : {}
50
- );
51
- let store = createReduxStore(
52
- reducer,
53
- initialState,
54
- compose(applyMiddleware(sagaMiddleware, ...middleware))
55
- );
56
- if (isFunction(isReady)) {
57
- store = waitOnStoreReadiness(
58
- store,
59
- isReady,
60
- createSagaReadyHandler(onReady),
61
- onTimeout,
62
- timeout
63
- );
64
- } else if (isFunction(onReady)) {
65
- throw new TypeError(
66
- 'Third argument property "onReady" is a function, when property "isReady" is not a function. '
67
- + 'The "onReady" function will never be called.'
68
- );
69
- }
70
- return {
71
- store,
72
- runSaga: () => sagaMiddleware.run(initialSaga).toPromise(),
73
- };
74
- };
75
-
76
- /**
77
- * Преобразует опции сервиса в аргументы функции.
78
- * @param {Object} param Параметры.
79
- * @param {Function} param.reducer Редьюсер.
80
- * @param {Function} param.initialSaga Инициализирующая сага.
81
- * @param {Object} param.options Остальные, необязательные опции.
82
- * @return {Array} Массив агрументов для использования в функции.
83
- */
84
- export const mapServiceOptionsToArgs = (
85
- {
86
- reducer,
87
- initialSaga,
88
- ...options
89
- }
90
- ) => [
91
- reducer,
92
- initialSaga,
93
- options,
94
- ];
95
-
96
- /**
97
- * @type {Function} Сервис создания store для использования совместно с контейнером
98
- */
99
- export const createStoreService = createService(
100
- createStore,
101
- mapServiceOptionsToArgs
102
- );
@@ -1,47 +0,0 @@
1
- import { call } from 'redux-saga/effects';
2
- import get from 'lodash/get';
3
-
4
- /**
5
- * @typedef {Object} ServerResponse Ответ сервера.
6
- * @property {boolean} ok Были ли запрос совершен успешно.
7
- * @property {Object|null} error Объект ошибки.
8
- * @property {Object|string|null} data Данные ответа.
9
- * @property {number|null} status Статус ответа.
10
- */
11
-
12
- /**
13
- * Безопасно запрашивает данные c сервера, с обработкой и логированием ошибок, обрабатывает ответ.
14
- * @param {Function} performRequest Функция, выполняющая запрос.
15
- * @param {Object} [options] Опции.
16
- * @param {Array} [options.args] Аргументы функции, выполняющей запрос.
17
- * @return {ServerResponse} Ответ сервера.
18
- */
19
- export default function * doSafeRequest (
20
- performRequest,
21
- options
22
- ) {
23
- const {
24
- args = [],
25
- } = options || {};
26
-
27
- let response;
28
- let ok = false;
29
- let originalError = null;
30
-
31
- try {
32
- response = yield call(performRequest, ...args);
33
- ok = true;
34
- } catch (error) {
35
- // пытаемся получить данные ответа из ошибки
36
- response = error.response;
37
-
38
- // добавляем в результат объект ошибки
39
- originalError = error;
40
- }
41
- return {
42
- ok,
43
- error: originalError,
44
- data: get(response, 'data', null),
45
- status: get(response, 'status', null),
46
- };
47
- }
@@ -1,11 +0,0 @@
1
- import { call } from 'redux-saga/effects';
2
- import doSafeRequest from './do-safe-request';
3
-
4
- /**
5
- * Обёрнутая в эффект call сага doSafeRequest.
6
- * @param {Array} args Аргументы для вызова саги.
7
- * @return {import('@redux-saga/core/effects').CallEffect} Эффект.
8
- */
9
- const safeRequest = (...args) => call(doSafeRequest, ...args);
10
-
11
- export default safeRequest;
@@ -1,53 +0,0 @@
1
- import { delay, fork, put, race, take } from 'redux-saga/effects';
2
- import propEq from 'lodash/fp/propEq';
3
- import now from 'lodash/now';
4
-
5
- /**
6
- * Накапливает экшены и генерирует эффект по таймауту.
7
- * @param {number} timeout Время задержки в мс.
8
- * @param {Array} types Массив с типами экшенов.
9
- * @param {Function} task Генератор.
10
- * @param {...*} args Аргументы для генератора.
11
- * @return {Object} Эффект.
12
- */
13
- export const takeChain = (timeout, types, task, ...args) =>
14
- fork(generateTakeChain, timeout, types, task, ...args);
15
-
16
- /**
17
- * Генерирует эффект по таймауту.
18
- * @param {number} timeout Время задержки в мс.
19
- * @param {Array} types Массив с типами экшенов.
20
- * @param {Function} task Генератор.
21
- * @param {...*} args Аргументы для генератора.
22
- */
23
- export function * generateTakeChain (timeout, types, task, ...args) {
24
- while (true) {
25
- const BREAK_TYPE = `BREAK_${now()}`;
26
- const collectedActions = [yield take(types)];
27
-
28
- yield fork(putDelayed, timeout, BREAK_TYPE);
29
-
30
- while (true) {
31
- const { action, canceled } = yield race({
32
- action: take(types),
33
- canceled: take(BREAK_TYPE),
34
- });
35
-
36
- action && collectedActions.push(action);
37
- if (canceled || types.every(type => collectedActions.some(propEq('type', type)))) {
38
- yield fork(task, ...args, collectedActions);
39
- break;
40
- }
41
- }
42
- }
43
- }
44
-
45
- /**
46
- * Вызывает экшен с заданной задержкой.
47
- * @param {number} timeout Время задержки в мс.
48
- * @param {string} type Тип экшена.
49
- */
50
- export function * putDelayed (timeout, type) {
51
- yield delay(timeout);
52
- yield put({ type });
53
- }
@@ -1,42 +0,0 @@
1
- import { createObserveMiddleware } from '../../observe-middleware';
2
- import isString from 'lodash/isString';
3
-
4
- /**
5
- * Возвращает функцию, создающую middleware для добавления в трэйсер длительности внутреннего процесса
6
- * при обработке запроса.
7
- * @param {Object} dependencies Опции.
8
- * @param {string} dependencies.spanName Имя span'а.
9
- * @param {Object} dependencies.tracer Экземпляр трэйсера.
10
- * @param {Function} dependencies.startSubscriber Подписчик на событие начала рендеринга.
11
- * @param {Function} dependencies.finishSubscriber Подписчик на событие конца рендеринга.
12
- * @param {string} [dependencies.parentSpan='span'] Иимя родительского спана в response.locals.
13
- * @return {Function} Middleware приложения Express.
14
- */
15
- export const createChildTracingMiddleware = ({
16
- spanName,
17
- tracer,
18
- startSubscriber,
19
- finishSubscriber,
20
- parentSpan = 'span',
21
- }) => {
22
- if (!isString(spanName)) {
23
- throw new TypeError('"spanName" properties must be a string');
24
- }
25
- return createObserveMiddleware({
26
- onStart: (timestamp, request, response) => {
27
- response.locals[spanName] = tracer.startSpan(
28
- spanName,
29
- {
30
- childOf: response.locals[parentSpan],
31
- }
32
- );
33
- },
34
- onFinish: (duration, request, response) => {
35
- response.locals[spanName]
36
- .setTag(`${spanName} duration`, `${duration} ms`)
37
- .finish();
38
- },
39
- startSubscriber,
40
- finishSubscriber,
41
- });
42
- };
@@ -1,171 +0,0 @@
1
- import { initTracerFromEnv } from 'jaeger-client';
2
- import { FORMAT_HTTP_HEADERS } from 'opentracing';
3
- import { createObserveMiddleware } from '../../observe-middleware/';
4
- import isFunction from 'lodash/isFunction';
5
- import get from 'lodash/get';
6
- import { createService } from '../../container';
7
- import isPlainObject from 'lodash/isPlainObject';
8
- import { getOriginalUrl } from '../http/request-getters';
9
- import mapValues from 'lodash/fp/mapValues';
10
-
11
- const mapValuesWithKey = mapValues.convert({ cap: false });
12
-
13
- /**
14
- * Возвращает новый объект, в котором заменено значение свойств, имена которых содержат 'Password'.
15
- */
16
- const filterSecrets = mapValuesWithKey((value, key) => key.includes('Password') ? '[Filtered]' : value);
17
-
18
- /**
19
- * Запускает трассировку входящего http-запроса.
20
- * @param {Object} tracer Экземпляр трейсера.
21
- * @param {string} key Ключ.
22
- * @param {Object} httpRequest Запрос.
23
- * @param {Object} [payload] Дополнительная информация для добавления к спану.
24
- * @return {Object} Спан.
25
- */
26
- export const traceIncomingRequest = (tracer, key, httpRequest, payload) =>
27
- tracer
28
- .startSpan(
29
- key,
30
- {
31
- childOf: tracer.extract(FORMAT_HTTP_HEADERS, httpRequest.headers),
32
- }
33
- )
34
- .addTags(isPlainObject(payload) ? payload : {});
35
-
36
- /**
37
- * Создаёт новый или возвращает существующий экземпляр jaeger-трейсера.
38
- * @param {Object} dependencies Зависимости.
39
- * @param {Object} dependencies.tracerConfig Основные параметры конфигурации трейсера.
40
- * @param {string} dependencies.tracerConfig.serviceName Название сервиса.
41
- * @param {number} dependencies.tracerConfig.version Версия сборки.
42
- * @param {Object} [dependencies.additionalConfig={}] Дополнительные параметры конфигурации трейсера.
43
- * @return {import('opentracing').Tracer} Объект трейсера.
44
- */
45
- export const getTracer = ({
46
- tracerConfig: {
47
- version,
48
- serviceName,
49
- },
50
- additionalConfig = {},
51
- }) => initTracerFromEnv(
52
- {
53
- serviceName,
54
- ...additionalConfig,
55
- },
56
- {
57
- tags: {
58
- [`${serviceName}.version`]: version,
59
- },
60
- }
61
- );
62
-
63
- /**
64
- * Возвращает функцию - промежуточный слой для маршрутов express-приложения.
65
- * Сигнализирует о начале и конце запроса.
66
- * @param {Function} createSpan Функция возвращающая новый объект span, вызываемая при старте запроса.
67
- * @param {Function} onSpanFinish Функция получающая созданный span, вызываемая при ответе.
68
- * @param {Object} [options] Необязательные опции.
69
- * @param {string} [options.spanKey='span'] Ключ, под которым будет сохранен span в response.locals.
70
- * @return {Function} Функция - промежуточный слой для маршрутов.
71
- * @private
72
- */
73
- export const _createTracingMiddleware = (
74
- createSpan,
75
- onSpanFinish,
76
- { spanKey = 'span' } = {}
77
- ) => {
78
- const hasSpanCreator = isFunction(createSpan);
79
- const hasFinishHandler = isFunction(onSpanFinish);
80
-
81
- return createObserveMiddleware({
82
- onStart: (startTime, request, response) => {
83
- if (hasSpanCreator) {
84
- response.locals[spanKey] = createSpan(request, response);
85
- }
86
- },
87
- onFinish: (duration, request, response) => {
88
- if (hasFinishHandler) {
89
- onSpanFinish(request, response, response.locals[spanKey]);
90
- }
91
- },
92
- });
93
- };
94
-
95
- /**
96
- * Получает контекст из объекта текущего ответа.
97
- * @param {Object} response Объект с параметрами текущего ответа.
98
- * @return {Object|null} Текущий контекст.
99
- */
100
- export const getSpanContext = ({ response }) => {
101
- let context;
102
- if (isFunction(get(response, 'locals.span.context'))) {
103
- context = response.locals.span.context();
104
- }
105
- return context || null;
106
- };
107
-
108
- /**
109
- * Функция преобразования зависимостей сервиса в аргументы функции.
110
- * @param {Object} dependencies Зависимости.
111
- * @return {Array} Массив аргументов.
112
- * @private
113
- */
114
- export const _deptToArg = ({ createSpan, onSpanFinish, options }) => [createSpan, onSpanFinish, options];
115
-
116
- /**
117
- * Возвращает сервис для создания промежуточного слоя трассировки.
118
- * @return {Function} Сервис.
119
- */
120
- export const tracingMiddlewareCreator = createService(
121
- _createTracingMiddleware,
122
- _deptToArg
123
- );
124
-
125
- /**
126
- * Сервис для создания span-ов трейсинга.
127
- * @param {Object} dependencies Параметры сервиса.
128
- * @param {Object} dependencies.jaegerTracer Трейсер.
129
- * @param {Object} dependencies.config Конфигурация приложения.
130
- * @return {Function} Функция для создания спана.
131
- */
132
- export const createSpanCreator = ({ jaegerTracer, config }) => request => traceIncomingRequest(
133
- jaegerTracer,
134
- 'incoming-http-request',
135
- request,
136
- _getRequestContext(request, config)
137
- );
138
-
139
- /**
140
- * Обработчик завершения трейса.
141
- * @param {import('http').IncomingMessage} req Запрос.
142
- * @param {import('http').ServerResponse} res Ответ.
143
- * @param {import('opentracing').Span} span Спан.
144
- */
145
- export const spanFinishHandler = (req, res, span) => {
146
- span.finish();
147
- };
148
-
149
- /**
150
- * Возвращает контекст, в котором обрабатывается запрос к сервису, для добавления в span.
151
- * @param {import('http').IncomingMessage} request Запрос.
152
- * @param {Object} config Конфигурация приложения.
153
- * @return {Object} Контекст.
154
- * @private
155
- */
156
- export const _getRequestContext = (request, config) => {
157
- const context = {
158
- 'request.path': getOriginalUrl({ request }),
159
- 'app.config': isPlainObject(config) ? filterSecrets(config) : '',
160
- };
161
-
162
- if (isPlainObject(request.headers) && isFunction(request.get)) {
163
- Object.keys(request.headers).forEach(key => {
164
- if (key.toLowerCase().startsWith('simaland-')) {
165
- context[`request.headers.${key}`] = request.get(key);
166
- }
167
- });
168
- }
169
-
170
- return context;
171
- };
@@ -1,32 +0,0 @@
1
- import pipe from 'lodash/fp/pipe';
2
- import isString from 'lodash/isString';
3
- import split from 'lodash/fp/split';
4
- import map from 'lodash/fp/map';
5
- import compact from 'lodash/compact';
6
- import get from 'lodash/get';
7
- import trim from 'lodash/trim';
8
-
9
- /**
10
- * Конвертирует строку со списком сегментов в массив.
11
- * @param {string} segments Строка со списком сегментов.
12
- * @return {Array} Массив со списком сегментов.
13
- */
14
- const convertSegmentsToArray = pipe(
15
- value => isString(value) ? value : '',
16
- split(','),
17
- compact,
18
- map(trim)
19
- );
20
-
21
- /**
22
- * Возвращает функцию, определяющую включена ли заданная фича.
23
- * @param {string} feature Название фичи.
24
- * @return {function(string, string[]): boolean} Функция.
25
- */
26
- export const checkFeatureBySegment = feature => (userSegment, allFeatures) => {
27
- const segments = convertSegmentsToArray(get(allFeatures, feature));
28
-
29
- return segments.includes('ALL') || segments.includes(userSegment);
30
- };
31
-
32
- export default checkFeatureBySegment;
@@ -1,23 +0,0 @@
1
- import isPlainObject from 'lodash/isPlainObject';
2
- import camelCase from 'lodash/camelCase';
3
-
4
- /**
5
- * Переводит ключи объекта в camelCase.
6
- * @param {Object} object Объект ключи которого нужно отформатировать.
7
- * @return {Object} Отформатированный объект.
8
- */
9
- export default function formatObjectKeys (object) {
10
- if (!isPlainObject(object)) {
11
- throw new TypeError('Параметр "object" должен быть чистым объектом');
12
- }
13
-
14
- return Object.entries(object).reduce((formattedObject, current) => {
15
- const [key, value] = current;
16
- const formattedKey = camelCase(key);
17
-
18
- if (formattedKey) {
19
- formattedObject[formattedKey] = value;
20
- }
21
- return formattedObject;
22
- }, {});
23
- }
@@ -1,16 +0,0 @@
1
- import isNumber from 'lodash/isNumber';
2
-
3
- /**
4
- * Возвращает количество миллисекунд по переданному результату вызова process.hrtime.
5
- * @param {Array<number>} hrtime Результат вызова process.hrtime.
6
- * @return {number} Количество миллисекунд.
7
- */
8
- export const getMsFromHRT = hrtime => {
9
- let result = NaN;
10
- if (Array.isArray(hrtime) && hrtime.every(isNumber)) {
11
- result = (hrtime[0] * 1000) + (hrtime[1] / 1e6);
12
- }
13
- return result;
14
- };
15
-
16
- export default getMsFromHRT;
@@ -1,13 +0,0 @@
1
- import isArray from 'lodash/isArray';
2
- import isString from 'lodash/isString';
3
-
4
- /**
5
- * Проверяет, соответствует ли переданная строка одному из паттернов в переданном масиве.
6
- * @param {string} str Строка для проверки.
7
- * @param {string[]} patternList Массив строк.
8
- * @return {boolean} Соответствует или нет.
9
- */
10
- const isMatchPatternList = (str, patternList) =>
11
- isString(str) && isArray(patternList) && patternList.some(pattern => RegExp(pattern).test(str));
12
-
13
- export default isMatchPatternList;
@@ -1,8 +0,0 @@
1
- /**
2
- * Проверяет, является ли переданное значение НЕ пустым массивом.
3
- * @param {*} data Проверяемое значение.
4
- * @return {boolean} Переданное значение является НЕ пустым массивом?
5
- */
6
- export const isNotEmptyArray = data => Array.isArray(data) && data.length > 0;
7
-
8
- export default isNotEmptyArray;
@@ -1,11 +0,0 @@
1
- /**
2
- * Проверяет, является ли переданное значение НЕ пустой строкой (или строкой содержащей только пробельные символы).
3
- * @param {*} value Проверяемое значение.
4
- * @param {*} trim Обрезка пробельных символов.
5
- * Если передано false - к строке не будет применена функция trim() перед проверкой на длину.
6
- * @return {boolean} Переданное значение является НЕ пустой строкой?
7
- */
8
- export const isNotEmptyString = (value, trim = true) => typeof value === 'string'
9
- && (trim ? value.trim().length > 0 : value.length > 0);
10
-
11
- export default isNotEmptyString;
@@ -1,12 +0,0 @@
1
- /**
2
- * Проверяет, является ли переданное значение числовым (может иметь строковый или числовой тип).
3
- * @param value Проверяемое значение.
4
- * @return Переданное значение является числовым?
5
- */
6
- export const isNumeric = (value: any): value is string | number => {
7
- const validTypes = ['string', 'number', 'bigint'];
8
- const hasValidType = validTypes.some(type => typeof value === type);
9
- return hasValidType && !isNaN(parseFloat(value)) && isFinite(Number(value));
10
- };
11
-
12
- export default isNumeric;
@@ -1,35 +0,0 @@
1
- import EventEmitter from 'events';
2
- import isFunction from 'lodash/isFunction';
3
- import isString from 'lodash/isString';
4
-
5
- /**
6
- * Оборачивает выполнение какой-либо функции в отправку событий начала и конца выполнения.
7
- * @param {Object} param Параметры.
8
- * @param {Function} param.fn Функция, которую необходимо обернуть.
9
- * @param {string} param.startEvent Название события начала измерения.
10
- * @param {string} param.endEvent Название события конца измерения.
11
- * @param {EventEmitter} param.emitter Объект на котором будут отправляться события.
12
- * @return {Function} Функция обёрнутая в отправку событий.
13
- */
14
- export const wrapInMeasureEvent = ({ fn, startEvent, endEvent, emitter }) => {
15
- if (!isFunction(fn)) {
16
- throw new TypeError('First argument property "fn" must be a function');
17
- }
18
- if (!isString(startEvent)) {
19
- throw new TypeError('First argument property "startEvent" must be a string');
20
- }
21
- if (!isString(endEvent)) {
22
- throw new TypeError('First argument property "endEvent" must be a string');
23
- }
24
- if (!(emitter instanceof EventEmitter)) {
25
- throw new TypeError('First argument property "emitter" must be an instance of EventEmitter');
26
- }
27
- return async (...args) => {
28
- emitter.emit(startEvent);
29
- const result = await fn(...args);
30
- emitter.emit(endEvent);
31
- return result;
32
- };
33
- };
34
-
35
- export default wrapInMeasureEvent;