@sima-land/isomorph 10.1.0 → 11.0.0-alpha.10
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.
- package/cache/types.d.ts +7 -0
- package/cache/types.js +3 -0
- package/cache/types.js.map +1 -0
- package/config/base.d.ts +7 -0
- package/config/base.js +20 -0
- package/config/base.js.map +1 -0
- package/config/browser.d.ts +6 -0
- package/config/browser.js +22 -0
- package/config/browser.js.map +1 -0
- package/config/node.d.ts +6 -0
- package/config/node.js +24 -0
- package/config/node.js.map +1 -0
- package/config/types.d.ts +7 -0
- package/config/types.js +3 -0
- package/config/types.js.map +1 -0
- package/di/application.d.ts +6 -0
- package/di/application.js +71 -0
- package/di/application.js.map +1 -0
- package/di/container.d.ts +6 -0
- package/di/container.js +49 -0
- package/di/container.js.map +1 -0
- package/di/errors.d.ts +21 -0
- package/di/errors.js +33 -0
- package/di/errors.js.map +1 -0
- package/di/index.d.ts +6 -0
- package/di/index.js +16 -0
- package/di/index.js.map +1 -0
- package/di/preset.d.ts +9 -0
- package/di/preset.js +25 -0
- package/di/preset.js.map +1 -0
- package/di/token.d.ts +7 -0
- package/di/token.js +17 -0
- package/di/token.js.map +1 -0
- package/di/types.d.ts +32 -0
- package/di/types.js +3 -0
- package/di/types.js.map +1 -0
- package/error-tracker/types.d.ts +13 -0
- package/error-tracker/types.js +3 -0
- package/error-tracker/types.js.map +1 -0
- package/error-tracker/utils.d.ts +22 -0
- package/error-tracker/utils.js +30 -0
- package/error-tracker/utils.js.map +1 -0
- package/http-client/middleware/cookie.d.ts +19 -0
- package/http-client/middleware/cookie.js +62 -0
- package/http-client/middleware/cookie.js.map +1 -0
- package/http-client/middleware/logging.d.ts +15 -0
- package/http-client/middleware/logging.js +93 -0
- package/http-client/middleware/logging.js.map +1 -0
- package/http-client/middleware/tracing.d.ts +32 -0
- package/http-client/middleware/tracing.js +67 -0
- package/http-client/middleware/tracing.js.map +1 -0
- package/http-client/sauce/index.d.ts +27 -0
- package/http-client/sauce/index.js +33 -0
- package/http-client/sauce/index.js.map +1 -0
- package/http-client/types.d.ts +6 -0
- package/http-client/types.js +3 -0
- package/http-client/types.js.map +1 -0
- package/http-client/utils.d.ts +9 -0
- package/http-client/utils.js +20 -0
- package/http-client/utils.js.map +1 -0
- package/http-server/constants.d.ts +4 -0
- package/http-server/constants.js +8 -0
- package/http-server/constants.js.map +1 -0
- package/http-server/handler/health-check.d.ts +6 -0
- package/http-server/handler/health-check.js +15 -0
- package/http-server/handler/health-check.js.map +1 -0
- package/http-server/middleware/logging.d.ts +10 -0
- package/http-server/middleware/logging.js +31 -0
- package/http-server/middleware/logging.js.map +1 -0
- package/http-server/middleware/metrics.d.ts +23 -0
- package/http-server/middleware/metrics.js +60 -0
- package/http-server/middleware/metrics.js.map +1 -0
- package/http-server/middleware/tracing.d.ts +14 -0
- package/http-server/middleware/tracing.js +51 -0
- package/http-server/middleware/tracing.js.map +1 -0
- package/http-server/template/index.d.ts +1 -0
- package/http-server/template/index.js +36 -0
- package/http-server/template/index.js.map +1 -0
- package/http-server/types.d.ts +33 -0
- package/http-server/types.js +3 -0
- package/http-server/types.js.map +1 -0
- package/http-server/utils.d.ts +30 -0
- package/http-server/utils.js +100 -0
- package/http-server/utils.js.map +1 -0
- package/logger/handler/console.d.ts +8 -0
- package/logger/handler/console.js +43 -0
- package/logger/handler/console.js.map +1 -0
- package/logger/handler/sentry.d.ts +8 -0
- package/logger/handler/sentry.js +42 -0
- package/logger/handler/sentry.js.map +1 -0
- package/logger/index.d.ts +6 -0
- package/logger/index.js +31 -0
- package/logger/index.js.map +1 -0
- package/logger/types.d.ts +24 -0
- package/logger/types.js +3 -0
- package/logger/types.js.map +1 -0
- package/metrics/constants.d.ts +4 -0
- package/metrics/constants.js +8 -0
- package/metrics/constants.js.map +1 -0
- package/metrics/node.d.ts +18 -0
- package/metrics/node.js +74 -0
- package/metrics/node.js.map +1 -0
- package/package.json +46 -63
- package/preset/browser/index.d.ts +1 -0
- package/preset/browser/index.js +45 -0
- package/preset/browser/index.js.map +1 -0
- package/preset/node/index.d.ts +19 -0
- package/preset/node/index.js +127 -0
- package/preset/node/index.js.map +1 -0
- package/preset/node/response.d.ts +20 -0
- package/preset/node/response.js +82 -0
- package/preset/node/response.js.map +1 -0
- package/saga-runner/index.d.ts +8 -0
- package/saga-runner/index.js +79 -0
- package/saga-runner/index.js.map +1 -0
- package/saga-runner/types.d.ts +10 -0
- package/saga-runner/types.js +3 -0
- package/saga-runner/types.js.map +1 -0
- package/tokens.d.ts +48 -0
- package/tokens.js +50 -0
- package/tokens.js.map +1 -0
- package/tracing/index.d.ts +9 -0
- package/tracing/index.js +20 -0
- package/tracing/index.js.map +1 -0
- package/{browser → utils/browser}/analytics/data-layer.d.ts +0 -0
- package/{browser → utils/browser}/analytics/data-layer.js +1 -2
- package/utils/browser/analytics/data-layer.js.map +1 -0
- package/{browser → utils/browser}/analytics/oko.d.ts +0 -0
- package/{browser → utils/browser}/analytics/oko.js +6 -7
- package/utils/browser/analytics/oko.js.map +1 -0
- package/utils/browser/storage/index.d.ts +4 -0
- package/utils/browser/storage/index.js +63 -0
- package/utils/browser/storage/index.js.map +1 -0
- package/utils/number.d.ts +6 -0
- package/utils/number.js +13 -0
- package/utils/number.js.map +1 -0
- package/utils/react/error-handlers/index.d.ts +38 -0
- package/utils/react/error-handlers/index.js +48 -0
- package/utils/react/error-handlers/index.js.map +1 -0
- package/utils/redux/remote-data.d.ts +23 -0
- package/utils/redux/remote-data.js +28 -0
- package/utils/redux/remote-data.js.map +1 -0
- package/utils/redux-saga/take-chain.d.ts +24 -0
- package/utils/redux-saga/take-chain.js +56 -0
- package/utils/redux-saga/take-chain.js.map +1 -0
- package/utils/ssr/index.d.ts +30 -0
- package/utils/ssr/index.js +51 -0
- package/utils/ssr/index.js.map +1 -0
- package/utils/webpack/index.d.ts +23 -0
- package/utils/webpack/index.js +66 -0
- package/utils/webpack/index.js.map +1 -0
- package/utils/webpack/module-federation/index.d.ts +21 -0
- package/utils/webpack/module-federation/index.js +74 -0
- package/utils/webpack/module-federation/index.js.map +1 -0
- package/utils/webpack/module-federation/types.d.ts +26 -0
- package/utils/webpack/module-federation/types.js +3 -0
- package/utils/webpack/module-federation/types.js.map +1 -0
- package/utils/webpack/module-federation/utils.d.ts +15 -0
- package/utils/webpack/module-federation/utils.js +36 -0
- package/utils/webpack/module-federation/utils.js.map +1 -0
- package/browser/analytics/data-layer.js.map +0 -1
- package/browser/analytics/oko.js.map +0 -1
- package/cache/helpers.d.ts +0 -4
- package/cache/helpers.js +0 -39
- package/cache/helpers.js.map +0 -1
- package/cache/local-storage.d.ts +0 -34
- package/cache/local-storage.js +0 -90
- package/cache/local-storage.js.map +0 -1
- package/cache/redis.d.ts +0 -10
- package/cache/redis.js +0 -54
- package/cache/redis.js.map +0 -1
- package/cache/wrap-in-trace.d.ts +0 -8
- package/cache/wrap-in-trace.js +0 -68
- package/cache/wrap-in-trace.js.map +0 -1
- package/config/create.d.ts +0 -8
- package/config/create.js +0 -32
- package/config/create.js.map +0 -1
- package/config/helpers.d.ts +0 -11
- package/config/helpers.js +0 -71
- package/config/helpers.js.map +0 -1
- package/config/validate.d.ts +0 -18
- package/config/validate.js +0 -107
- package/config/validate.js.map +0 -1
- package/container/create-inject.d.ts +0 -7
- package/container/create-inject.js +0 -36
- package/container/create-inject.js.map +0 -1
- package/container/get-dependencies.d.ts +0 -13
- package/container/get-dependencies.js +0 -54
- package/container/get-dependencies.js.map +0 -1
- package/container/index.d.ts +0 -15
- package/container/index.js +0 -175
- package/container/index.js.map +0 -1
- package/container/is-container.d.ts +0 -7
- package/container/is-container.js +0 -17
- package/container/is-container.js.map +0 -1
- package/container/service-not-found-error.d.ts +0 -10
- package/container/service-not-found-error.js +0 -18
- package/container/service-not-found-error.js.map +0 -1
- package/create-proxy/create-proxy-middleware/index.d.ts +0 -16
- package/create-proxy/create-proxy-middleware/index.js +0 -47
- package/create-proxy/create-proxy-middleware/index.js.map +0 -1
- package/create-proxy/index.d.ts +0 -12
- package/create-proxy/index.js +0 -25
- package/create-proxy/index.js.map +0 -1
- package/create-response-sender/index.d.ts +0 -8
- package/create-response-sender/index.js +0 -42
- package/create-response-sender/index.js.map +0 -1
- package/get-dynamic-data/index.d.ts +0 -8
- package/get-dynamic-data/index.js +0 -23
- package/get-dynamic-data/index.js.map +0 -1
- package/graceful-shutdown/index.d.ts +0 -26
- package/graceful-shutdown/index.js +0 -87
- package/graceful-shutdown/index.js.map +0 -1
- package/helpers/add-error-handling/index.d.ts +0 -1
- package/helpers/add-error-handling/index.js +0 -42
- package/helpers/add-error-handling/index.js.map +0 -1
- package/helpers/api/create-enhancer.d.ts +0 -12
- package/helpers/api/create-enhancer.js +0 -52
- package/helpers/api/create-enhancer.js.map +0 -1
- package/helpers/api/create-instance.d.ts +0 -11
- package/helpers/api/create-instance.js +0 -39
- package/helpers/api/create-instance.js.map +0 -1
- package/helpers/api/middlewares/collect-cookie-middleware.d.ts +0 -10
- package/helpers/api/middlewares/collect-cookie-middleware.js +0 -39
- package/helpers/api/middlewares/collect-cookie-middleware.js.map +0 -1
- package/helpers/api/middlewares/count-api-response-time.d.ts +0 -12
- package/helpers/api/middlewares/count-api-response-time.js +0 -39
- package/helpers/api/middlewares/count-api-response-time.js.map +0 -1
- package/helpers/api/middlewares/error-handlers-middlewares.d.ts +0 -5
- package/helpers/api/middlewares/error-handlers-middlewares.js +0 -114
- package/helpers/api/middlewares/error-handlers-middlewares.js.map +0 -1
- package/helpers/api/middlewares/helpers.d.ts +0 -11
- package/helpers/api/middlewares/helpers.js +0 -27
- package/helpers/api/middlewares/helpers.js.map +0 -1
- package/helpers/api/middlewares/pass-headers-middleware.d.ts +0 -3
- package/helpers/api/middlewares/pass-headers-middleware.js +0 -27
- package/helpers/api/middlewares/pass-headers-middleware.js.map +0 -1
- package/helpers/api/middlewares/prepare-request-headers.d.ts +0 -5
- package/helpers/api/middlewares/prepare-request-headers.js +0 -20
- package/helpers/api/middlewares/prepare-request-headers.js.map +0 -1
- package/helpers/api/middlewares/set-http-agents-middleware.d.ts +0 -15
- package/helpers/api/middlewares/set-http-agents-middleware.js +0 -34
- package/helpers/api/middlewares/set-http-agents-middleware.js.map +0 -1
- package/helpers/api/middlewares/stages-trace-middleware.d.ts +0 -17
- package/helpers/api/middlewares/stages-trace-middleware.js +0 -57
- package/helpers/api/middlewares/stages-trace-middleware.js.map +0 -1
- package/helpers/api/middlewares/trace-request-middleware.d.ts +0 -24
- package/helpers/api/middlewares/trace-request-middleware.js +0 -69
- package/helpers/api/middlewares/trace-request-middleware.js.map +0 -1
- package/helpers/api/server-adapter/__fixtures__/fake-keys.d.ts +0 -10
- package/helpers/api/server-adapter/__fixtures__/fake-keys.js +0 -61
- package/helpers/api/server-adapter/__fixtures__/fake-keys.js.map +0 -1
- package/helpers/api/server-adapter/constants.d.ts +0 -5
- package/helpers/api/server-adapter/constants.js +0 -16
- package/helpers/api/server-adapter/constants.js.map +0 -1
- package/helpers/api/server-adapter/helpers.d.ts +0 -26
- package/helpers/api/server-adapter/helpers.js +0 -208
- package/helpers/api/server-adapter/helpers.js.map +0 -1
- package/helpers/api/server-adapter/index.d.ts +0 -10
- package/helpers/api/server-adapter/index.js +0 -118
- package/helpers/api/server-adapter/index.js.map +0 -1
- package/helpers/development/use-dot-env.d.ts +0 -6
- package/helpers/development/use-dot-env.js +0 -11
- package/helpers/development/use-dot-env.js.map +0 -1
- package/helpers/get-params/index.d.ts +0 -4
- package/helpers/get-params/index.js +0 -51
- package/helpers/get-params/index.js.map +0 -1
- package/helpers/http/request-getters.d.ts +0 -5
- package/helpers/http/request-getters.js +0 -49
- package/helpers/http/request-getters.js.map +0 -1
- package/helpers/http/statuses-validator.d.ts +0 -3
- package/helpers/http/statuses-validator.js +0 -25
- package/helpers/http/statuses-validator.js.map +0 -1
- package/helpers/logger/create-pino-instance/index.d.ts +0 -6
- package/helpers/logger/create-pino-instance/index.js +0 -39
- package/helpers/logger/create-pino-instance/index.js.map +0 -1
- package/helpers/logger/format-time/index.d.ts +0 -6
- package/helpers/logger/format-time/index.js +0 -9
- package/helpers/logger/format-time/index.js.map +0 -1
- package/helpers/metrics/index.d.ts +0 -23
- package/helpers/metrics/index.js +0 -42
- package/helpers/metrics/index.js.map +0 -1
- package/helpers/prometheus/index.d.ts +0 -4
- package/helpers/prometheus/index.js +0 -13
- package/helpers/prometheus/index.js.map +0 -1
- package/helpers/prometheus/measure-middleware.d.ts +0 -5
- package/helpers/prometheus/measure-middleware.js +0 -69
- package/helpers/prometheus/measure-middleware.js.map +0 -1
- package/helpers/prometheus/metric-adapter.d.ts +0 -36
- package/helpers/prometheus/metric-adapter.js +0 -98
- package/helpers/prometheus/metric-adapter.js.map +0 -1
- package/helpers/react/error-handlers/index.d.ts +0 -40
- package/helpers/react/error-handlers/index.js +0 -52
- package/helpers/react/error-handlers/index.js.map +0 -1
- package/helpers/redux/constants.d.ts +0 -5
- package/helpers/redux/constants.js +0 -14
- package/helpers/redux/constants.js.map +0 -1
- package/helpers/redux/create-compose-middleware.d.ts +0 -15
- package/helpers/redux/create-compose-middleware.js +0 -23
- package/helpers/redux/create-compose-middleware.js.map +0 -1
- package/helpers/redux/get-dev-compose-creator.d.ts +0 -6
- package/helpers/redux/get-dev-compose-creator.js +0 -13
- package/helpers/redux/get-dev-compose-creator.js.map +0 -1
- package/helpers/redux/prepare-on-ready.d.ts +0 -9
- package/helpers/redux/prepare-on-ready.js +0 -16
- package/helpers/redux/prepare-on-ready.js.map +0 -1
- package/helpers/redux/remote-data.d.ts +0 -40
- package/helpers/redux/remote-data.js +0 -91
- package/helpers/redux/remote-data.js.map +0 -1
- package/helpers/redux/selector/statuses.d.ts +0 -23
- package/helpers/redux/selector/statuses.js +0 -34
- package/helpers/redux/selector/statuses.js.map +0 -1
- package/helpers/redux/wait-on-store-readiness.d.ts +0 -11
- package/helpers/redux/wait-on-store-readiness.js +0 -29
- package/helpers/redux/wait-on-store-readiness.js.map +0 -1
- package/helpers/render/get-react-markup-data.d.ts +0 -14
- package/helpers/render/get-react-markup-data.js +0 -20
- package/helpers/render/get-react-markup-data.js.map +0 -1
- package/helpers/render/index.d.ts +0 -21
- package/helpers/render/index.js +0 -72
- package/helpers/render/index.js.map +0 -1
- package/helpers/render/render-app.d.ts +0 -12
- package/helpers/render/render-app.js +0 -12
- package/helpers/render/render-app.js.map +0 -1
- package/helpers/saga/__fixtures__/do-safe-request.d.ts +0 -43
- package/helpers/saga/__fixtures__/do-safe-request.js +0 -50
- package/helpers/saga/__fixtures__/do-safe-request.js.map +0 -1
- package/helpers/saga/cache-result.d.ts +0 -46
- package/helpers/saga/cache-result.js +0 -71
- package/helpers/saga/cache-result.js.map +0 -1
- package/helpers/saga/create-store.d.ts +0 -20
- package/helpers/saga/create-store.js +0 -106
- package/helpers/saga/create-store.js.map +0 -1
- package/helpers/saga/do-safe-request.d.ts +0 -38
- package/helpers/saga/do-safe-request.js +0 -45
- package/helpers/saga/do-safe-request.js.map +0 -1
- package/helpers/saga/safe-request.d.ts +0 -7
- package/helpers/saga/safe-request.js +0 -15
- package/helpers/saga/safe-request.js.map +0 -1
- package/helpers/saga/take-chain.d.ts +0 -20
- package/helpers/saga/take-chain.js +0 -56
- package/helpers/saga/take-chain.js.map +0 -1
- package/helpers/tracer/create-child-tracing-middleware.d.ts +0 -7
- package/helpers/tracer/create-child-tracing-middleware.js +0 -40
- package/helpers/tracer/create-child-tracing-middleware.js.map +0 -1
- package/helpers/tracer/index.d.ts +0 -24
- package/helpers/tracer/index.js +0 -144
- package/helpers/tracer/index.js.map +0 -1
- package/helpers/utils/check-feature-by-segment.d.ts +0 -2
- package/helpers/utils/check-feature-by-segment.js +0 -31
- package/helpers/utils/check-feature-by-segment.js.map +0 -1
- package/helpers/utils/format-object-keys.d.ts +0 -6
- package/helpers/utils/format-object-keys.js +0 -27
- package/helpers/utils/format-object-keys.js.map +0 -1
- package/helpers/utils/get-ms-from-hrt.d.ts +0 -2
- package/helpers/utils/get-ms-from-hrt.js +0 -22
- package/helpers/utils/get-ms-from-hrt.js.map +0 -1
- package/helpers/utils/is-match-pattern-list.d.ts +0 -8
- package/helpers/utils/is-match-pattern-list.js +0 -16
- package/helpers/utils/is-match-pattern-list.js.map +0 -1
- package/helpers/utils/is-not-empty-array.d.ts +0 -2
- package/helpers/utils/is-not-empty-array.js +0 -12
- package/helpers/utils/is-not-empty-array.js.map +0 -1
- package/helpers/utils/is-not-empty-string.d.ts +0 -2
- package/helpers/utils/is-not-empty-string.js +0 -15
- package/helpers/utils/is-not-empty-string.js.map +0 -1
- package/helpers/utils/is-numeric.d.ts +0 -7
- package/helpers/utils/is-numeric.js +0 -16
- package/helpers/utils/is-numeric.js.map +0 -1
- package/helpers/utils/wrap-in-measure-event.d.ts +0 -9
- package/helpers/utils/wrap-in-measure-event.js +0 -50
- package/helpers/utils/wrap-in-measure-event.js.map +0 -1
- package/logger/create-logger-middleware/index.d.ts +0 -14
- package/logger/create-logger-middleware/index.js +0 -41
- package/logger/create-logger-middleware/index.js.map +0 -1
- package/logger/create-sentry-instance/index.d.ts +0 -29
- package/logger/create-sentry-instance/index.js +0 -63
- package/logger/create-sentry-instance/index.js.map +0 -1
- package/logger/create-sentry-middleware/index.d.ts +0 -14
- package/logger/create-sentry-middleware/index.js +0 -19
- package/logger/create-sentry-middleware/index.js.map +0 -1
- package/logger/handler-creators/index.d.ts +0 -5
- package/logger/handler-creators/index.js +0 -41
- package/logger/handler-creators/index.js.map +0 -1
- package/logger/initialize-sentry-creator/index.d.ts +0 -17
- package/logger/initialize-sentry-creator/index.js +0 -35
- package/logger/initialize-sentry-creator/index.js.map +0 -1
- package/logger/sentry-logger/index.d.ts +0 -9
- package/logger/sentry-logger/index.js +0 -36
- package/logger/sentry-logger/index.js.map +0 -1
- package/module-federation/__example__/webpack-config.example.d.ts +0 -366
- package/module-federation/__example__/webpack-config.example.js +0 -58
- package/module-federation/__example__/webpack-config.example.js.map +0 -1
- package/module-federation/enhanced-module-federation-plugin.d.ts +0 -69
- package/module-federation/enhanced-module-federation-plugin.js +0 -97
- package/module-federation/enhanced-module-federation-plugin.js.map +0 -1
- package/module-federation/utils/index.d.ts +0 -16
- package/module-federation/utils/index.js +0 -33
- package/module-federation/utils/index.js.map +0 -1
- package/observe-middleware/index.d.ts +0 -9
- package/observe-middleware/index.js +0 -67
- package/observe-middleware/index.js.map +0 -1
- package/set-header-middleware/create.d.ts +0 -10
- package/set-header-middleware/create.js +0 -16
- package/set-header-middleware/create.js.map +0 -1
- package/src/browser/analytics/data-layer.ts +0 -12
- package/src/browser/analytics/oko.ts +0 -42
- package/src/cache/helpers.js +0 -32
- package/src/cache/local-storage.ts +0 -92
- package/src/cache/redis.js +0 -79
- package/src/cache/wrap-in-trace.js +0 -57
- package/src/config/create.js +0 -33
- package/src/config/helpers.js +0 -71
- package/src/config/validate.js +0 -114
- package/src/container/create-inject.js +0 -32
- package/src/container/get-dependencies.js +0 -46
- package/src/container/index.js +0 -188
- package/src/container/is-container.js +0 -14
- package/src/container/service-not-found-error.js +0 -14
- package/src/create-proxy/create-proxy-middleware/index.js +0 -47
- package/src/create-proxy/index.js +0 -27
- package/src/create-response-sender/index.js +0 -48
- package/src/get-dynamic-data/index.js +0 -26
- package/src/graceful-shutdown/index.js +0 -97
- package/src/helpers/add-error-handling/index.js +0 -24
- package/src/helpers/api/create-enhancer.js +0 -52
- package/src/helpers/api/create-instance.js +0 -42
- package/src/helpers/api/middlewares/collect-cookie-middleware.js +0 -27
- package/src/helpers/api/middlewares/count-api-response-time.js +0 -31
- package/src/helpers/api/middlewares/error-handlers-middlewares.js +0 -124
- package/src/helpers/api/middlewares/helpers.js +0 -26
- package/src/helpers/api/middlewares/pass-headers-middleware.js +0 -19
- package/src/helpers/api/middlewares/prepare-request-headers.js +0 -18
- package/src/helpers/api/middlewares/set-http-agents-middleware.js +0 -22
- package/src/helpers/api/middlewares/stages-trace-middleware.js +0 -46
- package/src/helpers/api/middlewares/trace-request-middleware.ts +0 -86
- package/src/helpers/api/server-adapter/__fixtures__/fake-keys.js +0 -58
- package/src/helpers/api/server-adapter/constants.js +0 -12
- package/src/helpers/api/server-adapter/helpers.js +0 -244
- package/src/helpers/api/server-adapter/index.js +0 -155
- package/src/helpers/development/use-dot-env.js +0 -9
- package/src/helpers/get-params/index.js +0 -59
- package/src/helpers/http/request-getters.js +0 -42
- package/src/helpers/http/statuses-validator.js +0 -20
- package/src/helpers/logger/create-pino-instance/index.js +0 -41
- package/src/helpers/logger/format-time/index.js +0 -6
- package/src/helpers/metrics/index.js +0 -40
- package/src/helpers/prometheus/index.js +0 -9
- package/src/helpers/prometheus/measure-middleware.js +0 -73
- package/src/helpers/prometheus/metric-adapter.js +0 -99
- package/src/helpers/react/error-handlers/index.tsx +0 -68
- package/src/helpers/redux/constants.js +0 -10
- package/src/helpers/redux/create-compose-middleware.js +0 -24
- package/src/helpers/redux/get-dev-compose-creator.js +0 -9
- package/src/helpers/redux/prepare-on-ready.js +0 -16
- package/src/helpers/redux/remote-data.js +0 -124
- package/src/helpers/redux/selector/statuses.js +0 -30
- package/src/helpers/redux/wait-on-store-readiness.js +0 -40
- package/src/helpers/render/get-react-markup-data.js +0 -18
- package/src/helpers/render/index.js +0 -69
- package/src/helpers/render/render-app.js +0 -15
- package/src/helpers/saga/__fixtures__/do-safe-request.js +0 -49
- package/src/helpers/saga/cache-result.js +0 -77
- package/src/helpers/saga/create-store.js +0 -102
- package/src/helpers/saga/do-safe-request.js +0 -47
- package/src/helpers/saga/safe-request.js +0 -11
- package/src/helpers/saga/take-chain.js +0 -53
- package/src/helpers/tracer/create-child-tracing-middleware.js +0 -42
- package/src/helpers/tracer/index.js +0 -171
- package/src/helpers/utils/check-feature-by-segment.js +0 -32
- package/src/helpers/utils/format-object-keys.js +0 -23
- package/src/helpers/utils/get-ms-from-hrt.js +0 -16
- package/src/helpers/utils/is-match-pattern-list.js +0 -13
- package/src/helpers/utils/is-not-empty-array.js +0 -8
- package/src/helpers/utils/is-not-empty-string.js +0 -11
- package/src/helpers/utils/is-numeric.ts +0 -12
- package/src/helpers/utils/wrap-in-measure-event.js +0 -35
- package/src/logger/create-logger-middleware/index.js +0 -46
- package/src/logger/create-sentry-instance/index.js +0 -74
- package/src/logger/create-sentry-middleware/index.js +0 -16
- package/src/logger/handler-creators/index.js +0 -38
- package/src/logger/initialize-sentry-creator/index.js +0 -43
- package/src/logger/sentry-logger/index.js +0 -33
- package/src/module-federation/__example__/webpack-config.example.js +0 -64
- package/src/module-federation/enhanced-module-federation-plugin.js +0 -119
- package/src/module-federation/utils/index.js +0 -39
- package/src/observe-middleware/index.js +0 -70
- package/src/set-header-middleware/create.js +0 -17
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createObserveMiddleware = exports.defaultFinishSubscriber = exports.defaultStartSubscriber = void 0;
|
|
7
|
-
const isFunction_1 = __importDefault(require("lodash/isFunction"));
|
|
8
|
-
const get_ms_from_hrt_1 = __importDefault(require("../helpers/utils/get-ms-from-hrt"));
|
|
9
|
-
/**
|
|
10
|
-
* Немедленно выполняет функцию-обработчик при старте middleware.
|
|
11
|
-
* @param {Function} callback Функция обработчик.
|
|
12
|
-
* @return {*} Результат выполнения функции-обработчика.
|
|
13
|
-
*/
|
|
14
|
-
const defaultStartSubscriber = ({ callback }) => callback();
|
|
15
|
-
exports.defaultStartSubscriber = defaultStartSubscriber;
|
|
16
|
-
/**
|
|
17
|
-
* Подписчик на событие завершения процесса.
|
|
18
|
-
* @param {Object} param Параметры.
|
|
19
|
-
* @param {import('http').ServerResponse} param.response Ответ сервера.
|
|
20
|
-
* @param {Function} param.callback Функция-обработчик события.
|
|
21
|
-
* @return {import('http').ServerResponse} Имеет ли событие другие обработчики.
|
|
22
|
-
*/
|
|
23
|
-
const defaultFinishSubscriber = ({ response, callback }) => response.once('finish', callback);
|
|
24
|
-
exports.defaultFinishSubscriber = defaultFinishSubscriber;
|
|
25
|
-
/**
|
|
26
|
-
* Возвращает новую функцию - промежуточный слой для Express-приложения.
|
|
27
|
-
* @param {Object} options Опции.
|
|
28
|
-
* @param {Function} options.onStart Сработает при старте запроса, получит временную отметку старта, запрос и ответ.
|
|
29
|
-
* @param {Function} options.onFinish Сработает при отправке ответа, получит временную отметку старта, запрос и ответ.
|
|
30
|
-
* @return {Function} Функция - промежуточный слой для Express.
|
|
31
|
-
*/
|
|
32
|
-
const createObserveMiddleware = ({ onStart, onFinish, startSubscriber = exports.defaultStartSubscriber, finishSubscriber = exports.defaultFinishSubscriber, } = {}) => {
|
|
33
|
-
const hasStartHandler = isFunction_1.default(onStart);
|
|
34
|
-
const hasFinishHandler = isFunction_1.default(onFinish);
|
|
35
|
-
const hasStartSubscriber = isFunction_1.default(startSubscriber);
|
|
36
|
-
const hasFinishSubscriber = isFunction_1.default(finishSubscriber);
|
|
37
|
-
return (request, response, next) => {
|
|
38
|
-
let startTime = process.hrtime();
|
|
39
|
-
if (hasStartSubscriber) {
|
|
40
|
-
startSubscriber({
|
|
41
|
-
request,
|
|
42
|
-
response,
|
|
43
|
-
callback: () => {
|
|
44
|
-
startTime = process.hrtime();
|
|
45
|
-
if (hasStartHandler) {
|
|
46
|
-
onStart(get_ms_from_hrt_1.default(startTime), request, response);
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
if (hasFinishSubscriber) {
|
|
52
|
-
finishSubscriber({
|
|
53
|
-
request,
|
|
54
|
-
response,
|
|
55
|
-
callback: () => {
|
|
56
|
-
const duration = process.hrtime(startTime);
|
|
57
|
-
if (hasFinishHandler) {
|
|
58
|
-
onFinish(get_ms_from_hrt_1.default(duration), request, response);
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
next();
|
|
64
|
-
};
|
|
65
|
-
};
|
|
66
|
-
exports.createObserveMiddleware = createObserveMiddleware;
|
|
67
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/observe-middleware/index.js"],"names":[],"mappings":";;;;;;AAAA,mEAA2C;AAC3C,uFAA4D;AAE5D;;;;GAIG;AACI,MAAM,sBAAsB,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC;AAAtD,QAAA,sBAAsB,0BAAgC;AAEnE;;;;;;GAMG;AACI,MAAM,uBAAuB,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAAxF,QAAA,uBAAuB,2BAAiE;AAErG;;;;;;GAMG;AACI,MAAM,uBAAuB,GAAG,CACrC,EACE,OAAO,EACP,QAAQ,EACR,eAAe,GAAG,8BAAsB,EACxC,gBAAgB,GAAG,+BAAuB,GAC3C,GAAG,EAAE,EACN,EAAE;IACF,MAAM,eAAe,GAAG,oBAAU,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,gBAAgB,GAAG,oBAAU,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,kBAAkB,GAAG,oBAAU,CAAC,eAAe,CAAC,CAAC;IACvD,MAAM,mBAAmB,GAAG,oBAAU,CAAC,gBAAgB,CAAC,CAAC;IAEzD,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QACjC,IAAI,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,kBAAkB,EAAE;YACtB,eAAe,CAAC;gBACd,OAAO;gBACP,QAAQ;gBACR,QAAQ,EAAE,GAAG,EAAE;oBACb,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;oBAC7B,IAAI,eAAe,EAAE;wBACnB,OAAO,CAAC,yBAAY,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;qBACrD;gBACH,CAAC;aACF,CAAC,CAAC;SACJ;QAED,IAAI,mBAAmB,EAAE;YACvB,gBAAgB,CAAC;gBACf,OAAO;gBACP,QAAQ;gBACR,QAAQ,EAAE,GAAG,EAAE;oBACb,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBAC3C,IAAI,gBAAgB,EAAE;wBACpB,QAAQ,CAAC,yBAAY,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;qBACrD;gBACH,CAAC;aACF,CAAC,CAAC;SACJ;QAED,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC,CAAC;AA3CW,QAAA,uBAAuB,2BA2ClC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export default createSetHeaderMiddleware;
|
|
2
|
-
/**
|
|
3
|
-
* Фабрика для промежуточного слоя устанавливающего заголовки.
|
|
4
|
-
* @param {Object} dependencies Объект зависимостей.
|
|
5
|
-
* @param {Object} [dependencies.headers] Объект заголовков.
|
|
6
|
-
* @return {Function} Промежуточный слой приложения для установки заголовков со ссылками на клиентские ресурсы.
|
|
7
|
-
*/
|
|
8
|
-
declare function createSetHeaderMiddleware({ headers, }: {
|
|
9
|
-
headers?: Object | undefined;
|
|
10
|
-
}): Function;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
/**
|
|
4
|
-
* Фабрика для промежуточного слоя устанавливающего заголовки.
|
|
5
|
-
* @param {Object} dependencies Объект зависимостей.
|
|
6
|
-
* @param {Object} [dependencies.headers] Объект заголовков.
|
|
7
|
-
* @return {Function} Промежуточный слой приложения для установки заголовков со ссылками на клиентские ресурсы.
|
|
8
|
-
*/
|
|
9
|
-
const createSetHeaderMiddleware = ({ headers = {}, }) => (request, response, next) => {
|
|
10
|
-
Object.entries(headers).forEach(([key, value]) => {
|
|
11
|
-
response.set({ [key]: value });
|
|
12
|
-
});
|
|
13
|
-
next();
|
|
14
|
-
};
|
|
15
|
-
exports.default = createSetHeaderMiddleware;
|
|
16
|
-
//# sourceMappingURL=create.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/set-header-middleware/create.js"],"names":[],"mappings":";;AAAA;;;;;GAKG;AACH,MAAM,yBAAyB,GAAG,CAAC,EACjC,OAAO,GAAG,EAAE,GACb,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;IAChC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC/C,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,IAAI,EAAE,CAAC;AACT,CAAC,CAAC;AAEF,kBAAe,yBAAyB,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { isFunction } from 'lodash';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Отправка аналитики в око.
|
|
5
|
-
* @param eventData Данные события для отправки.
|
|
6
|
-
*/
|
|
7
|
-
export const dataLayerPush = (eventData: Record<string, any>) => {
|
|
8
|
-
const win: any = window;
|
|
9
|
-
|
|
10
|
-
// копируем объект так как window.dataLayer.push может менять аргумент в процессе работы
|
|
11
|
-
isFunction(win.dataLayer?.push) && win.dataLayer.push({ ...eventData });
|
|
12
|
-
};
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { useRef } from 'react';
|
|
2
|
-
import { isEqual, isFunction } from 'lodash';
|
|
3
|
-
|
|
4
|
-
export type OkoEvent = Record<string, any>;
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Отправка аналитики в око.
|
|
8
|
-
* @param eventData Данные события для отправки.
|
|
9
|
-
*/
|
|
10
|
-
export const okoPush = (eventData: OkoEvent) => {
|
|
11
|
-
const win: any = window;
|
|
12
|
-
|
|
13
|
-
// копируем объект так как window.oko.push меняет свой аргумент в процессе выполнения
|
|
14
|
-
isFunction(win.oko?.push) && win.oko.push({ ...eventData });
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Хук, возвращающий функцию, которая отправит аналитику в ОКО.
|
|
19
|
-
* @param data Данные события для отправки в ОКО.
|
|
20
|
-
* @return Функция.
|
|
21
|
-
*/
|
|
22
|
-
export const useOkoPush = (data: OkoEvent) => {
|
|
23
|
-
const dataRef = useRef<OkoEvent>();
|
|
24
|
-
const fnRef = useRef<() => void>();
|
|
25
|
-
|
|
26
|
-
if (!dataRef.current) {
|
|
27
|
-
dataRef.current = { ...data };
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
if (!fnRef.current) {
|
|
31
|
-
fnRef.current = () => okoPush(dataRef.current as OkoEvent);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
if (!isEqual(data, dataRef.current)) {
|
|
35
|
-
throw Error([
|
|
36
|
-
'useAnalytics: Данные для аналитики изменились.',
|
|
37
|
-
'Если необходимо использовать динамические данные, вынесите логику из React-компонента.',
|
|
38
|
-
].join('\n'));
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return fnRef.current;
|
|
42
|
-
};
|
package/src/cache/helpers.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import localStorageCache from './local-storage';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Создаёт обработчик события подключения к redis для установки статуса готовности кэша к работе.
|
|
5
|
-
* @param {Object} cache Объект кэша.
|
|
6
|
-
* @return {Function} Функция устанавливающая статус кэша.
|
|
7
|
-
*/
|
|
8
|
-
export const getOnConnectCallback = cache => () => cache.status = true;
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Создаёт обработчик события переподключения к redis для установки статуса готовности кэша к работе.
|
|
12
|
-
* @param {Object} cache Объект кэша.
|
|
13
|
-
* @return {Function} Функция устанавливающая статус кэша.
|
|
14
|
-
*/
|
|
15
|
-
export const getOnReconnectingCallback = cache => () => cache.status = false;
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Переподключение после ошибки.
|
|
19
|
-
* @param {string} code Код ошибки.
|
|
20
|
-
* @return {boolean} Сходится ли код ошибки с ECONNREFUSED.
|
|
21
|
-
*/
|
|
22
|
-
export const reconnectOnError = ({ code }) => {
|
|
23
|
-
const targetError = 'ECONNREFUSED';
|
|
24
|
-
return code === targetError;
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Определяет есть ли в localStorage нужная информация.
|
|
29
|
-
* @param {string} key Ключ.
|
|
30
|
-
* @return {boolean} Признак наличия ключа.
|
|
31
|
-
*/
|
|
32
|
-
export const keyInLocalStorageExists = key => localStorageCache.status && key in localStorage;
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Определяет доступен ли кэш.
|
|
3
|
-
* @return Флаг доступности кэш.
|
|
4
|
-
*/
|
|
5
|
-
export const isAvailable = (): boolean => {
|
|
6
|
-
try {
|
|
7
|
-
const testKey = `local_storage_test_key::${Date.now()}`;
|
|
8
|
-
|
|
9
|
-
window.localStorage.setItem(testKey, testKey);
|
|
10
|
-
window.localStorage.removeItem(testKey);
|
|
11
|
-
|
|
12
|
-
return true;
|
|
13
|
-
} catch {
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Возвращает объект.
|
|
20
|
-
* @param key Ключ.
|
|
21
|
-
* @return Запрашиваемое значение.
|
|
22
|
-
*/
|
|
23
|
-
export const getItem = (key: string): unknown => {
|
|
24
|
-
const { value, expire } = JSON.parse(localStorage.getItem(key) || '{}');
|
|
25
|
-
const now = Date.now();
|
|
26
|
-
const isExpired = expire
|
|
27
|
-
? now > expire
|
|
28
|
-
: true;
|
|
29
|
-
|
|
30
|
-
isExpired && localStorage.removeItem(key);
|
|
31
|
-
|
|
32
|
-
return isExpired ? null : value;
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Добавляет значение.
|
|
37
|
-
* @param key Ключ.
|
|
38
|
-
* @param value Значение.
|
|
39
|
-
* @param duration Время жизни значения в секундах.
|
|
40
|
-
*/
|
|
41
|
-
export const setItem = (key: string, value: any, duration = 3600) => {
|
|
42
|
-
const now = Date.now();
|
|
43
|
-
const durationMs = duration * 1000;
|
|
44
|
-
const expire = now + durationMs;
|
|
45
|
-
|
|
46
|
-
localStorage.setItem(key, JSON.stringify({
|
|
47
|
-
value,
|
|
48
|
-
expire,
|
|
49
|
-
}));
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Определяет, превышена ли квота.
|
|
54
|
-
* @param error Информация об ошибке.
|
|
55
|
-
* @return Признак превышения квоты.
|
|
56
|
-
*/
|
|
57
|
-
export const isQuotaExceeded = (error: any): boolean => {
|
|
58
|
-
let quotaExceeded = false;
|
|
59
|
-
|
|
60
|
-
if (error) {
|
|
61
|
-
if (error.code) {
|
|
62
|
-
switch (error.code) {
|
|
63
|
-
case 22:
|
|
64
|
-
quotaExceeded = true;
|
|
65
|
-
break;
|
|
66
|
-
case 1014:
|
|
67
|
-
// Firefox
|
|
68
|
-
if (error.name === 'NS_ERROR_DOM_QUOTA_REACHED') {
|
|
69
|
-
quotaExceeded = true;
|
|
70
|
-
}
|
|
71
|
-
break;
|
|
72
|
-
}
|
|
73
|
-
} else if (error.number === -2147024882) {
|
|
74
|
-
// IE 8
|
|
75
|
-
quotaExceeded = true;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
return quotaExceeded;
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Набор методов для работы с кэшем.
|
|
84
|
-
*/
|
|
85
|
-
const LocalStorageCache = {
|
|
86
|
-
get: getItem,
|
|
87
|
-
set: setItem,
|
|
88
|
-
status: isAvailable(),
|
|
89
|
-
quotaExceeded: isQuotaExceeded,
|
|
90
|
-
} as const;
|
|
91
|
-
|
|
92
|
-
export default LocalStorageCache;
|
package/src/cache/redis.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import Redis from 'ioredis';
|
|
2
|
-
import { promisify } from 'util';
|
|
3
|
-
import { createService } from '../container/index';
|
|
4
|
-
import {
|
|
5
|
-
reconnectOnError,
|
|
6
|
-
getOnConnectCallback,
|
|
7
|
-
getOnReconnectingCallback,
|
|
8
|
-
} from './helpers';
|
|
9
|
-
import isFunction from 'lodash/isFunction';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Кэширует данные в Redis.
|
|
13
|
-
* @param {Object} config Объект с параметрами Redis.
|
|
14
|
-
* @param {Function} [reconnectAfterError] Переподключение после ошибки.
|
|
15
|
-
* @param {Function} [getRepeatStrategy] Устанавливает время для повтора перезаписи в redis.
|
|
16
|
-
* @param {Function} [getOnJoinCallback] Коллбэк функция при коннект статусе.
|
|
17
|
-
* @param {Function} [getAfterReconnectingCallback] Коллбэк функция при реконнект статусе.
|
|
18
|
-
* @return {Object} Объект с методами для работы с Redis.
|
|
19
|
-
*/
|
|
20
|
-
export const createRedisCache = (
|
|
21
|
-
config,
|
|
22
|
-
reconnectAfterError = reconnectOnError,
|
|
23
|
-
getRepeatStrategy,
|
|
24
|
-
getOnJoinCallback = getOnConnectCallback,
|
|
25
|
-
getAfterReconnectingCallback = getOnReconnectingCallback
|
|
26
|
-
) => {
|
|
27
|
-
const {
|
|
28
|
-
cacheConfig = {},
|
|
29
|
-
recDelay,
|
|
30
|
-
defaultCacheDuration,
|
|
31
|
-
redisEnabled,
|
|
32
|
-
sentinelEnabled,
|
|
33
|
-
sentinelConfig,
|
|
34
|
-
} = config || {};
|
|
35
|
-
const cache = { status: null };
|
|
36
|
-
|
|
37
|
-
if (redisEnabled || sentinelEnabled) {
|
|
38
|
-
const client = new Redis(
|
|
39
|
-
redisEnabled ? {
|
|
40
|
-
reconnectOnError: reconnectAfterError,
|
|
41
|
-
retryStrategy: isFunction(getRepeatStrategy) ? getRepeatStrategy(recDelay) : undefined,
|
|
42
|
-
...cacheConfig,
|
|
43
|
-
} : sentinelConfig
|
|
44
|
-
);
|
|
45
|
-
|
|
46
|
-
client.on('connect', getOnJoinCallback(cache));
|
|
47
|
-
client.on('reconnecting', getAfterReconnectingCallback(cache));
|
|
48
|
-
|
|
49
|
-
const getAsync = promisify(client.get).bind(client);
|
|
50
|
-
cache.set = (key, value, duration = defaultCacheDuration) => client.set(key, value, 'EX', duration);
|
|
51
|
-
cache.get = key => getAsync(key);
|
|
52
|
-
}
|
|
53
|
-
return cache;
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Преобразует опции сервиса в аргументы функции.
|
|
58
|
-
* @param {Object} param Параметры.
|
|
59
|
-
* @param {Object} param.config Объект с параметрами Redis.
|
|
60
|
-
* @param {Function} param.reconnectAfterError Переподключение после ошибки.
|
|
61
|
-
* @param {Function} param.getRepeatStrategy Время для повтора перезаписи в redis.
|
|
62
|
-
* @param {Function} param.getOnJoinCallback Устанавливает статус кэша.
|
|
63
|
-
* @param {Function} param.getAfterReconnectingCallback Устанавливает статус кэша.
|
|
64
|
-
* @return {Object} Config Объект с параметрами Redis.
|
|
65
|
-
*/
|
|
66
|
-
export const mapServiceOptionsToArgs = ({
|
|
67
|
-
config,
|
|
68
|
-
reconnectAfterError,
|
|
69
|
-
getRepeatStrategy,
|
|
70
|
-
getOnJoinCallback,
|
|
71
|
-
getAfterReconnectingCallback,
|
|
72
|
-
}) => [
|
|
73
|
-
config,
|
|
74
|
-
reconnectAfterError,
|
|
75
|
-
getRepeatStrategy,
|
|
76
|
-
getOnJoinCallback,
|
|
77
|
-
getAfterReconnectingCallback,
|
|
78
|
-
];
|
|
79
|
-
export default createService(createRedisCache, mapServiceOptionsToArgs);
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { createService } from '../container';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Обертка методов кэша.
|
|
5
|
-
* @param {Object} tracer Экземпляр jaeger-трейсера.
|
|
6
|
-
* @param {Object} context Контекст спана.
|
|
7
|
-
* @param {Object} cache Кэш.
|
|
8
|
-
* @return {Object} Объект с методами кэша.
|
|
9
|
-
*/
|
|
10
|
-
export const wrapInTrace = (tracer, context, cache) => ({
|
|
11
|
-
/**
|
|
12
|
-
* Получение ключа из кэша.
|
|
13
|
-
* @param {string} key Ключ.
|
|
14
|
-
* @return {Promise} Промис для получения ответа.
|
|
15
|
-
*/
|
|
16
|
-
get: async key => {
|
|
17
|
-
const span = tracer.startSpan(`Redis GET ${key}`, {
|
|
18
|
-
childOf: context,
|
|
19
|
-
});
|
|
20
|
-
const result = await cache.get(key);
|
|
21
|
-
span.finish();
|
|
22
|
-
return result;
|
|
23
|
-
},
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Задаем значение в кэш.
|
|
27
|
-
* @param {string} key Ключ.
|
|
28
|
-
* @param {string} value Новое значение.
|
|
29
|
-
* @param {number} duration Длительность.
|
|
30
|
-
*/
|
|
31
|
-
set: (key, value, duration = 3600) => {
|
|
32
|
-
const span = tracer.startSpan(`Redis SET ${key}`, {
|
|
33
|
-
childOf: context,
|
|
34
|
-
});
|
|
35
|
-
cache.set(key, value, duration);
|
|
36
|
-
span.finish();
|
|
37
|
-
},
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Геттер статуса кэша.
|
|
41
|
-
* @return {string} Статус кэша.
|
|
42
|
-
*/
|
|
43
|
-
get status () {
|
|
44
|
-
return cache.status;
|
|
45
|
-
},
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Преобразует опции сервиса в аргументы функции.
|
|
50
|
-
* @param {Object} param Параметры.
|
|
51
|
-
* @param {Object} param.tracer Экземпляр jaeger-трейсера.
|
|
52
|
-
* @param {Object} param.context Контекст спана.
|
|
53
|
-
* @param {Object} param.cache Кэш.
|
|
54
|
-
* @return {Object} Config Объект с параметрами Redis.
|
|
55
|
-
*/
|
|
56
|
-
export const mapServiceOptionsToArgs = ({ tracer, context = {}, cache }) => [tracer, context, cache];
|
|
57
|
-
export default createService(wrapInTrace, mapServiceOptionsToArgs);
|
package/src/config/create.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import isFunction from 'lodash/isFunction';
|
|
2
|
-
import isPlainObject from 'lodash/isPlainObject';
|
|
3
|
-
import formatObjectKeys from '../helpers/utils/format-object-keys';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Собирает объект конфигурации из переданных параметров.
|
|
7
|
-
* @param {Object} data Объект с данными, которые нужно добавить в конфигурацию.
|
|
8
|
-
* @param {Object} base Базовый объект на основе которого строится конфигурация.
|
|
9
|
-
* @param {boolean} needFormatKeys Признак форматирования ключей объекта.
|
|
10
|
-
* @return {Object} Объект конфигурации.
|
|
11
|
-
*/
|
|
12
|
-
export default function createConfig (
|
|
13
|
-
data = {},
|
|
14
|
-
base = { ...process.env },
|
|
15
|
-
needFormatKeys = true
|
|
16
|
-
) {
|
|
17
|
-
if (!isPlainObject(data)) {
|
|
18
|
-
throw new TypeError('Параметр "data" должен быть чистым объектом');
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
if (!isPlainObject(base)) {
|
|
22
|
-
throw new TypeError('Параметр "base" должен быть чистым объектом');
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
return Object.entries(data).reduce((config, current) => {
|
|
26
|
-
const [key, value] = current;
|
|
27
|
-
|
|
28
|
-
if (!(key in config)) {
|
|
29
|
-
config[key] = isFunction(value) ? value(base) : value;
|
|
30
|
-
}
|
|
31
|
-
return config;
|
|
32
|
-
}, needFormatKeys ? formatObjectKeys({ ...base }) : base);
|
|
33
|
-
}
|
package/src/config/helpers.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import isString from 'lodash/isString';
|
|
2
|
-
import isFunction from 'lodash/isFunction';
|
|
3
|
-
import { RULE_TYPES } from './validate';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Станадртный валидатор, проверяет на непустую строку.
|
|
7
|
-
* @param {*} value Значение, которое нужно провалидировать.
|
|
8
|
-
* @return {boolean} Валидно ли значение.
|
|
9
|
-
*/
|
|
10
|
-
export const defaultValidate = value => isString(value) && value.length > 0;
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Возвращает текст ошибки про умолчанию.
|
|
14
|
-
* @param {string} property Свойство для которого получена ошибка.
|
|
15
|
-
* @return {string} Текст ошибки.
|
|
16
|
-
*/
|
|
17
|
-
export const getDefaultError = property =>
|
|
18
|
-
`Ошибка конфигрурации приложения: Поле "${property}" заполнено некорректно`;
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Возвращает текст ошибки для переданной строки ошибки.
|
|
22
|
-
* @param {string} property Свойство для которого получена ошибка.
|
|
23
|
-
* @param {string} error Текст ошибки.
|
|
24
|
-
* @return {string} Полный текст ошибки.
|
|
25
|
-
*/
|
|
26
|
-
export const getStringError = (property, error) =>
|
|
27
|
-
`Ошибка конфигурации. Поле "${property}": ${error}`;
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Выбрасывает ошибку.
|
|
31
|
-
* @param {string} errorText Текст ошибки.
|
|
32
|
-
*/
|
|
33
|
-
export const throwError = errorText => {
|
|
34
|
-
throw new Error(errorText);
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Выводит в лог ошибку.
|
|
39
|
-
* @param {string} errorText Текст ошибки.
|
|
40
|
-
*/
|
|
41
|
-
export const consoleError = errorText => {
|
|
42
|
-
// eslint-disable-next-line no-console
|
|
43
|
-
console.error(errorText);
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Вызывает ошибку.
|
|
48
|
-
* @param {Object} errorData Данные необходимые для вывода ошибки.
|
|
49
|
-
* @param {string} errorData.property Проверяемое свойство конфига.
|
|
50
|
-
* @param {*} errorData.value Проверяемое значение.
|
|
51
|
-
* @param {Function|string} [errorData.error] Либо функция, вызвающая ошибку, либо текст ошибки.
|
|
52
|
-
* @param {'error'|'warning'} errorData.type Тип валидации.
|
|
53
|
-
*/
|
|
54
|
-
export const callError = ({
|
|
55
|
-
property,
|
|
56
|
-
value,
|
|
57
|
-
error,
|
|
58
|
-
type,
|
|
59
|
-
}) => {
|
|
60
|
-
if (isFunction(error)) {
|
|
61
|
-
error(property, value);
|
|
62
|
-
} else {
|
|
63
|
-
const errorText = isString(error)
|
|
64
|
-
? getStringError(property, error)
|
|
65
|
-
: getDefaultError(property);
|
|
66
|
-
|
|
67
|
-
type === RULE_TYPES.error
|
|
68
|
-
? throwError(errorText)
|
|
69
|
-
: consoleError(errorText);
|
|
70
|
-
}
|
|
71
|
-
};
|
package/src/config/validate.js
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
defaultValidate,
|
|
3
|
-
callError,
|
|
4
|
-
} from './helpers';
|
|
5
|
-
import isFunction from 'lodash/isFunction';
|
|
6
|
-
import isPlainObject from 'lodash/isPlainObject';
|
|
7
|
-
|
|
8
|
-
export const RULE_TYPES = Object.freeze({
|
|
9
|
-
error: 'error',
|
|
10
|
-
warning: 'warning',
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Возвращает массив валидаторов.
|
|
15
|
-
* @param {Object|Array|Function} validation Функция-валидатор, либо объект-валидатор,
|
|
16
|
-
* либо массив объектов-валидаторов.
|
|
17
|
-
* @return {Array} Массив валидаторов.
|
|
18
|
-
*/
|
|
19
|
-
export const getValidatorsList = validation => {
|
|
20
|
-
let result = validation;
|
|
21
|
-
|
|
22
|
-
if (isFunction(validation)) {
|
|
23
|
-
result = [{ validate: validation }];
|
|
24
|
-
} else if (isPlainObject(validation)) {
|
|
25
|
-
result = [validation];
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return result;
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Проверяет значение на корректность.
|
|
33
|
-
* @param {Function} validate Функция-валидатор.
|
|
34
|
-
* @param {*} value Значение.
|
|
35
|
-
* @return {boolean} Валидно ли значение.
|
|
36
|
-
*/
|
|
37
|
-
export const checkValue = (validate, value) => isFunction(validate)
|
|
38
|
-
? !validate(value)
|
|
39
|
-
: !defaultValidate(value);
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Валидирует значение свойства конфигурации.
|
|
43
|
-
* @param {string} property Название свойства.
|
|
44
|
-
* @param {*} value Значение, которое нужно провалидировать.
|
|
45
|
-
* @param {Object} rules Правила валидации,.
|
|
46
|
-
* @param {Object|Array|Function} rules.validation Функция-валидатор, либо объект-валидатор,
|
|
47
|
-
* либо массив объектов-валидаторов.
|
|
48
|
-
*/
|
|
49
|
-
export const validateValue = (
|
|
50
|
-
property,
|
|
51
|
-
value,
|
|
52
|
-
{
|
|
53
|
-
validation = defaultValidate,
|
|
54
|
-
...restRules
|
|
55
|
-
}
|
|
56
|
-
) => {
|
|
57
|
-
const validatorsList = getValidatorsList(validation);
|
|
58
|
-
const failedValidator = validatorsList.find(({ validate }) =>
|
|
59
|
-
checkValue(validate, value));
|
|
60
|
-
|
|
61
|
-
failedValidator && callError({
|
|
62
|
-
property,
|
|
63
|
-
value,
|
|
64
|
-
...restRules,
|
|
65
|
-
...failedValidator,
|
|
66
|
-
});
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Валидирует определенное свойство конфигурации.
|
|
71
|
-
* @param {Object} config Объект конфигурации.
|
|
72
|
-
* @param {string} property Название свойства.
|
|
73
|
-
* @param {Object} rules Объект с описанием правил валидидации свойство.
|
|
74
|
-
*/
|
|
75
|
-
export const validateProperty = (config, property, rules) => {
|
|
76
|
-
const value = config[property];
|
|
77
|
-
const rulesList = Array.isArray(rules) ? rules : [rules];
|
|
78
|
-
|
|
79
|
-
if (value === undefined) {
|
|
80
|
-
const { error, type } = rules;
|
|
81
|
-
callError({ property, value, error, type });
|
|
82
|
-
} else {
|
|
83
|
-
rulesList.forEach(rule => {
|
|
84
|
-
validateValue(property, value, rule);
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Валидирует конфигурацию.
|
|
91
|
-
* @param {Object} config Конфигурация, которую нужно провалидировать.
|
|
92
|
-
* @param {Object} validationConfig Конфигурация валидатора.
|
|
93
|
-
* @return {Object} Конфигурация приложения.
|
|
94
|
-
*/
|
|
95
|
-
const validateConfig = (
|
|
96
|
-
config,
|
|
97
|
-
validationConfig
|
|
98
|
-
) => {
|
|
99
|
-
if (!isPlainObject(config)) {
|
|
100
|
-
throw new TypeError('Конфигурация приложения должна быть чистым объектом');
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
if (!isPlainObject(validationConfig)) {
|
|
104
|
-
throw new TypeError('Конфигурация валидатора должна быть чистым объектом');
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
Object.entries(validationConfig).forEach(([property, rules]) => {
|
|
108
|
-
validateProperty(config, property, rules);
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
return config;
|
|
112
|
-
};
|
|
113
|
-
|
|
114
|
-
export default validateConfig;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import isFunction from 'lodash/isFunction';
|
|
2
|
-
import getDependencies from './get-dependencies';
|
|
3
|
-
import isContainer from './is-container';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Создаёт функцию для инъекции зависимостей из контейнера в функции.
|
|
7
|
-
* @param {Function} getContainer Функция для получения экземпляра контейнера.
|
|
8
|
-
* @return {Function} Функция для инъекции зависимостей из контейнера.
|
|
9
|
-
*/
|
|
10
|
-
const createInject = getContainer => ({
|
|
11
|
-
target,
|
|
12
|
-
dependencies = [],
|
|
13
|
-
registerArgs,
|
|
14
|
-
}) => async (...args) => {
|
|
15
|
-
const container = getContainer();
|
|
16
|
-
|
|
17
|
-
// Если не получили контейнера, то выходим с ошибкой.
|
|
18
|
-
if (!isContainer(container)) {
|
|
19
|
-
throw new TypeError('Полученный результат выполнения функции getContainer не реализует интерфейс контейнера.');
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
// Если требуется регистрируем аргументы функции как сервисы в контейнере.
|
|
23
|
-
if (isFunction(registerArgs)) {
|
|
24
|
-
registerArgs(container, ...args);
|
|
25
|
-
}
|
|
26
|
-
return target(
|
|
27
|
-
...args,
|
|
28
|
-
...Object.values(await getDependencies(container, dependencies))
|
|
29
|
-
);
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
export default createInject;
|