@sima-land/isomorph 9.0.7 → 11.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/dist/cache/types.d.ts +7 -0
- package/dist/cache/types.js +3 -0
- package/dist/cache/types.js.map +1 -0
- package/dist/config/browser.d.ts +6 -0
- package/dist/config/browser.js +13 -0
- package/dist/config/browser.js.map +1 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.js +20 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/node.d.ts +6 -0
- package/dist/config/node.js +19 -0
- package/dist/config/node.js.map +1 -0
- package/dist/config/types.d.ts +7 -0
- package/dist/config/types.js +3 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/utils.d.ts +5 -0
- package/dist/config/utils.js +12 -0
- package/dist/config/utils.js.map +1 -0
- package/dist/container/application.d.ts +25 -0
- package/dist/container/application.js +63 -0
- package/dist/container/application.js.map +1 -0
- package/dist/container/index.d.ts +18 -0
- package/dist/container/index.js +74 -0
- package/dist/container/index.js.map +1 -0
- package/dist/container/types.d.ts +14 -0
- package/dist/container/types.js +3 -0
- package/dist/container/types.js.map +1 -0
- package/dist/error-tracker/browser.d.ts +8 -0
- package/dist/error-tracker/browser.js +40 -0
- package/dist/error-tracker/browser.js.map +1 -0
- package/dist/error-tracker/node.d.ts +8 -0
- package/dist/error-tracker/node.js +40 -0
- package/dist/error-tracker/node.js.map +1 -0
- package/dist/error-tracker/types.d.ts +18 -0
- package/dist/error-tracker/types.js +3 -0
- package/dist/error-tracker/types.js.map +1 -0
- package/dist/error-tracker/utils.d.ts +12 -0
- package/dist/error-tracker/utils.js +19 -0
- package/dist/error-tracker/utils.js.map +1 -0
- package/dist/http-client/middleware/cookie.d.ts +19 -0
- package/dist/http-client/middleware/cookie.js +62 -0
- package/dist/http-client/middleware/cookie.js.map +1 -0
- package/dist/http-client/middleware/tracing.d.ts +32 -0
- package/dist/http-client/middleware/tracing.js +67 -0
- package/dist/http-client/middleware/tracing.js.map +1 -0
- package/dist/http-client/types.d.ts +6 -0
- package/dist/http-client/types.js +3 -0
- package/dist/http-client/types.js.map +1 -0
- package/dist/http-client/utils.d.ts +36 -0
- package/dist/http-client/utils.js +49 -0
- package/dist/http-client/utils.js.map +1 -0
- package/dist/http-server/constants.d.ts +4 -0
- package/dist/http-server/constants.js +8 -0
- package/dist/http-server/constants.js.map +1 -0
- package/dist/http-server/handler/health-check.d.ts +6 -0
- package/dist/http-server/handler/health-check.js +15 -0
- package/dist/http-server/handler/health-check.js.map +1 -0
- package/dist/http-server/middleware/logging.d.ts +10 -0
- package/dist/http-server/middleware/logging.js +31 -0
- package/dist/http-server/middleware/logging.js.map +1 -0
- package/dist/http-server/middleware/metrics.d.ts +23 -0
- package/dist/http-server/middleware/metrics.js +60 -0
- package/dist/http-server/middleware/metrics.js.map +1 -0
- package/dist/http-server/middleware/tracing.d.ts +8 -0
- package/dist/http-server/middleware/tracing.js +32 -0
- package/dist/http-server/middleware/tracing.js.map +1 -0
- package/dist/http-server/types.d.ts +25 -0
- package/dist/http-server/types.js +3 -0
- package/dist/http-server/types.js.map +1 -0
- package/dist/http-server/utils.d.ts +26 -0
- package/dist/http-server/utils.js +88 -0
- package/dist/http-server/utils.js.map +1 -0
- package/dist/logger/handler/console.d.ts +8 -0
- package/dist/logger/handler/console.js +36 -0
- package/dist/logger/handler/console.js.map +1 -0
- package/dist/logger/handler/sentry.d.ts +8 -0
- package/dist/logger/handler/sentry.js +36 -0
- package/dist/logger/handler/sentry.js.map +1 -0
- package/dist/logger/index.d.ts +6 -0
- package/dist/logger/index.js +31 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/logger/types.d.ts +24 -0
- package/dist/logger/types.js +3 -0
- package/dist/logger/types.js.map +1 -0
- package/dist/metrics/constants.d.ts +4 -0
- package/dist/metrics/constants.js +8 -0
- package/dist/metrics/constants.js.map +1 -0
- package/dist/metrics/node.d.ts +18 -0
- package/dist/metrics/node.js +74 -0
- package/dist/metrics/node.js.map +1 -0
- package/dist/preset/index.d.ts +7 -0
- package/dist/preset/index.js +23 -0
- package/dist/preset/index.js.map +1 -0
- package/dist/preset/node/index.d.ts +15 -0
- package/dist/preset/node/index.js +90 -0
- package/dist/preset/node/index.js.map +1 -0
- package/dist/preset/node/response.d.ts +12 -0
- package/dist/preset/node/response.js +52 -0
- package/dist/preset/node/response.js.map +1 -0
- package/dist/preset/types.d.ts +7 -0
- package/dist/preset/types.js +3 -0
- package/dist/preset/types.js.map +1 -0
- package/dist/saga-runner/index.d.ts +8 -0
- package/dist/saga-runner/index.js +77 -0
- package/dist/saga-runner/index.js.map +1 -0
- package/dist/saga-runner/types.d.ts +10 -0
- package/dist/saga-runner/types.js +3 -0
- package/dist/saga-runner/types.js.map +1 -0
- package/dist/tokens.d.ts +40 -0
- package/dist/tokens.js +43 -0
- package/dist/tokens.js.map +1 -0
- package/dist/tracer/node.d.ts +10 -0
- package/dist/tracer/node.js +38 -0
- package/dist/tracer/node.js.map +1 -0
- package/dist/tracer/types.d.ts +2 -0
- package/dist/tracer/types.js +3 -0
- package/dist/tracer/types.js.map +1 -0
- package/dist/utils/browser/analytics/data-layer.d.ts +5 -0
- package/dist/utils/browser/analytics/data-layer.js +15 -0
- package/dist/utils/browser/analytics/data-layer.js.map +1 -0
- package/{helpers/analytics/index.d.ts → dist/utils/browser/analytics/oko.d.ts} +1 -6
- package/{helpers/analytics/index.js → dist/utils/browser/analytics/oko.js} +11 -20
- package/dist/utils/browser/analytics/oko.js.map +1 -0
- package/dist/utils/browser/storage/index.d.ts +4 -0
- package/dist/utils/browser/storage/index.js +63 -0
- package/dist/utils/browser/storage/index.js.map +1 -0
- package/dist/utils/number.d.ts +6 -0
- package/dist/utils/number.js +13 -0
- package/dist/utils/number.js.map +1 -0
- package/dist/utils/react/error-handlers/index.d.ts +38 -0
- package/dist/utils/react/error-handlers/index.js +47 -0
- package/dist/utils/react/error-handlers/index.js.map +1 -0
- package/dist/utils/redux/remote-data.d.ts +23 -0
- package/dist/utils/redux/remote-data.js +28 -0
- package/dist/utils/redux/remote-data.js.map +1 -0
- package/dist/utils/redux-saga/take-chain.d.ts +24 -0
- package/dist/utils/redux-saga/take-chain.js +56 -0
- package/dist/utils/redux-saga/take-chain.js.map +1 -0
- package/dist/utils/webpack/module-federation/index.d.ts +21 -0
- package/dist/utils/webpack/module-federation/index.js +74 -0
- package/dist/utils/webpack/module-federation/index.js.map +1 -0
- package/dist/utils/webpack/module-federation/types.d.ts +26 -0
- package/dist/utils/webpack/module-federation/types.js +3 -0
- package/dist/utils/webpack/module-federation/types.js.map +1 -0
- package/dist/utils/webpack/module-federation/utils.d.ts +15 -0
- package/dist/utils/webpack/module-federation/utils.js +36 -0
- package/dist/utils/webpack/module-federation/utils.js.map +1 -0
- package/package.json +50 -68
- package/readme.md +23 -0
- package/src/cache/types.ts +7 -0
- package/src/config/browser.ts +10 -0
- package/src/config/index.ts +18 -0
- package/src/config/node.ts +18 -0
- package/src/config/types.ts +9 -0
- package/src/config/utils.ts +7 -0
- package/src/container/application.ts +91 -0
- package/src/container/index.ts +79 -0
- package/src/container/types.ts +17 -0
- package/src/error-tracker/browser.ts +14 -0
- package/src/error-tracker/node.ts +14 -0
- package/src/error-tracker/types.ts +22 -0
- package/src/error-tracker/utils.ts +18 -0
- package/src/http-client/middleware/cookie.ts +73 -0
- package/src/{helpers/api/middlewares/trace-request-middleware.ts → http-client/middleware/tracing.ts} +28 -35
- package/src/http-client/types.ts +8 -0
- package/src/http-client/utils.ts +76 -0
- package/src/http-server/constants.ts +4 -0
- package/src/http-server/handler/health-check.ts +13 -0
- package/src/http-server/middleware/logging.ts +34 -0
- package/src/http-server/middleware/metrics.ts +87 -0
- package/src/http-server/middleware/tracing.ts +35 -0
- package/src/http-server/types.ts +29 -0
- package/src/http-server/utils.ts +105 -0
- package/src/logger/handler/console.ts +35 -0
- package/src/logger/handler/sentry.ts +38 -0
- package/src/logger/index.ts +31 -0
- package/src/logger/types.ts +28 -0
- package/src/metrics/constants.ts +4 -0
- package/src/metrics/node.ts +54 -0
- package/src/preset/index.ts +24 -0
- package/src/preset/node/index.ts +101 -0
- package/src/preset/node/response.ts +57 -0
- package/src/preset/types.ts +9 -0
- package/src/saga-runner/index.ts +59 -0
- package/src/saga-runner/types.ts +13 -0
- package/src/tokens.ts +54 -0
- package/src/tracer/node.ts +40 -0
- package/src/tracer/types.ts +3 -0
- package/src/utils/browser/analytics/__test__/data-layer.test.ts +50 -0
- package/src/utils/browser/analytics/__test__/oko.test.tsx +143 -0
- package/src/utils/browser/analytics/data-layer.ts +12 -0
- package/src/{helpers/analytics/index.ts → utils/browser/analytics/oko.ts} +10 -15
- package/src/utils/browser/storage/index.ts +75 -0
- package/src/utils/number.ts +8 -0
- package/src/utils/react/error-handlers/__test__/__snapshots__/index.test.tsx.snap +27 -0
- package/src/utils/react/error-handlers/__test__/index.test.tsx +64 -0
- package/src/utils/react/error-handlers/index.tsx +62 -0
- package/src/utils/redux/__test__/remote-data.test.ts +50 -0
- package/src/utils/redux/remote-data.ts +34 -0
- package/src/utils/redux-saga/__test__/take-chain.test.ts +141 -0
- package/src/utils/redux-saga/take-chain.ts +65 -0
- package/src/utils/webpack/module-federation/__test__/index.test.ts +246 -0
- package/src/utils/webpack/module-federation/index.ts +92 -0
- package/src/utils/webpack/module-federation/types.ts +44 -0
- package/src/utils/webpack/module-federation/utils.ts +43 -0
- 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/analytics/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 -51
- package/module-federation/__example__/webpack-config.example.js.map +0 -1
- package/module-federation/enhanced-module-federation-plugin.d.ts +0 -46
- package/module-federation/enhanced-module-federation-plugin.js +0 -72
- package/module-federation/enhanced-module-federation-plugin.js.map +0 -1
- package/module-federation/utils/index.d.ts +0 -8
- package/module-federation/utils/index.js +0 -28
- 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/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/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 -57
- package/src/module-federation/enhanced-module-federation-plugin.js +0 -92
- package/src/module-federation/utils/index.js +0 -32
- package/src/observe-middleware/index.js +0 -70
- package/src/set-header-middleware/create.js +0 -17
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export default createSetHeaderMiddleware;
|
|
2
|
-
/**
|
|
3
|
-
* Фабрика для промежуточного слоя устанавливающего заголовки.
|
|
4
|
-
* @param {Object} dependencies Объект зависимостей.
|
|
5
|
-
* @param {Object} [dependencies.headers] Объект заголовков.
|
|
6
|
-
* @return {Function} Промежуточный слой приложения для установки заголовков со ссылками на клиентские ресурсы.
|
|
7
|
-
*/
|
|
8
|
-
declare function createSetHeaderMiddleware({ headers, }: {
|
|
9
|
-
headers?: Object | undefined;
|
|
10
|
-
}): Function;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
/**
|
|
4
|
-
* Фабрика для промежуточного слоя устанавливающего заголовки.
|
|
5
|
-
* @param {Object} dependencies Объект зависимостей.
|
|
6
|
-
* @param {Object} [dependencies.headers] Объект заголовков.
|
|
7
|
-
* @return {Function} Промежуточный слой приложения для установки заголовков со ссылками на клиентские ресурсы.
|
|
8
|
-
*/
|
|
9
|
-
const createSetHeaderMiddleware = ({ headers = {}, }) => (request, response, next) => {
|
|
10
|
-
Object.entries(headers).forEach(([key, value]) => {
|
|
11
|
-
response.set({ [key]: value });
|
|
12
|
-
});
|
|
13
|
-
next();
|
|
14
|
-
};
|
|
15
|
-
exports.default = createSetHeaderMiddleware;
|
|
16
|
-
//# sourceMappingURL=create.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/set-header-middleware/create.js"],"names":[],"mappings":";;AAAA;;;;;GAKG;AACH,MAAM,yBAAyB,GAAG,CAAC,EACjC,OAAO,GAAG,EAAE,GACb,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;IAChC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC/C,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,IAAI,EAAE,CAAC;AACT,CAAC,CAAC;AAEF,kBAAe,yBAAyB,CAAC"}
|
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;
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import isString from 'lodash/isString';
|
|
2
|
-
import isPlainObject from 'lodash/isPlainObject';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Определяет, является ли зависимость статической, то есть не требующей инициализации.
|
|
6
|
-
* @param {Object} dependency Конфигурация зависимости.
|
|
7
|
-
* @param {string} dependency.name Название зависимости.
|
|
8
|
-
* @param {*} dependency.value Значение зависимости.
|
|
9
|
-
* @return {boolean} Является ли зависимость статической.
|
|
10
|
-
*/
|
|
11
|
-
export const isStaticDependency = ({ name, value }) =>
|
|
12
|
-
typeof name === 'string'
|
|
13
|
-
&& typeof value !== 'undefined';
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Создает объект зависимостей на основе их названий.
|
|
17
|
-
* @param {Object} container Экземпляр контейнера в котором должен осуществляться поиск зависимостей.
|
|
18
|
-
* @param {Object} dependencies Список зависимостей.
|
|
19
|
-
* @param {string} serviceName Названия сервиса.
|
|
20
|
-
* @return {Object} Объект зависимостей.
|
|
21
|
-
*/
|
|
22
|
-
const getDependencies = (
|
|
23
|
-
container,
|
|
24
|
-
dependencies = [],
|
|
25
|
-
serviceName
|
|
26
|
-
) => dependencies.reduce(async (prevPromise, dependency) => {
|
|
27
|
-
const result = await prevPromise;
|
|
28
|
-
if (isString(dependency)) {
|
|
29
|
-
result[dependency] = await container.get(dependency, serviceName);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
if (isPlainObject(dependency)) {
|
|
33
|
-
if (isStaticDependency(dependency)) {
|
|
34
|
-
result[dependency.name] = dependency.value;
|
|
35
|
-
} else {
|
|
36
|
-
const [necessaryName, necessaryDepName] = Object.entries(dependency).shift() || [];
|
|
37
|
-
if (necessaryName && necessaryDepName) {
|
|
38
|
-
result[necessaryName] = await container.get(necessaryDepName);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return result;
|
|
44
|
-
}, Promise.resolve({}));
|
|
45
|
-
|
|
46
|
-
export default getDependencies;
|