@sima-land/isomorph 10.1.0 → 11.0.0-alpha.2
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/browser.d.ts +6 -0
- package/config/browser.js +13 -0
- package/config/browser.js.map +1 -0
- package/config/index.d.ts +7 -0
- package/config/index.js +20 -0
- package/config/index.js.map +1 -0
- package/config/node.d.ts +6 -0
- package/config/node.js +19 -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/config/utils.d.ts +5 -0
- package/config/utils.js +12 -0
- package/config/utils.js.map +1 -0
- package/container/application.d.ts +25 -0
- package/container/application.js +63 -0
- package/container/application.js.map +1 -0
- package/container/index.d.ts +16 -13
- package/container/index.js +60 -161
- package/container/index.js.map +1 -1
- package/container/types.d.ts +14 -0
- package/container/types.js +3 -0
- package/container/types.js.map +1 -0
- package/error-tracker/browser.d.ts +8 -0
- package/error-tracker/browser.js +40 -0
- package/error-tracker/browser.js.map +1 -0
- package/error-tracker/node.d.ts +8 -0
- package/error-tracker/node.js +40 -0
- package/error-tracker/node.js.map +1 -0
- package/error-tracker/types.d.ts +18 -0
- package/error-tracker/types.js +3 -0
- package/error-tracker/types.js.map +1 -0
- package/error-tracker/utils.d.ts +12 -0
- package/error-tracker/utils.js +19 -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/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 +8 -0
- package/http-server/middleware/tracing.js +33 -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 +36 -0
- package/logger/handler/console.js.map +1 -0
- package/logger/handler/sentry.d.ts +8 -0
- package/logger/handler/sentry.js +36 -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 +44 -63
- package/preset/index.d.ts +7 -0
- package/preset/index.js +25 -0
- package/preset/index.js.map +1 -0
- package/preset/node/index.d.ts +15 -0
- package/preset/node/index.js +90 -0
- package/preset/node/index.js.map +1 -0
- package/preset/node/response.d.ts +17 -0
- package/preset/node/response.js +78 -0
- package/preset/node/response.js.map +1 -0
- package/preset/types.d.ts +7 -0
- package/preset/types.js +3 -0
- package/preset/types.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 +41 -0
- package/tokens.js +44 -0
- package/tokens.js.map +1 -0
- package/tracer/node.d.ts +10 -0
- package/tracer/node.js +38 -0
- package/tracer/node.js.map +1 -0
- package/tracer/types.d.ts +2 -0
- package/tracer/types.js +3 -0
- package/tracer/types.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 +47 -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/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/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,41 +0,0 @@
|
|
|
1
|
-
import pino from 'pino';
|
|
2
|
-
import formatTime from '../format-time';
|
|
3
|
-
import isPlainObject from 'lodash/isPlainObject';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Модуль создающий экземпляр логгера.
|
|
7
|
-
* @param {Object} options Зависимости модуля.
|
|
8
|
-
* @return {Function} Функция, которая создает логгер.
|
|
9
|
-
*/
|
|
10
|
-
export default function createPinoInstance ({ config } = {}) {
|
|
11
|
-
/**
|
|
12
|
-
* Функция, которая создает экземпляр логгера.
|
|
13
|
-
* @param {Object} param Параметры.
|
|
14
|
-
* @param {string|number} param.timestamp Время.
|
|
15
|
-
* @param {boolean} param.isProduction Является ли production-сборкой.
|
|
16
|
-
* @param {boolean} param.hasColorize Нужно ли выделять цветом.
|
|
17
|
-
* @return {Function} Экземпляр логгера.
|
|
18
|
-
*/
|
|
19
|
-
const loggerCreator = (
|
|
20
|
-
{
|
|
21
|
-
timestamp,
|
|
22
|
-
isProduction,
|
|
23
|
-
hasColorize,
|
|
24
|
-
}
|
|
25
|
-
) => {
|
|
26
|
-
const logger = pino({
|
|
27
|
-
timestamp,
|
|
28
|
-
prettyPrint: hasColorize && { colorize: true },
|
|
29
|
-
useLevelLabels: true,
|
|
30
|
-
});
|
|
31
|
-
logger.extreme = isProduction;
|
|
32
|
-
|
|
33
|
-
return logger;
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
return loggerCreator({
|
|
37
|
-
timestamp: formatTime,
|
|
38
|
-
isProduction: isPlainObject(config) ? config.isProduction : true,
|
|
39
|
-
hasColorize: isPlainObject(config) ? config.isDevelopment : false,
|
|
40
|
-
});
|
|
41
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Формирует данные метрики из данных приложения, запроса и ответа.
|
|
3
|
-
* @param {Object} options Опции приложения.
|
|
4
|
-
* @param {Object} options.dependencies Зависимости сервиса сбора метрик.
|
|
5
|
-
* @param {Object} options.dependencies.config Конфигурация приложения.
|
|
6
|
-
* @param {import('http').IncomingMessage} options.request Запрос.
|
|
7
|
-
* @param {import('http').ServerResponse} options.response Ответ.
|
|
8
|
-
* @return {{route: string, place: string, statusCode: number}} Данные для отправки в метрику.
|
|
9
|
-
*/
|
|
10
|
-
export const labelsResolver = ({ dependencies: { config }, request, response }) => ({
|
|
11
|
-
version: config.version || 'development',
|
|
12
|
-
route: request.baseUrl + request.path,
|
|
13
|
-
code: response.statusCode,
|
|
14
|
-
method: request.method,
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Создаёт функцию, подписывающую обработчик на определённое событие ответа сервера.
|
|
19
|
-
* @param {string} eventName Название события.
|
|
20
|
-
* @return {function({response: import('http').ServerResponse, callback: Function}): import('http').ServerResponse}
|
|
21
|
-
* Функция-подписчик.
|
|
22
|
-
*/
|
|
23
|
-
export const createResponseEventSubscriber = eventName =>
|
|
24
|
-
({ response, callback }) => response.once(eventName, callback);
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Подписывает функцию-обработчик на событие начала рендеринга.
|
|
28
|
-
* @param {import('http').ServerResponse} response Ответ.
|
|
29
|
-
* @param {Function} callback Обработчик.
|
|
30
|
-
* @return {import('http').ServerResponse} Ответ.
|
|
31
|
-
*/
|
|
32
|
-
export const renderStartSubscriber = createResponseEventSubscriber('render:start');
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Подписывает функцию-обработчик на событие конца рендеринга.
|
|
36
|
-
* @param {import('http').ServerResponse} response Ответ.
|
|
37
|
-
* @param {Function} callback Обработчик.
|
|
38
|
-
* @return {import('http').ServerResponse} Ответ.
|
|
39
|
-
*/
|
|
40
|
-
export const renderFinishSubscriber = createResponseEventSubscriber('render:finish');
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import negate from 'lodash/negate';
|
|
2
|
-
import isFunction from 'lodash/isFunction';
|
|
3
|
-
import { isPrometheusMetric } from './metric-adapter.js';
|
|
4
|
-
import { labelsResolver } from '../metrics';
|
|
5
|
-
import { createObserveMiddleware, defaultStartSubscriber, defaultFinishSubscriber } from '../../observe-middleware';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Возвращает функцию, создающую модуль для замера метрик запросов Express-приложения.
|
|
9
|
-
* @param {Object} dependencies Опции.
|
|
10
|
-
* @param {Function} dependencies.resolveLabels Функция, результат которой будет использован как аргумент setLabels.
|
|
11
|
-
* @param {Array} dependencies.startMetrics Список метрик, замеряемых при старте запроса.
|
|
12
|
-
* @param {Array} dependencies.finishMetrics Список метрик, замеряемых при отправке ответа.
|
|
13
|
-
* @return {Function} Функция, возвращающая промежуточный слой для использования в Express-приложении.
|
|
14
|
-
*/
|
|
15
|
-
export const createMeasureMiddleware = (dependencies = {}) => {
|
|
16
|
-
const {
|
|
17
|
-
resolveLabels = labelsResolver,
|
|
18
|
-
startMetrics = [],
|
|
19
|
-
finishMetrics = [],
|
|
20
|
-
startSubscriber = defaultStartSubscriber,
|
|
21
|
-
finishSubscriber = defaultFinishSubscriber,
|
|
22
|
-
} = dependencies || {};
|
|
23
|
-
if (!isFunction(resolveLabels)) {
|
|
24
|
-
throw TypeError('First argument property "resolveLabels" must be a function');
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
if ([startMetrics, finishMetrics].some(negate(Array.isArray))) {
|
|
28
|
-
throw TypeError('First argument properties "startMetrics" and "finishMetrics" must be arrays');
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
if ([...startMetrics, ...finishMetrics].some(negate(isPrometheusMetric))) {
|
|
32
|
-
throw TypeError('Every metric in "startMetrics" and "finishMetrics" must be instance of PrometheusMetric');
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
if (!isFunction(startSubscriber)) {
|
|
36
|
-
throw TypeError('First argument property "startSubscriber" must be a function');
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
if (!isFunction(finishSubscriber)) {
|
|
40
|
-
throw TypeError('First argument property "finishSubscriber" must be a function');
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return createObserveMiddleware({
|
|
44
|
-
onStart: (timestamp, request, response) => {
|
|
45
|
-
startMetrics.forEach(metric => {
|
|
46
|
-
metric
|
|
47
|
-
.setLabels(resolveLabels({
|
|
48
|
-
dependencies,
|
|
49
|
-
metric,
|
|
50
|
-
request,
|
|
51
|
-
response,
|
|
52
|
-
timestamp,
|
|
53
|
-
}))
|
|
54
|
-
.spot();
|
|
55
|
-
});
|
|
56
|
-
},
|
|
57
|
-
onFinish: (duration, request, response) => {
|
|
58
|
-
finishMetrics.forEach(metric => {
|
|
59
|
-
metric
|
|
60
|
-
.setLabels(resolveLabels({
|
|
61
|
-
dependencies,
|
|
62
|
-
duration,
|
|
63
|
-
metric,
|
|
64
|
-
request,
|
|
65
|
-
response,
|
|
66
|
-
}))
|
|
67
|
-
.spot(duration);
|
|
68
|
-
});
|
|
69
|
-
},
|
|
70
|
-
startSubscriber,
|
|
71
|
-
finishSubscriber,
|
|
72
|
-
});
|
|
73
|
-
};
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import PrometheusClient from 'prom-client';
|
|
2
|
-
import difference from 'lodash/difference';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Список имен конструкторов из пакета "prom-client", пригодных для создания адаптеров.
|
|
6
|
-
* @type {Array<string>}
|
|
7
|
-
*/
|
|
8
|
-
export const availableMetricTypes = Object.freeze([
|
|
9
|
-
'Counter',
|
|
10
|
-
'Gauge',
|
|
11
|
-
'Histogram',
|
|
12
|
-
'Summary',
|
|
13
|
-
]);
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Ключ свойства адаптера с оригинальным объектом метрики.
|
|
17
|
-
* @type {symbol}
|
|
18
|
-
*/
|
|
19
|
-
export const originalMetricKey = Symbol('original-metric-key');
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Возвращает оригинальный объект метрики из переданного адаптера.
|
|
23
|
-
* @param {PrometheusMetric} adapter Объект адаптера.
|
|
24
|
-
* @return {Object} Объект метрики.
|
|
25
|
-
*/
|
|
26
|
-
export const getOriginalInstance = adapter => adapter
|
|
27
|
-
? adapter[originalMetricKey]
|
|
28
|
-
: undefined;
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Определяет, является ли переданное значение экземпляром класса PrometheusMetric.
|
|
32
|
-
* @param {*} value Проверяемое значение.
|
|
33
|
-
* @return {boolean} Переданное значение является экземпляром класса PrometheusMetric?
|
|
34
|
-
*/
|
|
35
|
-
export const isPrometheusMetric = value => value instanceof PrometheusMetric;
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Класс объектов-адаптеров для классов метрик из пакета "prom-client".
|
|
39
|
-
*/
|
|
40
|
-
export class PrometheusMetric {
|
|
41
|
-
labels = {};
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Инициализирует объект-адаптер метрики.
|
|
45
|
-
* @param {string} metricType Тип метрики, определяемый названием класса из пакета "prom-client".
|
|
46
|
-
* @param {Object} options Опции, передаваемые в конструктор метрики из пакета "prom-client".
|
|
47
|
-
*/
|
|
48
|
-
constructor (metricType = '', options = {}) {
|
|
49
|
-
if (!availableMetricTypes.includes(metricType)) {
|
|
50
|
-
throw Error(`First argument must be one of available types: ${availableMetricTypes.join(', ')}`);
|
|
51
|
-
}
|
|
52
|
-
Object.assign(this, { ...options, metricType });
|
|
53
|
-
this[originalMetricKey] = new PrometheusClient[metricType](options);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Устанавливает значения показателей по переданному объекту, где ключ - название показателя.
|
|
58
|
-
* @param {Object} labels Объект со значениями показателей по названиям.
|
|
59
|
-
* @return {PrometheusMetric} Экземпляр.
|
|
60
|
-
*/
|
|
61
|
-
setLabels (labels = {}) {
|
|
62
|
-
const newLabels = labels || {};
|
|
63
|
-
if (Array.isArray(this.labelNames)) {
|
|
64
|
-
if (difference(this.labelNames, Object.keys(newLabels)).length > 0) {
|
|
65
|
-
throw Error(`Labels count must be equal to labelNames count = ${this.labelNames.length}`);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
this.labels = newLabels;
|
|
69
|
-
|
|
70
|
-
return this;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Фиксирует показатель метрики в сервисе Prometheus.
|
|
75
|
-
* @param {*} value Значение фиксируемого показателя, игнорируется для типа "Counter".
|
|
76
|
-
* @return {PrometheusMetric} Экземпляр.
|
|
77
|
-
*/
|
|
78
|
-
spot (value) {
|
|
79
|
-
const instance = getOriginalInstance(this);
|
|
80
|
-
|
|
81
|
-
switch (this.metricType) {
|
|
82
|
-
case 'Counter':
|
|
83
|
-
instance.inc(this.labels, 1);
|
|
84
|
-
break;
|
|
85
|
-
case 'Summary':
|
|
86
|
-
case 'Histogram':
|
|
87
|
-
instance.observe(this.labels, value);
|
|
88
|
-
break;
|
|
89
|
-
case 'Gauge': {
|
|
90
|
-
const isPositive = value > 0;
|
|
91
|
-
const methodName = isPositive ? 'inc' : 'dec';
|
|
92
|
-
instance[methodName](Math.abs(value));
|
|
93
|
-
break;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
return this;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
|
-
export interface Props {
|
|
4
|
-
children: NonNullable<React.ReactNode> | null
|
|
5
|
-
fallback: NonNullable<React.ReactNode> | null
|
|
6
|
-
captureException?: (error: Error, errorInfo: React.ErrorInfo) => void
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Обработчик ошибок в React компонентах.
|
|
11
|
-
*/
|
|
12
|
-
export class ErrorBoundary extends React.Component<Props, { hasError: boolean }> {
|
|
13
|
-
/**
|
|
14
|
-
* @param props Свойства компонента.
|
|
15
|
-
* @param props.children Дочерний компонент.
|
|
16
|
-
* @param props.fallback Запасной элемент, если возникла ошибка.
|
|
17
|
-
* @param props.captureException Функция для логирования ошибки.
|
|
18
|
-
*/
|
|
19
|
-
constructor (props: Props) {
|
|
20
|
-
super(props);
|
|
21
|
-
|
|
22
|
-
this.state = { hasError: false };
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/** @inheritdoc */
|
|
26
|
-
static getDerivedStateFromError () {
|
|
27
|
-
return { hasError: true };
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/** @inheritdoc */
|
|
31
|
-
componentDidCatch (error: Error, errorInfo: React.ErrorInfo) {
|
|
32
|
-
const { captureException } = this.props;
|
|
33
|
-
|
|
34
|
-
captureException?.(error, errorInfo);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Рендер.
|
|
39
|
-
* @return Дочерний элемент либо запасное значение.
|
|
40
|
-
*/
|
|
41
|
-
render () {
|
|
42
|
-
const { children, fallback } = this.props;
|
|
43
|
-
|
|
44
|
-
return this.state.hasError ? fallback : children;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Обертка над Suspense c перехватом ошибок.
|
|
50
|
-
* @param props Свойства компонента.
|
|
51
|
-
* @param props.children Дочерний компонент.
|
|
52
|
-
* @param props.fallback Запасной элемент, если возникла ошибка.
|
|
53
|
-
* @param props.captureException Функция для логирования ошибки.
|
|
54
|
-
* @return Элемент.
|
|
55
|
-
*/
|
|
56
|
-
export const SafeSuspense = ({
|
|
57
|
-
children,
|
|
58
|
-
fallback,
|
|
59
|
-
captureException,
|
|
60
|
-
}: Props) => (
|
|
61
|
-
<React.Suspense fallback={fallback}>
|
|
62
|
-
<ErrorBoundary
|
|
63
|
-
children={children}
|
|
64
|
-
fallback={fallback}
|
|
65
|
-
captureException={captureException}
|
|
66
|
-
/>
|
|
67
|
-
</React.Suspense>
|
|
68
|
-
);
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { compose } from 'redux';
|
|
2
|
-
import isFunction from 'lodash/isFunction';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Создаёт функцию для композиции нескольких промежуточных обработчиков для применения в сторе
|
|
6
|
-
* и подключения redux devtools в среде разработки.
|
|
7
|
-
* @param {Object} options Опции.
|
|
8
|
-
* @param {Function} options.devToolsComposeCreator Функция для создания compose с redux dev tools.
|
|
9
|
-
* @param {Function} options.getName Функция возвращающая название сервиса.
|
|
10
|
-
* @param {Function} options.getDevToolsEnabled Функция опредяляющая нужно ли подключать dev tools.
|
|
11
|
-
* @return {Function} Функция для объединения нескольких промежуточных обработчиков в сторе.
|
|
12
|
-
*/
|
|
13
|
-
const createComposeMiddleware = ({
|
|
14
|
-
devToolsComposeCreator,
|
|
15
|
-
getName,
|
|
16
|
-
getDevToolsEnabled,
|
|
17
|
-
} = {}) =>
|
|
18
|
-
isFunction(devToolsComposeCreator) && isFunction(getName) && isFunction(getDevToolsEnabled) && getDevToolsEnabled()
|
|
19
|
-
? devToolsComposeCreator({
|
|
20
|
-
name: getName(),
|
|
21
|
-
})
|
|
22
|
-
: compose;
|
|
23
|
-
|
|
24
|
-
export default createComposeMiddleware;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import get from 'lodash/get';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Получает из глобального объекта функцию для создания функции compose c devtools.
|
|
5
|
-
* @return {Function | null} Функция для создания функции compose либо null, если функция не найдена.
|
|
6
|
-
*/
|
|
7
|
-
const getDevComposeCreator = () => get(window, '__REDUX_DEVTOOLS_EXTENSION_COMPOSE__', null);
|
|
8
|
-
|
|
9
|
-
export default getDevComposeCreator;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Оборачивает опциональный обработчик события готовности стора, добавляя отписку и опциональную очистку таймера.
|
|
3
|
-
* @param {Object} store Стор.
|
|
4
|
-
* @param {Function} unsubscribe Функция отписки от стора.
|
|
5
|
-
* @param {Function|*} onReady Опциональный обработчик события готовности стора.
|
|
6
|
-
* @return {Function} Обёрнутый обработчик готовности стора.
|
|
7
|
-
*/
|
|
8
|
-
const prepareOnReady = (store, unsubscribe, onReady) => timerId => {
|
|
9
|
-
unsubscribe();
|
|
10
|
-
|
|
11
|
-
timerId && clearTimeout(timerId);
|
|
12
|
-
|
|
13
|
-
onReady && onReady(store);
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export default prepareOnReady;
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
createReducer as pureCreateReducer,
|
|
3
|
-
} from 'reduxsauce';
|
|
4
|
-
import { STATUSES } from './constants';
|
|
5
|
-
import pipe from 'lodash/fp/pipe';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Приняв статус, вернет функцию,
|
|
9
|
-
* которая примет состояние и добавит в него статус в поле "status".
|
|
10
|
-
* @param {string} status Значение статуса.
|
|
11
|
-
* @return {function (Object): Object} Примет состояние и добавит в него статус в поле "status".
|
|
12
|
-
*/
|
|
13
|
-
const defaultStatusAdderMaker = status => state => ({
|
|
14
|
-
...state,
|
|
15
|
-
status,
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Возвращает новую функцию, которая вернет обернутый обработчик.
|
|
20
|
-
* Обернутый обработчик добавит статус в состояние с помощью переданной функции withStatus.
|
|
21
|
-
* @param {Function} withStatus Функция, добавляющая в состояние статус.
|
|
22
|
-
* @return {function (Function): Function} Функция, оборачивающая обработчик.
|
|
23
|
-
*/
|
|
24
|
-
const createHandleWithStatusMaker = withStatus => {
|
|
25
|
-
/**
|
|
26
|
-
* Приняв обработчик, вернет функцию,
|
|
27
|
-
* которая будет применять withStatus к результату обработчика.
|
|
28
|
-
* @param {Function} handler Обработчик.
|
|
29
|
-
* @return {*} Новое состояние.
|
|
30
|
-
*/
|
|
31
|
-
const handlerMaker = handler => {
|
|
32
|
-
const handleWithStatus = pipe(
|
|
33
|
-
handler,
|
|
34
|
-
withStatus
|
|
35
|
-
);
|
|
36
|
-
|
|
37
|
-
return handleWithStatus;
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
return handlerMaker;
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Модифицированная версия createReducer из пакета "reduxsauce".
|
|
45
|
-
* @param {*} initialState Начальное состояние.
|
|
46
|
-
* @param {function (Wrappers, Handlers): Object} createHandlers Должна вернуть набор обработчиков.
|
|
47
|
-
* @param {Object} [options] Опции.
|
|
48
|
-
* @param {Object} [options.createStatusAdder] Функция, которая добавит статус в состояние.
|
|
49
|
-
* @return {Function} Функция-reducer.
|
|
50
|
-
*/
|
|
51
|
-
export const createReducer = (
|
|
52
|
-
initialState,
|
|
53
|
-
createHandlers,
|
|
54
|
-
{
|
|
55
|
-
createStatusAdder = defaultStatusAdderMaker,
|
|
56
|
-
} = {}
|
|
57
|
-
) => {
|
|
58
|
-
/**
|
|
59
|
-
* @typedef {Object} Wrappers Набор оберток для обработчиков.
|
|
60
|
-
* @property {Function} asInitial Обернет переданный обработчик, добавляя в состояние статус "initial".
|
|
61
|
-
* @property {Function} asRequest Обернет переданный обработчик, добавляя в состояние статус "fetching".
|
|
62
|
-
* @property {Function} asSuccess Обернет переданный обработчик, добавляя в состояние статус "success".
|
|
63
|
-
* @property {Function} asFailure Обернет переданный обработчик, добавляя в состояние статус "failure".
|
|
64
|
-
*/
|
|
65
|
-
const wrappers = {
|
|
66
|
-
asInitial: createHandleWithStatusMaker(
|
|
67
|
-
createStatusAdder(STATUSES.initial)
|
|
68
|
-
),
|
|
69
|
-
asRequest: createHandleWithStatusMaker(
|
|
70
|
-
createStatusAdder(STATUSES.fetching)
|
|
71
|
-
),
|
|
72
|
-
asSuccess: createHandleWithStatusMaker(
|
|
73
|
-
createStatusAdder(STATUSES.success)
|
|
74
|
-
),
|
|
75
|
-
asFailure: createHandleWithStatusMaker(
|
|
76
|
-
createStatusAdder(STATUSES.failure)
|
|
77
|
-
),
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* @typedef {Object} Handlers Набор обработчиков.
|
|
82
|
-
* @property {Function} initial Обработает состояние, добавив статус "initial" с помощью createStatusAdder.
|
|
83
|
-
* @property {Function} request Обработает состояние, добавив статус "fetching" с помощью createStatusAdder.
|
|
84
|
-
* @property {Function} success Обработает состояние, добавив статус "success" с помощью createStatusAdder.
|
|
85
|
-
* @property {Function} failure Обработает состояние, добавив статус "failure" с помощью createStatusAdder.
|
|
86
|
-
*/
|
|
87
|
-
const handlers = {
|
|
88
|
-
initial: createStatusAdder(STATUSES.initial),
|
|
89
|
-
request: createStatusAdder(STATUSES.fetching),
|
|
90
|
-
success: createStatusAdder(STATUSES.success),
|
|
91
|
-
failure: createStatusAdder(STATUSES.failure),
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
return pureCreateReducer(
|
|
95
|
-
initialState,
|
|
96
|
-
createHandlers(wrappers, handlers)
|
|
97
|
-
);
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Возвращает функцию, создающую начальное состояние со статусом.
|
|
102
|
-
* @param {*} baseInitialState Начальное состояние.
|
|
103
|
-
* @param {Object} [options] Опции.
|
|
104
|
-
* @param {Function} [options.createStatusAdder] Получив статус, вернет функцию, которая применит его к состоянию.
|
|
105
|
-
* @return {Function} Функция, создающую начальное состояние со статусом.
|
|
106
|
-
*/
|
|
107
|
-
export const createStateMaker = (
|
|
108
|
-
baseInitialState = {},
|
|
109
|
-
{
|
|
110
|
-
createStatusAdder = defaultStatusAdderMaker,
|
|
111
|
-
} = {}
|
|
112
|
-
) => {
|
|
113
|
-
const addStatus = createStatusAdder(STATUSES.initial);
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Генерирует состояние с начальным статусом.
|
|
117
|
-
* @return {*} Состояние с начальным статусом.
|
|
118
|
-
*/
|
|
119
|
-
const createStateWithStatus = () => addStatus(
|
|
120
|
-
baseInitialState
|
|
121
|
-
);
|
|
122
|
-
|
|
123
|
-
return createStateWithStatus;
|
|
124
|
-
};
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { createSelector } from 'reselect';
|
|
2
|
-
import propEq from 'lodash/fp/propEq';
|
|
3
|
-
import identity from 'lodash/identity';
|
|
4
|
-
import { STATUSES } from '../constants';
|
|
5
|
-
|
|
6
|
-
const statusEq = propEq('status');
|
|
7
|
-
const isInitial = statusEq(STATUSES.initial);
|
|
8
|
-
const isFetching = statusEq(STATUSES.fetching);
|
|
9
|
-
const isSuccessful = statusEq(STATUSES.success);
|
|
10
|
-
const isFailed = statusEq(STATUSES.failure);
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Вернет новый набор селекторов статуса.
|
|
14
|
-
* @param {Function} [selectSection=identity] Вернет раздел состояния, у которого есть статус.
|
|
15
|
-
* @return {{ isInitial: Function, isFetching: Function, isSuccessful: Function, isFailed: Function }} Селекторы.
|
|
16
|
-
*/
|
|
17
|
-
const create = (selectSection = identity) => ({
|
|
18
|
-
isInitial: createSelector(selectSection, isInitial),
|
|
19
|
-
isFetching: createSelector(selectSection, isFetching),
|
|
20
|
-
isSuccessful: createSelector(selectSection, isSuccessful),
|
|
21
|
-
isFailed: createSelector(selectSection, isFailed),
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
export const StatusSelectors = {
|
|
25
|
-
create,
|
|
26
|
-
isInitial,
|
|
27
|
-
isFetching,
|
|
28
|
-
isSuccessful,
|
|
29
|
-
isFailed,
|
|
30
|
-
};
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import prepareOnReady from './prepare-on-ready';
|
|
2
|
-
import isFunction from 'lodash/isFunction';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Наблюдатель за готовностью стора.
|
|
6
|
-
* @param {Object} store Стор.
|
|
7
|
-
* @param {Function} isReady Функция определения готовности стора.
|
|
8
|
-
* @param {Function} onReady Функция обработчик события готовности стора.
|
|
9
|
-
* @param {Function} onTimeout Функция обработчик события таймаута ожидания готовности стора.
|
|
10
|
-
* @param {number} timeout Максимальное время, отведённое на ожидание готовности стора.
|
|
11
|
-
* @return {Object} Стор.
|
|
12
|
-
*/
|
|
13
|
-
const waitOnStoreReadiness = (
|
|
14
|
-
store,
|
|
15
|
-
isReady,
|
|
16
|
-
onReady,
|
|
17
|
-
onTimeout,
|
|
18
|
-
timeout = 2 ** 30
|
|
19
|
-
) => {
|
|
20
|
-
let timer = null;
|
|
21
|
-
const wrapperOnReady = prepareOnReady(
|
|
22
|
-
store,
|
|
23
|
-
store.subscribe(
|
|
24
|
-
() => {
|
|
25
|
-
isReady(store) && wrapperOnReady(timer);
|
|
26
|
-
}
|
|
27
|
-
),
|
|
28
|
-
onReady
|
|
29
|
-
);
|
|
30
|
-
timer = setTimeout(
|
|
31
|
-
() => {
|
|
32
|
-
wrapperOnReady();
|
|
33
|
-
isFunction(onTimeout) && onTimeout(store);
|
|
34
|
-
},
|
|
35
|
-
timeout
|
|
36
|
-
);
|
|
37
|
-
return store;
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
export default waitOnStoreReadiness;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { renderToString } from 'react-dom/server';
|
|
3
|
-
import { Provider } from 'react-redux';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Возвращает функцию формирующую данные React-приложения.
|
|
7
|
-
* @param {Object} param Параметры.
|
|
8
|
-
* @param {ReactElement} param.app Главный компонент приложения.
|
|
9
|
-
* @param {Object} param.store Объект глобального состояния приложения.
|
|
10
|
-
* @param {string} param.key Ключ.
|
|
11
|
-
* @return {Function} Функция формирующая данные React-приложения.
|
|
12
|
-
*/
|
|
13
|
-
const getReactMarkupData = ({ app: App, store, key = 'markup' }) => data => ({
|
|
14
|
-
...data,
|
|
15
|
-
[key]: renderToString(<Provider store={store}><App /></Provider>),
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
export default getReactMarkupData;
|