@sima-land/isomorph 11.0.0-alpha.7 → 11.0.0-alpha.71
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/README.md +26 -0
- package/dist/cjs/cache/index.js +6 -0
- package/dist/cjs/cache/index.js.map +1 -0
- package/dist/cjs/cache/types.js +6 -0
- package/dist/cjs/cache/types.js.map +1 -0
- package/dist/cjs/config/base.js +22 -0
- package/dist/cjs/config/base.js.map +1 -0
- package/dist/cjs/config/index.js +20 -0
- package/dist/cjs/config/index.js.map +1 -0
- package/dist/cjs/config/source.js +30 -0
- package/dist/cjs/config/source.js.map +1 -0
- package/dist/cjs/config/types.js +6 -0
- package/dist/cjs/config/types.js.map +1 -0
- package/dist/cjs/di/application.js +106 -0
- package/dist/cjs/di/application.js.map +1 -0
- package/dist/cjs/di/container.js +55 -0
- package/dist/cjs/di/container.js.map +1 -0
- package/dist/cjs/di/errors.js +65 -0
- package/dist/cjs/di/errors.js.map +1 -0
- package/dist/cjs/di/index.js +59 -0
- package/dist/cjs/di/index.js.map +1 -0
- package/dist/cjs/di/preset.js +32 -0
- package/dist/cjs/di/preset.js.map +1 -0
- package/dist/cjs/di/token.js +44 -0
- package/dist/cjs/di/token.js.map +1 -0
- package/dist/cjs/di/types.js +6 -0
- package/dist/cjs/di/types.js.map +1 -0
- package/dist/cjs/http/errors.js +55 -0
- package/dist/cjs/http/errors.js.map +1 -0
- package/dist/cjs/http/index.js +64 -0
- package/dist/cjs/http/index.js.map +1 -0
- package/dist/cjs/http/types.js +6 -0
- package/dist/cjs/http/types.js.map +1 -0
- package/dist/cjs/http/utils.js +168 -0
- package/dist/cjs/http/utils.js.map +1 -0
- package/dist/cjs/log/errors.js +35 -0
- package/dist/cjs/log/errors.js.map +1 -0
- package/dist/cjs/log/handler/pino.js +31 -0
- package/dist/cjs/log/handler/pino.js.map +1 -0
- package/dist/cjs/log/handler/sentry.js +53 -0
- package/dist/cjs/log/handler/sentry.js.map +1 -0
- package/dist/cjs/log/index.js +40 -0
- package/dist/cjs/log/index.js.map +1 -0
- package/dist/cjs/log/logger.js +35 -0
- package/dist/cjs/log/logger.js.map +1 -0
- package/dist/cjs/log/types.js +6 -0
- package/dist/cjs/log/types.js.map +1 -0
- package/dist/cjs/package.json +38 -0
- package/dist/cjs/preset/isomorphic/index.js +69 -0
- package/dist/cjs/preset/isomorphic/index.js.map +1 -0
- package/dist/cjs/preset/isomorphic/providers/abort-controller.js +14 -0
- package/dist/cjs/preset/isomorphic/providers/abort-controller.js.map +1 -0
- package/dist/cjs/preset/isomorphic/providers/axios-factory.js +24 -0
- package/dist/cjs/preset/isomorphic/providers/axios-factory.js.map +1 -0
- package/dist/cjs/preset/isomorphic/providers/axios-log-handler.js +18 -0
- package/dist/cjs/preset/isomorphic/providers/axios-log-handler.js.map +1 -0
- package/dist/cjs/preset/isomorphic/providers/base-config.js +18 -0
- package/dist/cjs/preset/isomorphic/providers/base-config.js.map +1 -0
- package/dist/cjs/preset/isomorphic/providers/fetch.js +18 -0
- package/dist/cjs/preset/isomorphic/providers/fetch.js.map +1 -0
- package/dist/cjs/preset/isomorphic/providers/redux-middleware-saga.js +26 -0
- package/dist/cjs/preset/isomorphic/providers/redux-middleware-saga.js.map +1 -0
- package/dist/cjs/preset/isomorphic/types.js +6 -0
- package/dist/cjs/preset/isomorphic/types.js.map +1 -0
- package/dist/cjs/preset/isomorphic/utils/axios-logging.js +165 -0
- package/dist/cjs/preset/isomorphic/utils/axios-logging.js.map +1 -0
- package/dist/cjs/preset/isomorphic/utils/disableable.js +32 -0
- package/dist/cjs/preset/isomorphic/utils/disableable.js.map +1 -0
- package/dist/cjs/preset/isomorphic/utils/display-url.js +32 -0
- package/dist/cjs/preset/isomorphic/utils/display-url.js.map +1 -0
- package/dist/cjs/preset/isomorphic/utils/fetch-logging.js +113 -0
- package/dist/cjs/preset/isomorphic/utils/fetch-logging.js.map +1 -0
- package/dist/cjs/preset/isomorphic/utils/get-fetch-error-logging.js +21 -0
- package/dist/cjs/preset/isomorphic/utils/get-fetch-error-logging.js.map +1 -0
- package/dist/cjs/preset/isomorphic/utils/get-fetch-extra-aborting.js +31 -0
- package/dist/cjs/preset/isomorphic/utils/get-fetch-extra-aborting.js.map +1 -0
- package/dist/cjs/preset/isomorphic/utils/get-fetch-logging.js +25 -0
- package/dist/cjs/preset/isomorphic/utils/get-fetch-logging.js.map +1 -0
- package/dist/cjs/preset/isomorphic/utils/http-api-host-pool.js +46 -0
- package/dist/cjs/preset/isomorphic/utils/http-api-host-pool.js.map +1 -0
- package/dist/cjs/preset/isomorphic/utils/http-status.js +70 -0
- package/dist/cjs/preset/isomorphic/utils/http-status.js.map +1 -0
- package/dist/cjs/preset/isomorphic/utils/saga-logging.js +54 -0
- package/dist/cjs/preset/isomorphic/utils/saga-logging.js.map +1 -0
- package/dist/cjs/preset/isomorphic/utils/severity-from-status.js +30 -0
- package/dist/cjs/preset/isomorphic/utils/severity-from-status.js.map +1 -0
- package/dist/cjs/preset/node/index.js +121 -0
- package/dist/cjs/preset/node/index.js.map +1 -0
- package/dist/cjs/preset/node/providers/config-source.js +30 -0
- package/dist/cjs/preset/node/providers/config-source.js.map +1 -0
- package/dist/cjs/preset/node/providers/express-error-middleware.js +15 -0
- package/dist/cjs/preset/node/providers/express-error-middleware.js.map +1 -0
- package/dist/cjs/preset/node/providers/express-factory.js +16 -0
- package/dist/cjs/preset/node/providers/express-factory.js.map +1 -0
- package/dist/cjs/preset/node/providers/express-log-middleware.js +45 -0
- package/dist/cjs/preset/node/providers/express-log-middleware.js.map +1 -0
- package/dist/cjs/preset/node/providers/express-metrics-middleware.js +60 -0
- package/dist/cjs/preset/node/providers/express-metrics-middleware.js.map +1 -0
- package/dist/cjs/preset/node/providers/express-request-middleware.js +20 -0
- package/dist/cjs/preset/node/providers/express-request-middleware.js.map +1 -0
- package/dist/cjs/preset/node/providers/express-tracing-middleware.js +67 -0
- package/dist/cjs/preset/node/providers/express-tracing-middleware.js.map +1 -0
- package/dist/cjs/preset/node/providers/log-handler-pino.js +32 -0
- package/dist/cjs/preset/node/providers/log-handler-pino.js.map +1 -0
- package/dist/cjs/preset/node/providers/log-handler-sentry.js +35 -0
- package/dist/cjs/preset/node/providers/log-handler-sentry.js.map +1 -0
- package/dist/cjs/preset/node/providers/logger.js +23 -0
- package/dist/cjs/preset/node/providers/logger.js.map +1 -0
- package/dist/cjs/preset/node/providers/main-express-app.js +73 -0
- package/dist/cjs/preset/node/providers/main-express-app.js.map +1 -0
- package/dist/cjs/preset/node/providers/metrics-express-app.js +25 -0
- package/dist/cjs/preset/node/providers/metrics-express-app.js.map +1 -0
- package/dist/cjs/preset/node/providers/public-envs.js +22 -0
- package/dist/cjs/preset/node/providers/public-envs.js.map +1 -0
- package/dist/cjs/preset/node/providers/telemetry-tracer-provider.js +24 -0
- package/dist/cjs/preset/node/providers/telemetry-tracer-provider.js.map +1 -0
- package/dist/cjs/preset/node/providers/telemetry-tracer-resource.js +27 -0
- package/dist/cjs/preset/node/providers/telemetry-tracer-resource.js.map +1 -0
- package/dist/cjs/preset/node/providers/telemetry-tracer-span-exporter.js +28 -0
- package/dist/cjs/preset/node/providers/telemetry-tracer-span-exporter.js.map +1 -0
- package/dist/cjs/preset/node/providers/telemetry-tracer.js +18 -0
- package/dist/cjs/preset/node/providers/telemetry-tracer.js.map +1 -0
- package/dist/cjs/preset/node/types.js +6 -0
- package/dist/cjs/preset/node/types.js.map +1 -0
- package/dist/cjs/preset/node/utils/axios-tracing-middleware.js +66 -0
- package/dist/cjs/preset/node/utils/axios-tracing-middleware.js.map +1 -0
- package/dist/cjs/preset/node/utils/emitter-as-target.js +52 -0
- package/dist/cjs/preset/node/utils/emitter-as-target.js.map +1 -0
- package/dist/cjs/preset/node/utils/get-client-ip.js +18 -0
- package/dist/cjs/preset/node/utils/get-client-ip.js.map +1 -0
- package/dist/cjs/preset/node/utils/get-fetch-tracing.js +41 -0
- package/dist/cjs/preset/node/utils/get-fetch-tracing.js.map +1 -0
- package/dist/cjs/preset/node/utils/get-forwarded-headers.js +36 -0
- package/dist/cjs/preset/node/utils/get-forwarded-headers.js.map +1 -0
- package/dist/cjs/preset/node/utils/get-handler-metrics.js +43 -0
- package/dist/cjs/preset/node/utils/get-handler-metrics.js.map +1 -0
- package/dist/cjs/preset/node/utils/get-page-response-format.js +21 -0
- package/dist/cjs/preset/node/utils/get-page-response-format.js.map +1 -0
- package/dist/cjs/preset/node/utils/get-serve-measuring.js +57 -0
- package/dist/cjs/preset/node/utils/get-serve-measuring.js.map +1 -0
- package/dist/cjs/preset/node/utils/handler-provider.js +29 -0
- package/dist/cjs/preset/node/utils/handler-provider.js.map +1 -0
- package/dist/cjs/preset/node/utils/telemetry.js +23 -0
- package/dist/cjs/preset/node/utils/telemetry.js.map +1 -0
- package/dist/cjs/preset/node-handler/index.js +73 -0
- package/dist/cjs/preset/node-handler/index.js.map +1 -0
- package/dist/cjs/preset/node-handler/providers/accepts-type.js +17 -0
- package/dist/cjs/preset/node-handler/providers/accepts-type.js.map +1 -0
- package/dist/cjs/preset/node-handler/providers/axios-log-handler.js +25 -0
- package/dist/cjs/preset/node-handler/providers/axios-log-handler.js.map +1 -0
- package/dist/cjs/preset/node-handler/providers/axios-middleware.js +54 -0
- package/dist/cjs/preset/node-handler/providers/axios-middleware.js.map +1 -0
- package/dist/cjs/preset/node-handler/providers/fetch-middleware.js +35 -0
- package/dist/cjs/preset/node-handler/providers/fetch-middleware.js.map +1 -0
- package/dist/cjs/preset/node-handler/providers/handler-main.js +66 -0
- package/dist/cjs/preset/node-handler/providers/handler-main.js.map +1 -0
- package/dist/cjs/preset/node-handler/providers/response-events.js +18 -0
- package/dist/cjs/preset/node-handler/providers/response-events.js.map +1 -0
- package/dist/cjs/preset/node-handler/providers/specific-params.js +28 -0
- package/dist/cjs/preset/node-handler/providers/specific-params.js.map +1 -0
- package/dist/cjs/preset/server/constants.js +21 -0
- package/dist/cjs/preset/server/constants.js.map +1 -0
- package/dist/cjs/preset/server/index.js +95 -0
- package/dist/cjs/preset/server/index.js.map +1 -0
- package/dist/cjs/preset/server/providers/element-to-string.js +24 -0
- package/dist/cjs/preset/server/providers/element-to-string.js.map +1 -0
- package/dist/cjs/preset/server/providers/fetch-log-handler.js +23 -0
- package/dist/cjs/preset/server/providers/fetch-log-handler.js.map +1 -0
- package/dist/cjs/preset/server/providers/fetch-middleware.js +13 -0
- package/dist/cjs/preset/server/providers/fetch-middleware.js.map +1 -0
- package/dist/cjs/preset/server/providers/format-page-response.js +71 -0
- package/dist/cjs/preset/server/providers/format-page-response.js.map +1 -0
- package/dist/cjs/preset/server/providers/known-http-api-hosts.js +26 -0
- package/dist/cjs/preset/server/providers/known-http-api-hosts.js.map +1 -0
- package/dist/cjs/preset/server/providers/page-helmet.js +21 -0
- package/dist/cjs/preset/server/providers/page-helmet.js.map +1 -0
- package/dist/cjs/preset/server/providers/page-render.js +21 -0
- package/dist/cjs/preset/server/providers/page-render.js.map +1 -0
- package/dist/cjs/preset/server/providers/response-events.js +17 -0
- package/dist/cjs/preset/server/providers/response-events.js.map +1 -0
- package/dist/cjs/preset/server/providers/serve.js +48 -0
- package/dist/cjs/preset/server/providers/serve.js.map +1 -0
- package/dist/cjs/preset/server/providers/ssr-bridge-server-side.js +18 -0
- package/dist/cjs/preset/server/providers/ssr-bridge-server-side.js.map +1 -0
- package/dist/cjs/preset/server/types.js +6 -0
- package/dist/cjs/preset/server/types.js.map +1 -0
- package/dist/cjs/preset/server/utils/apply-server-middleware.js +22 -0
- package/dist/cjs/preset/server/utils/apply-server-middleware.js.map +1 -0
- package/dist/cjs/preset/server/utils/format-handler-error.js +40 -0
- package/dist/cjs/preset/server/utils/format-handler-error.js.map +1 -0
- package/dist/cjs/preset/server/utils/get-client-ip.js +16 -0
- package/dist/cjs/preset/server/utils/get-client-ip.js.map +1 -0
- package/dist/cjs/preset/server/utils/get-forwarded-headers.js +40 -0
- package/dist/cjs/preset/server/utils/get-forwarded-headers.js.map +1 -0
- package/dist/cjs/preset/server/utils/get-health-check.js +22 -0
- package/dist/cjs/preset/server/utils/get-health-check.js.map +1 -0
- package/dist/cjs/preset/server/utils/get-page-response-format.js +22 -0
- package/dist/cjs/preset/server/utils/get-page-response-format.js.map +1 -0
- package/dist/cjs/preset/server/utils/get-serve-error-logging.js +36 -0
- package/dist/cjs/preset/server/utils/get-serve-error-logging.js.map +1 -0
- package/dist/cjs/preset/server/utils/get-serve-logging.js +36 -0
- package/dist/cjs/preset/server/utils/get-serve-logging.js.map +1 -0
- package/dist/cjs/preset/server/utils/handler-provider.js +30 -0
- package/dist/cjs/preset/server/utils/handler-provider.js.map +1 -0
- package/dist/cjs/preset/server/utils/regular-helmet.js +68 -0
- package/dist/cjs/preset/server/utils/regular-helmet.js.map +1 -0
- package/dist/cjs/preset/server/utils/specific-extras.js +30 -0
- package/dist/cjs/preset/server/utils/specific-extras.js.map +1 -0
- package/dist/cjs/preset/web/index.js +46 -0
- package/dist/cjs/preset/web/index.js.map +1 -0
- package/dist/cjs/preset/web/providers/axios-middleware.js +19 -0
- package/dist/cjs/preset/web/providers/axios-middleware.js.map +1 -0
- package/dist/cjs/preset/web/providers/config-source.js +19 -0
- package/dist/cjs/preset/web/providers/config-source.js.map +1 -0
- package/dist/cjs/preset/web/providers/fetch-middleware.js +21 -0
- package/dist/cjs/preset/web/providers/fetch-middleware.js.map +1 -0
- package/dist/cjs/preset/web/providers/known-http-api-hosts.js +26 -0
- package/dist/cjs/preset/web/providers/known-http-api-hosts.js.map +1 -0
- package/dist/cjs/preset/web/providers/logger.js +51 -0
- package/dist/cjs/preset/web/providers/logger.js.map +1 -0
- package/dist/cjs/preset/web/providers/ssr-bridge-client-side.js +18 -0
- package/dist/cjs/preset/web/providers/ssr-bridge-client-side.js.map +1 -0
- package/dist/cjs/tokens.js +179 -0
- package/dist/cjs/tokens.js.map +1 -0
- package/dist/cjs/utils/axios/index.js +33 -0
- package/dist/cjs/utils/axios/index.js.map +1 -0
- package/dist/cjs/utils/axios/middleware/log.js +37 -0
- package/dist/cjs/utils/axios/middleware/log.js.map +1 -0
- package/dist/cjs/utils/axios/sauce/index.js +57 -0
- package/dist/cjs/utils/axios/sauce/index.js.map +1 -0
- package/dist/cjs/utils/axios/utils/index.js +30 -0
- package/dist/cjs/utils/axios/utils/index.js.map +1 -0
- package/dist/cjs/utils/express/handler/health-check.js +19 -0
- package/dist/cjs/utils/express/handler/health-check.js.map +1 -0
- package/dist/cjs/utils/express/index.js +20 -0
- package/dist/cjs/utils/express/index.js.map +1 -0
- package/dist/cjs/utils/express/utils/index.js +22 -0
- package/dist/cjs/utils/express/utils/index.js.map +1 -0
- package/dist/cjs/utils/function.js +44 -0
- package/dist/cjs/utils/function.js.map +1 -0
- package/dist/cjs/utils/index.js +27 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/{utils/number.js → dist/cjs/utils/math.js} +7 -5
- package/dist/cjs/utils/math.js.map +1 -0
- package/dist/cjs/utils/react/error-handlers/index.js +80 -0
- package/dist/cjs/utils/react/error-handlers/index.js.map +1 -0
- package/dist/cjs/utils/react/index.js +19 -0
- package/dist/cjs/utils/react/index.js.map +1 -0
- package/dist/cjs/utils/redux/index.js +19 -0
- package/dist/cjs/utils/redux/index.js.map +1 -0
- package/dist/cjs/utils/redux/remote-data.js +119 -0
- package/dist/cjs/utils/redux/remote-data.js.map +1 -0
- package/dist/cjs/utils/redux-saga/index.js +63 -0
- package/dist/cjs/utils/redux-saga/index.js.map +1 -0
- package/dist/cjs/utils/redux-saga/middleware.js +148 -0
- package/dist/cjs/utils/redux-saga/middleware.js.map +1 -0
- package/dist/cjs/utils/redux-saga/take-chain.js +66 -0
- package/dist/cjs/utils/redux-saga/take-chain.js.map +1 -0
- package/dist/cjs/utils/redux-saga/typed-effects.js +98 -0
- package/dist/cjs/utils/redux-saga/typed-effects.js.map +1 -0
- package/dist/cjs/utils/redux-saga/types.js +6 -0
- package/dist/cjs/utils/redux-saga/types.js.map +1 -0
- package/dist/cjs/utils/selectors/create-curried-selector.js +41 -0
- package/dist/cjs/utils/selectors/create-curried-selector.js.map +1 -0
- package/dist/cjs/utils/ssr/index.js +74 -0
- package/dist/cjs/utils/ssr/index.js.map +1 -0
- package/dist/cjs/utils/web/analytics/data-layer.js +20 -0
- package/dist/cjs/utils/web/analytics/data-layer.js.map +1 -0
- package/dist/cjs/utils/web/analytics/index.js +20 -0
- package/dist/cjs/utils/web/analytics/index.js.map +1 -0
- package/dist/cjs/utils/web/analytics/oko.js +20 -0
- package/dist/cjs/utils/web/analytics/oko.js.map +1 -0
- package/dist/cjs/utils/web/storage/index.js +74 -0
- package/dist/cjs/utils/web/storage/index.js.map +1 -0
- package/dist/cjs/utils/webpack/env/index.js +97 -0
- package/dist/cjs/utils/webpack/env/index.js.map +1 -0
- package/dist/cjs/utils/webpack/env/types.js +6 -0
- package/dist/cjs/utils/webpack/env/types.js.map +1 -0
- package/dist/cjs/utils/webpack/env/utils.js +55 -0
- package/dist/cjs/utils/webpack/env/utils.js.map +1 -0
- package/dist/cjs/utils/webpack/index.js +26 -0
- package/dist/cjs/utils/webpack/index.js.map +1 -0
- package/dist/cjs/utils/webpack/module-federation/index.js +109 -0
- package/dist/cjs/utils/webpack/module-federation/index.js.map +1 -0
- package/dist/cjs/utils/webpack/module-federation/types.js +6 -0
- package/dist/cjs/utils/webpack/module-federation/types.js.map +1 -0
- package/dist/cjs/utils/webpack/module-federation/utils.js +87 -0
- package/dist/cjs/utils/webpack/module-federation/utils.js.map +1 -0
- package/dist/esm/cache/index.js +2 -0
- package/dist/esm/cache/index.js.map +1 -0
- package/dist/esm/cache/types.js +2 -0
- package/dist/esm/cache/types.js.map +1 -0
- package/dist/esm/config/base.js +16 -0
- package/dist/esm/config/base.js.map +1 -0
- package/dist/esm/config/index.js +3 -0
- package/dist/esm/config/index.js.map +1 -0
- package/dist/esm/config/source.js +24 -0
- package/dist/esm/config/source.js.map +1 -0
- package/dist/esm/config/types.js +2 -0
- package/dist/esm/config/types.js.map +1 -0
- package/dist/esm/di/application.js +100 -0
- package/dist/esm/di/application.js.map +1 -0
- package/dist/esm/di/container.js +49 -0
- package/dist/esm/di/container.js.map +1 -0
- package/dist/esm/di/errors.js +56 -0
- package/dist/esm/di/errors.js.map +1 -0
- package/dist/esm/di/index.js +6 -0
- package/dist/esm/di/index.js.map +1 -0
- package/dist/esm/di/preset.js +26 -0
- package/dist/esm/di/preset.js.map +1 -0
- package/dist/esm/di/token.js +38 -0
- package/dist/esm/di/token.js.map +1 -0
- package/dist/esm/di/types.js +2 -0
- package/dist/esm/di/types.js.map +1 -0
- package/dist/esm/http/errors.js +47 -0
- package/dist/esm/http/errors.js.map +1 -0
- package/dist/esm/http/index.js +5 -0
- package/dist/esm/http/index.js.map +1 -0
- package/dist/esm/http/types.js +2 -0
- package/dist/esm/http/types.js.map +1 -0
- package/dist/esm/http/utils.js +160 -0
- package/dist/esm/http/utils.js.map +1 -0
- package/dist/esm/log/errors.js +27 -0
- package/dist/esm/log/errors.js.map +1 -0
- package/dist/esm/log/handler/pino.js +25 -0
- package/dist/esm/log/handler/pino.js.map +1 -0
- package/dist/esm/log/handler/sentry.js +47 -0
- package/dist/esm/log/handler/sentry.js.map +1 -0
- package/dist/esm/log/index.js +5 -0
- package/dist/esm/log/index.js.map +1 -0
- package/dist/esm/log/logger.js +29 -0
- package/dist/esm/log/logger.js.map +1 -0
- package/dist/esm/log/types.js +2 -0
- package/dist/esm/log/types.js.map +1 -0
- package/dist/esm/package.json +38 -0
- package/dist/esm/preset/isomorphic/index.js +11 -0
- package/dist/esm/preset/isomorphic/index.js.map +1 -0
- package/dist/esm/preset/isomorphic/providers/abort-controller.js +8 -0
- package/dist/esm/preset/isomorphic/providers/abort-controller.js.map +1 -0
- package/dist/esm/preset/isomorphic/providers/axios-factory.js +19 -0
- package/dist/esm/preset/isomorphic/providers/axios-factory.js.map +1 -0
- package/dist/esm/preset/isomorphic/providers/axios-log-handler.js +13 -0
- package/dist/esm/preset/isomorphic/providers/axios-log-handler.js.map +1 -0
- package/dist/esm/preset/isomorphic/providers/base-config.js +13 -0
- package/dist/esm/preset/isomorphic/providers/base-config.js.map +1 -0
- package/dist/esm/preset/isomorphic/providers/fetch.js +13 -0
- package/dist/esm/preset/isomorphic/providers/fetch.js.map +1 -0
- package/dist/esm/preset/isomorphic/providers/redux-middleware-saga.js +20 -0
- package/dist/esm/preset/isomorphic/providers/redux-middleware-saga.js.map +1 -0
- package/dist/esm/preset/isomorphic/types.js +2 -0
- package/dist/esm/preset/isomorphic/types.js.map +1 -0
- package/dist/esm/preset/isomorphic/utils/axios-logging.js +158 -0
- package/dist/esm/preset/isomorphic/utils/axios-logging.js.map +1 -0
- package/dist/esm/preset/isomorphic/utils/disableable.js +25 -0
- package/dist/esm/preset/isomorphic/utils/disableable.js.map +1 -0
- package/dist/esm/preset/isomorphic/utils/display-url.js +26 -0
- package/dist/esm/preset/isomorphic/utils/display-url.js.map +1 -0
- package/dist/esm/preset/isomorphic/utils/fetch-logging.js +107 -0
- package/dist/esm/preset/isomorphic/utils/fetch-logging.js.map +1 -0
- package/dist/esm/preset/isomorphic/utils/get-fetch-error-logging.js +16 -0
- package/dist/esm/preset/isomorphic/utils/get-fetch-error-logging.js.map +1 -0
- package/dist/esm/preset/isomorphic/utils/get-fetch-extra-aborting.js +25 -0
- package/dist/esm/preset/isomorphic/utils/get-fetch-extra-aborting.js.map +1 -0
- package/dist/esm/preset/isomorphic/utils/get-fetch-logging.js +20 -0
- package/dist/esm/preset/isomorphic/utils/get-fetch-logging.js.map +1 -0
- package/dist/esm/preset/isomorphic/utils/http-api-host-pool.js +39 -0
- package/dist/esm/preset/isomorphic/utils/http-api-host-pool.js.map +1 -0
- package/dist/esm/preset/isomorphic/utils/http-status.js +63 -0
- package/dist/esm/preset/isomorphic/utils/http-status.js.map +1 -0
- package/dist/esm/preset/isomorphic/utils/saga-logging.js +47 -0
- package/dist/esm/preset/isomorphic/utils/saga-logging.js.map +1 -0
- package/dist/esm/preset/isomorphic/utils/severity-from-status.js +24 -0
- package/dist/esm/preset/isomorphic/utils/severity-from-status.js.map +1 -0
- package/dist/esm/preset/node/index.js +91 -0
- package/dist/esm/preset/node/index.js.map +1 -0
- package/dist/esm/preset/node/providers/config-source.js +24 -0
- package/dist/esm/preset/node/providers/config-source.js.map +1 -0
- package/dist/esm/preset/node/providers/express-error-middleware.js +9 -0
- package/dist/esm/preset/node/providers/express-error-middleware.js.map +1 -0
- package/dist/esm/preset/node/providers/express-factory.js +10 -0
- package/dist/esm/preset/node/providers/express-factory.js.map +1 -0
- package/dist/esm/preset/node/providers/express-log-middleware.js +40 -0
- package/dist/esm/preset/node/providers/express-log-middleware.js.map +1 -0
- package/dist/esm/preset/node/providers/express-metrics-middleware.js +55 -0
- package/dist/esm/preset/node/providers/express-metrics-middleware.js.map +1 -0
- package/dist/esm/preset/node/providers/express-request-middleware.js +14 -0
- package/dist/esm/preset/node/providers/express-request-middleware.js.map +1 -0
- package/dist/esm/preset/node/providers/express-tracing-middleware.js +62 -0
- package/dist/esm/preset/node/providers/express-tracing-middleware.js.map +1 -0
- package/dist/esm/preset/node/providers/log-handler-pino.js +26 -0
- package/dist/esm/preset/node/providers/log-handler-pino.js.map +1 -0
- package/dist/esm/preset/node/providers/log-handler-sentry.js +30 -0
- package/dist/esm/preset/node/providers/log-handler-sentry.js.map +1 -0
- package/dist/esm/preset/node/providers/logger.js +18 -0
- package/dist/esm/preset/node/providers/logger.js.map +1 -0
- package/dist/esm/preset/node/providers/main-express-app.js +67 -0
- package/dist/esm/preset/node/providers/main-express-app.js.map +1 -0
- package/dist/esm/preset/node/providers/metrics-express-app.js +18 -0
- package/dist/esm/preset/node/providers/metrics-express-app.js.map +1 -0
- package/dist/esm/preset/node/providers/public-envs.js +16 -0
- package/dist/esm/preset/node/providers/public-envs.js.map +1 -0
- package/dist/esm/preset/node/providers/telemetry-tracer-provider.js +19 -0
- package/dist/esm/preset/node/providers/telemetry-tracer-provider.js.map +1 -0
- package/dist/esm/preset/node/providers/telemetry-tracer-resource.js +20 -0
- package/dist/esm/preset/node/providers/telemetry-tracer-resource.js.map +1 -0
- package/dist/esm/preset/node/providers/telemetry-tracer-span-exporter.js +22 -0
- package/dist/esm/preset/node/providers/telemetry-tracer-span-exporter.js.map +1 -0
- package/dist/esm/preset/node/providers/telemetry-tracer.js +13 -0
- package/dist/esm/preset/node/providers/telemetry-tracer.js.map +1 -0
- package/dist/esm/preset/node/types.js +2 -0
- package/dist/esm/preset/node/types.js.map +1 -0
- package/dist/esm/preset/node/utils/axios-tracing-middleware.js +60 -0
- package/dist/esm/preset/node/utils/axios-tracing-middleware.js.map +1 -0
- package/dist/esm/preset/node/utils/emitter-as-target.js +45 -0
- package/dist/esm/preset/node/utils/emitter-as-target.js.map +1 -0
- package/dist/esm/preset/node/utils/get-client-ip.js +12 -0
- package/dist/esm/preset/node/utils/get-client-ip.js.map +1 -0
- package/dist/esm/preset/node/utils/get-fetch-tracing.js +36 -0
- package/dist/esm/preset/node/utils/get-fetch-tracing.js.map +1 -0
- package/dist/esm/preset/node/utils/get-forwarded-headers.js +31 -0
- package/dist/esm/preset/node/utils/get-forwarded-headers.js.map +1 -0
- package/dist/esm/preset/node/utils/get-handler-metrics.js +35 -0
- package/dist/esm/preset/node/utils/get-handler-metrics.js.map +1 -0
- package/dist/esm/preset/node/utils/get-page-response-format.js +15 -0
- package/dist/esm/preset/node/utils/get-page-response-format.js.map +1 -0
- package/dist/esm/preset/node/utils/get-serve-measuring.js +52 -0
- package/dist/esm/preset/node/utils/get-serve-measuring.js.map +1 -0
- package/dist/esm/preset/node/utils/handler-provider.js +24 -0
- package/dist/esm/preset/node/utils/handler-provider.js.map +1 -0
- package/dist/esm/preset/node/utils/telemetry.js +18 -0
- package/dist/esm/preset/node/utils/telemetry.js.map +1 -0
- package/dist/esm/preset/node-handler/index.js +68 -0
- package/dist/esm/preset/node-handler/index.js.map +1 -0
- package/dist/esm/preset/node-handler/providers/accepts-type.js +12 -0
- package/dist/esm/preset/node-handler/providers/accepts-type.js.map +1 -0
- package/dist/esm/preset/node-handler/providers/axios-log-handler.js +20 -0
- package/dist/esm/preset/node-handler/providers/axios-log-handler.js.map +1 -0
- package/dist/esm/preset/node-handler/providers/axios-middleware.js +49 -0
- package/dist/esm/preset/node-handler/providers/axios-middleware.js.map +1 -0
- package/dist/esm/preset/node-handler/providers/fetch-middleware.js +30 -0
- package/dist/esm/preset/node-handler/providers/fetch-middleware.js.map +1 -0
- package/dist/esm/preset/node-handler/providers/handler-main.js +58 -0
- package/dist/esm/preset/node-handler/providers/handler-main.js.map +1 -0
- package/dist/esm/preset/node-handler/providers/response-events.js +13 -0
- package/dist/esm/preset/node-handler/providers/response-events.js.map +1 -0
- package/dist/esm/preset/node-handler/providers/specific-params.js +23 -0
- package/dist/esm/preset/node-handler/providers/specific-params.js.map +1 -0
- package/dist/esm/preset/server/constants.js +15 -0
- package/dist/esm/preset/server/constants.js.map +1 -0
- package/dist/esm/preset/server/index.js +14 -0
- package/dist/esm/preset/server/index.js.map +1 -0
- package/dist/esm/preset/server/providers/element-to-string.js +19 -0
- package/dist/esm/preset/server/providers/element-to-string.js.map +1 -0
- package/dist/esm/preset/server/providers/fetch-log-handler.js +18 -0
- package/dist/esm/preset/server/providers/fetch-log-handler.js.map +1 -0
- package/dist/esm/preset/server/providers/fetch-middleware.js +7 -0
- package/dist/esm/preset/server/providers/fetch-middleware.js.map +1 -0
- package/dist/esm/preset/server/providers/format-page-response.js +66 -0
- package/dist/esm/preset/server/providers/format-page-response.js.map +1 -0
- package/dist/esm/preset/server/providers/known-http-api-hosts.js +21 -0
- package/dist/esm/preset/server/providers/known-http-api-hosts.js.map +1 -0
- package/dist/esm/preset/server/providers/page-helmet.js +16 -0
- package/dist/esm/preset/server/providers/page-helmet.js.map +1 -0
- package/dist/esm/preset/server/providers/page-render.js +9 -0
- package/dist/esm/preset/server/providers/page-render.js.map +1 -0
- package/dist/esm/preset/server/providers/response-events.js +12 -0
- package/dist/esm/preset/server/providers/response-events.js.map +1 -0
- package/dist/esm/preset/server/providers/serve.js +42 -0
- package/dist/esm/preset/server/providers/serve.js.map +1 -0
- package/dist/esm/preset/server/providers/ssr-bridge-server-side.js +13 -0
- package/dist/esm/preset/server/providers/ssr-bridge-server-side.js.map +1 -0
- package/dist/esm/preset/server/types.js +2 -0
- package/dist/esm/preset/server/types.js.map +1 -0
- package/dist/esm/preset/server/utils/apply-server-middleware.js +16 -0
- package/dist/esm/preset/server/utils/apply-server-middleware.js.map +1 -0
- package/dist/esm/preset/server/utils/format-handler-error.js +34 -0
- package/dist/esm/preset/server/utils/format-handler-error.js.map +1 -0
- package/dist/esm/preset/server/utils/get-client-ip.js +10 -0
- package/dist/esm/preset/server/utils/get-client-ip.js.map +1 -0
- package/dist/esm/preset/server/utils/get-forwarded-headers.js +35 -0
- package/dist/esm/preset/server/utils/get-forwarded-headers.js.map +1 -0
- package/dist/esm/preset/server/utils/get-health-check.js +16 -0
- package/dist/esm/preset/server/utils/get-health-check.js.map +1 -0
- package/dist/esm/preset/server/utils/get-page-response-format.js +16 -0
- package/dist/esm/preset/server/utils/get-page-response-format.js.map +1 -0
- package/dist/esm/preset/server/utils/get-serve-error-logging.js +31 -0
- package/dist/esm/preset/server/utils/get-serve-error-logging.js.map +1 -0
- package/dist/esm/preset/server/utils/get-serve-logging.js +31 -0
- package/dist/esm/preset/server/utils/get-serve-logging.js.map +1 -0
- package/dist/esm/preset/server/utils/handler-provider.js +25 -0
- package/dist/esm/preset/server/utils/handler-provider.js.map +1 -0
- package/dist/esm/preset/server/utils/regular-helmet.js +53 -0
- package/dist/esm/preset/server/utils/regular-helmet.js.map +1 -0
- package/dist/esm/preset/server/utils/specific-extras.js +23 -0
- package/dist/esm/preset/server/utils/specific-extras.js.map +1 -0
- package/dist/esm/preset/web/index.js +41 -0
- package/dist/esm/preset/web/index.js.map +1 -0
- package/dist/esm/preset/web/providers/axios-middleware.js +14 -0
- package/dist/esm/preset/web/providers/axios-middleware.js.map +1 -0
- package/dist/esm/preset/web/providers/config-source.js +14 -0
- package/dist/esm/preset/web/providers/config-source.js.map +1 -0
- package/dist/esm/preset/web/providers/fetch-middleware.js +16 -0
- package/dist/esm/preset/web/providers/fetch-middleware.js.map +1 -0
- package/dist/esm/preset/web/providers/known-http-api-hosts.js +21 -0
- package/dist/esm/preset/web/providers/known-http-api-hosts.js.map +1 -0
- package/dist/esm/preset/web/providers/logger.js +46 -0
- package/dist/esm/preset/web/providers/logger.js.map +1 -0
- package/dist/esm/preset/web/providers/ssr-bridge-client-side.js +13 -0
- package/dist/esm/preset/web/providers/ssr-bridge-client-side.js.map +1 -0
- package/dist/esm/tokens.js +174 -0
- package/dist/esm/tokens.js.map +1 -0
- package/dist/esm/utils/axios/index.js +4 -0
- package/dist/esm/utils/axios/index.js.map +1 -0
- package/dist/esm/utils/axios/middleware/log.js +31 -0
- package/dist/esm/utils/axios/middleware/log.js.map +1 -0
- package/dist/esm/utils/axios/sauce/index.js +50 -0
- package/dist/esm/utils/axios/sauce/index.js.map +1 -0
- package/dist/esm/utils/axios/utils/index.js +24 -0
- package/dist/esm/utils/axios/utils/index.js.map +1 -0
- package/dist/esm/utils/express/handler/health-check.js +13 -0
- package/dist/esm/utils/express/handler/health-check.js.map +1 -0
- package/dist/esm/utils/express/index.js +3 -0
- package/dist/esm/utils/express/index.js.map +1 -0
- package/dist/esm/utils/express/utils/index.js +16 -0
- package/dist/esm/utils/express/utils/index.js.map +1 -0
- package/dist/esm/utils/function.js +38 -0
- package/dist/esm/utils/function.js.map +1 -0
- package/dist/esm/utils/index.js +4 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/math.js +9 -0
- package/dist/esm/utils/math.js.map +1 -0
- package/dist/esm/utils/react/error-handlers/index.js +69 -0
- package/dist/esm/utils/react/error-handlers/index.js.map +1 -0
- package/dist/esm/utils/react/index.js +3 -0
- package/dist/esm/utils/react/index.js.map +1 -0
- package/dist/esm/utils/redux/index.js +3 -0
- package/dist/esm/utils/redux/index.js.map +1 -0
- package/dist/esm/utils/redux/remote-data.js +110 -0
- package/dist/esm/utils/redux/remote-data.js.map +1 -0
- package/dist/esm/utils/redux-saga/index.js +4 -0
- package/dist/esm/utils/redux-saga/index.js.map +1 -0
- package/dist/esm/utils/redux-saga/middleware.js +143 -0
- package/dist/esm/utils/redux-saga/middleware.js.map +1 -0
- package/dist/esm/utils/redux-saga/take-chain.js +59 -0
- package/dist/esm/utils/redux-saga/take-chain.js.map +1 -0
- package/dist/esm/utils/redux-saga/typed-effects.js +87 -0
- package/dist/esm/utils/redux-saga/typed-effects.js.map +1 -0
- package/dist/esm/utils/redux-saga/types.js +2 -0
- package/dist/esm/utils/redux-saga/types.js.map +1 -0
- package/dist/esm/utils/selectors/create-curried-selector.js +35 -0
- package/dist/esm/utils/selectors/create-curried-selector.js.map +1 -0
- package/dist/esm/utils/ssr/index.js +67 -0
- package/dist/esm/utils/ssr/index.js.map +1 -0
- package/dist/esm/utils/web/analytics/data-layer.js +14 -0
- package/dist/esm/utils/web/analytics/data-layer.js.map +1 -0
- package/dist/esm/utils/web/analytics/index.js +3 -0
- package/dist/esm/utils/web/analytics/index.js.map +1 -0
- package/dist/esm/utils/web/analytics/oko.js +14 -0
- package/dist/esm/utils/web/analytics/oko.js.map +1 -0
- package/dist/esm/utils/web/storage/index.js +68 -0
- package/dist/esm/utils/web/storage/index.js.map +1 -0
- package/dist/esm/utils/webpack/env/index.js +90 -0
- package/dist/esm/utils/webpack/env/index.js.map +1 -0
- package/dist/esm/utils/webpack/env/types.js +2 -0
- package/dist/esm/utils/webpack/env/types.js.map +1 -0
- package/dist/esm/utils/webpack/env/utils.js +48 -0
- package/dist/esm/utils/webpack/env/utils.js.map +1 -0
- package/dist/esm/utils/webpack/index.js +3 -0
- package/dist/esm/utils/webpack/index.js.map +1 -0
- package/dist/esm/utils/webpack/module-federation/index.js +96 -0
- package/dist/esm/utils/webpack/module-federation/index.js.map +1 -0
- package/dist/esm/utils/webpack/module-federation/types.js +2 -0
- package/dist/esm/utils/webpack/module-federation/types.js.map +1 -0
- package/dist/esm/utils/webpack/module-federation/utils.js +80 -0
- package/dist/esm/utils/webpack/module-federation/utils.js.map +1 -0
- package/dist/types/cache/index.d.ts +2 -0
- package/dist/types/cache/index.d.ts.map +1 -0
- package/dist/types/cache/types.d.ts +31 -0
- package/dist/types/cache/types.d.ts.map +1 -0
- package/{config → dist/types/config}/base.d.ts +3 -2
- package/dist/types/config/base.d.ts.map +1 -0
- package/dist/types/config/index.d.ts +4 -0
- package/dist/types/config/index.d.ts.map +1 -0
- package/dist/types/config/source.d.ts +8 -0
- package/dist/types/config/source.d.ts.map +1 -0
- package/dist/types/config/types.d.ts +21 -0
- package/dist/types/config/types.d.ts.map +1 -0
- package/{di → dist/types/di}/application.d.ts +6 -1
- package/dist/types/di/application.d.ts.map +1 -0
- package/{di → dist/types/di}/container.d.ts +1 -0
- package/dist/types/di/container.d.ts.map +1 -0
- package/dist/types/di/errors.d.ts +36 -0
- package/dist/types/di/errors.d.ts.map +1 -0
- package/dist/types/di/index.d.ts +7 -0
- package/dist/types/di/index.d.ts.map +1 -0
- package/dist/types/di/preset.d.ts +10 -0
- package/dist/types/di/preset.d.ts.map +1 -0
- package/{di → dist/types/di}/token.d.ts +1 -0
- package/dist/types/di/token.d.ts.map +1 -0
- package/dist/types/di/types.d.ts +87 -0
- package/dist/types/di/types.d.ts.map +1 -0
- package/dist/types/http/errors.d.ts +33 -0
- package/dist/types/http/errors.d.ts.map +1 -0
- package/dist/types/http/index.d.ts +6 -0
- package/dist/types/http/index.d.ts.map +1 -0
- package/dist/types/http/types.d.ts +27 -0
- package/dist/types/http/types.d.ts.map +1 -0
- package/dist/types/http/utils.d.ts +52 -0
- package/dist/types/http/utils.d.ts.map +1 -0
- package/dist/types/log/errors.d.ts +24 -0
- package/dist/types/log/errors.d.ts.map +1 -0
- package/dist/types/log/handler/pino.d.ts +9 -0
- package/dist/types/log/handler/pino.d.ts.map +1 -0
- package/dist/types/log/handler/sentry.d.ts +12 -0
- package/dist/types/log/handler/sentry.d.ts.map +1 -0
- package/dist/types/log/index.d.ts +6 -0
- package/dist/types/log/index.d.ts.map +1 -0
- package/{logger/index.d.ts → dist/types/log/logger.d.ts} +1 -0
- package/dist/types/log/logger.d.ts.map +1 -0
- package/dist/types/log/types.d.ts +65 -0
- package/dist/types/log/types.d.ts.map +1 -0
- package/dist/types/preset/isomorphic/index.d.ts +11 -0
- package/dist/types/preset/isomorphic/index.d.ts.map +1 -0
- package/dist/types/preset/isomorphic/providers/abort-controller.d.ts +6 -0
- package/dist/types/preset/isomorphic/providers/abort-controller.d.ts.map +1 -0
- package/dist/types/preset/isomorphic/providers/axios-factory.d.ts +9 -0
- package/dist/types/preset/isomorphic/providers/axios-factory.d.ts.map +1 -0
- package/dist/types/preset/isomorphic/providers/axios-log-handler.d.ts +9 -0
- package/dist/types/preset/isomorphic/providers/axios-log-handler.d.ts.map +1 -0
- package/dist/types/preset/isomorphic/providers/base-config.d.ts +9 -0
- package/dist/types/preset/isomorphic/providers/base-config.d.ts.map +1 -0
- package/dist/types/preset/isomorphic/providers/fetch.d.ts +8 -0
- package/dist/types/preset/isomorphic/providers/fetch.d.ts.map +1 -0
- package/dist/types/preset/isomorphic/providers/redux-middleware-saga.d.ts +9 -0
- package/dist/types/preset/isomorphic/providers/redux-middleware-saga.d.ts.map +1 -0
- package/dist/types/preset/isomorphic/types.d.ts +35 -0
- package/dist/types/preset/isomorphic/types.d.ts.map +1 -0
- package/dist/types/preset/isomorphic/utils/axios-logging.d.ts +34 -0
- package/dist/types/preset/isomorphic/utils/axios-logging.d.ts.map +1 -0
- package/dist/types/preset/isomorphic/utils/disableable.d.ts +18 -0
- package/dist/types/preset/isomorphic/utils/disableable.d.ts.map +1 -0
- package/dist/types/preset/isomorphic/utils/display-url.d.ts +9 -0
- package/dist/types/preset/isomorphic/utils/display-url.d.ts.map +1 -0
- package/dist/types/preset/isomorphic/utils/fetch-logging.d.ts +18 -0
- package/dist/types/preset/isomorphic/utils/fetch-logging.d.ts.map +1 -0
- package/dist/types/preset/isomorphic/utils/get-fetch-error-logging.d.ts +8 -0
- package/dist/types/preset/isomorphic/utils/get-fetch-error-logging.d.ts.map +1 -0
- package/dist/types/preset/isomorphic/utils/get-fetch-extra-aborting.d.ts +9 -0
- package/dist/types/preset/isomorphic/utils/get-fetch-extra-aborting.d.ts.map +1 -0
- package/dist/types/preset/isomorphic/utils/get-fetch-logging.d.ts +9 -0
- package/dist/types/preset/isomorphic/utils/get-fetch-logging.d.ts.map +1 -0
- package/dist/types/preset/isomorphic/utils/http-api-host-pool.d.ts +24 -0
- package/dist/types/preset/isomorphic/utils/http-api-host-pool.d.ts.map +1 -0
- package/dist/types/preset/isomorphic/utils/http-status.d.ts +29 -0
- package/dist/types/preset/isomorphic/utils/http-status.d.ts.map +1 -0
- package/dist/types/preset/isomorphic/utils/saga-logging.d.ts +30 -0
- package/dist/types/preset/isomorphic/utils/saga-logging.d.ts.map +1 -0
- package/dist/types/preset/isomorphic/utils/severity-from-status.d.ts +8 -0
- package/dist/types/preset/isomorphic/utils/severity-from-status.d.ts.map +1 -0
- package/dist/types/preset/node/index.d.ts +14 -0
- package/dist/types/preset/node/index.d.ts.map +1 -0
- package/dist/types/preset/node/providers/config-source.d.ts +7 -0
- package/dist/types/preset/node/providers/config-source.d.ts.map +1 -0
- package/dist/types/preset/node/providers/express-error-middleware.d.ts +7 -0
- package/dist/types/preset/node/providers/express-error-middleware.d.ts.map +1 -0
- package/dist/types/preset/node/providers/express-factory.d.ts +7 -0
- package/dist/types/preset/node/providers/express-factory.d.ts.map +1 -0
- package/dist/types/preset/node/providers/express-log-middleware.d.ts +9 -0
- package/dist/types/preset/node/providers/express-log-middleware.d.ts.map +1 -0
- package/dist/types/preset/node/providers/express-metrics-middleware.d.ts +9 -0
- package/dist/types/preset/node/providers/express-metrics-middleware.d.ts.map +1 -0
- package/dist/types/preset/node/providers/express-request-middleware.d.ts +7 -0
- package/dist/types/preset/node/providers/express-request-middleware.d.ts.map +1 -0
- package/dist/types/preset/node/providers/express-tracing-middleware.d.ts +9 -0
- package/dist/types/preset/node/providers/express-tracing-middleware.d.ts.map +1 -0
- package/dist/types/preset/node/providers/log-handler-pino.d.ts +9 -0
- package/dist/types/preset/node/providers/log-handler-pino.d.ts.map +1 -0
- package/dist/types/preset/node/providers/log-handler-sentry.d.ts +9 -0
- package/dist/types/preset/node/providers/log-handler-sentry.d.ts.map +1 -0
- package/dist/types/preset/node/providers/logger.d.ts +9 -0
- package/dist/types/preset/node/providers/logger.d.ts.map +1 -0
- package/dist/types/preset/node/providers/main-express-app.d.ts +9 -0
- package/dist/types/preset/node/providers/main-express-app.d.ts.map +1 -0
- package/dist/types/preset/node/providers/metrics-express-app.d.ts +7 -0
- package/dist/types/preset/node/providers/metrics-express-app.d.ts.map +1 -0
- package/dist/types/preset/node/providers/public-envs.d.ts +6 -0
- package/dist/types/preset/node/providers/public-envs.d.ts.map +1 -0
- package/dist/types/preset/node/providers/telemetry-tracer-provider.d.ts +9 -0
- package/dist/types/preset/node/providers/telemetry-tracer-provider.d.ts.map +1 -0
- package/dist/types/preset/node/providers/telemetry-tracer-resource.d.ts +9 -0
- package/dist/types/preset/node/providers/telemetry-tracer-resource.d.ts.map +1 -0
- package/dist/types/preset/node/providers/telemetry-tracer-span-exporter.d.ts +9 -0
- package/dist/types/preset/node/providers/telemetry-tracer-span-exporter.d.ts.map +1 -0
- package/dist/types/preset/node/providers/telemetry-tracer.d.ts +9 -0
- package/dist/types/preset/node/providers/telemetry-tracer.d.ts.map +1 -0
- package/dist/types/preset/node/types.d.ts +12 -0
- package/dist/types/preset/node/types.d.ts.map +1 -0
- package/dist/types/preset/node/utils/axios-tracing-middleware.d.ts +21 -0
- package/dist/types/preset/node/utils/axios-tracing-middleware.d.ts.map +1 -0
- package/dist/types/preset/node/utils/emitter-as-target.d.ts +16 -0
- package/dist/types/preset/node/utils/emitter-as-target.d.ts.map +1 -0
- package/dist/types/preset/node/utils/get-client-ip.d.ts +8 -0
- package/dist/types/preset/node/utils/get-client-ip.d.ts.map +1 -0
- package/dist/types/preset/node/utils/get-fetch-tracing.d.ts +10 -0
- package/dist/types/preset/node/utils/get-fetch-tracing.d.ts.map +1 -0
- package/{http-client/utils.d.ts → dist/types/preset/node/utils/get-forwarded-headers.d.ts} +4 -3
- package/dist/types/preset/node/utils/get-forwarded-headers.d.ts.map +1 -0
- package/dist/types/preset/node/utils/get-handler-metrics.d.ts +15 -0
- package/dist/types/preset/node/utils/get-handler-metrics.d.ts.map +1 -0
- package/dist/types/preset/node/utils/get-page-response-format.d.ts +10 -0
- package/dist/types/preset/node/utils/get-page-response-format.d.ts.map +1 -0
- package/dist/types/preset/node/utils/get-serve-measuring.d.ts +9 -0
- package/dist/types/preset/node/utils/get-serve-measuring.d.ts.map +1 -0
- package/dist/types/preset/node/utils/handler-provider.d.ts +9 -0
- package/dist/types/preset/node/utils/handler-provider.d.ts.map +1 -0
- package/dist/types/preset/node/utils/telemetry.d.ts +8 -0
- package/dist/types/preset/node/utils/telemetry.d.ts.map +1 -0
- package/dist/types/preset/node-handler/index.d.ts +10 -0
- package/dist/types/preset/node-handler/index.d.ts.map +1 -0
- package/dist/types/preset/node-handler/providers/accepts-type.d.ts +13 -0
- package/dist/types/preset/node-handler/providers/accepts-type.d.ts.map +1 -0
- package/dist/types/preset/node-handler/providers/axios-log-handler.d.ts +9 -0
- package/dist/types/preset/node-handler/providers/axios-log-handler.d.ts.map +1 -0
- package/dist/types/preset/node-handler/providers/axios-middleware.d.ts +9 -0
- package/dist/types/preset/node-handler/providers/axios-middleware.d.ts.map +1 -0
- package/dist/types/preset/node-handler/providers/fetch-middleware.d.ts +9 -0
- package/dist/types/preset/node-handler/providers/fetch-middleware.d.ts.map +1 -0
- package/dist/types/preset/node-handler/providers/handler-main.d.ts +9 -0
- package/dist/types/preset/node-handler/providers/handler-main.d.ts.map +1 -0
- package/dist/types/preset/node-handler/providers/response-events.d.ts +8 -0
- package/dist/types/preset/node-handler/providers/response-events.d.ts.map +1 -0
- package/dist/types/preset/node-handler/providers/specific-params.d.ts +8 -0
- package/dist/types/preset/node-handler/providers/specific-params.d.ts.map +1 -0
- package/dist/types/preset/server/constants.d.ts +13 -0
- package/dist/types/preset/server/constants.d.ts.map +1 -0
- package/dist/types/preset/server/index.d.ts +13 -0
- package/dist/types/preset/server/index.d.ts.map +1 -0
- package/dist/types/preset/server/providers/element-to-string.d.ts +9 -0
- package/dist/types/preset/server/providers/element-to-string.d.ts.map +1 -0
- package/dist/types/preset/server/providers/fetch-log-handler.d.ts +9 -0
- package/dist/types/preset/server/providers/fetch-log-handler.d.ts.map +1 -0
- package/dist/types/preset/server/providers/fetch-middleware.d.ts +3 -0
- package/dist/types/preset/server/providers/fetch-middleware.d.ts.map +1 -0
- package/dist/types/preset/server/providers/format-page-response.d.ts +10 -0
- package/dist/types/preset/server/providers/format-page-response.d.ts.map +1 -0
- package/dist/types/preset/server/providers/known-http-api-hosts.d.ts +10 -0
- package/dist/types/preset/server/providers/known-http-api-hosts.d.ts.map +1 -0
- package/dist/types/preset/server/providers/page-helmet.d.ts +11 -0
- package/dist/types/preset/server/providers/page-helmet.d.ts.map +1 -0
- package/dist/types/preset/server/providers/page-render.d.ts +6 -0
- package/dist/types/preset/server/providers/page-render.d.ts.map +1 -0
- package/dist/types/preset/server/providers/response-events.d.ts +8 -0
- package/dist/types/preset/server/providers/response-events.d.ts.map +1 -0
- package/dist/types/preset/server/providers/serve.d.ts +4 -0
- package/dist/types/preset/server/providers/serve.d.ts.map +1 -0
- package/dist/types/preset/server/providers/ssr-bridge-server-side.d.ts +9 -0
- package/dist/types/preset/server/providers/ssr-bridge-server-side.d.ts.map +1 -0
- package/dist/types/preset/server/types.d.ts +33 -0
- package/dist/types/preset/server/types.d.ts.map +1 -0
- package/dist/types/preset/server/utils/apply-server-middleware.d.ts +8 -0
- package/dist/types/preset/server/utils/apply-server-middleware.d.ts.map +1 -0
- package/dist/types/preset/server/utils/format-handler-error.d.ts +18 -0
- package/dist/types/preset/server/utils/format-handler-error.d.ts.map +1 -0
- package/dist/types/preset/server/utils/get-client-ip.d.ts +7 -0
- package/dist/types/preset/server/utils/get-client-ip.d.ts.map +1 -0
- package/dist/types/preset/server/utils/get-forwarded-headers.d.ts +9 -0
- package/dist/types/preset/server/utils/get-forwarded-headers.d.ts.map +1 -0
- package/dist/types/preset/server/utils/get-health-check.d.ts +8 -0
- package/dist/types/preset/server/utils/get-health-check.d.ts.map +1 -0
- package/dist/types/preset/server/utils/get-page-response-format.d.ts +10 -0
- package/dist/types/preset/server/utils/get-page-response-format.d.ts.map +1 -0
- package/dist/types/preset/server/utils/get-serve-error-logging.d.ts +9 -0
- package/dist/types/preset/server/utils/get-serve-error-logging.d.ts.map +1 -0
- package/dist/types/preset/server/utils/get-serve-logging.d.ts +9 -0
- package/dist/types/preset/server/utils/get-serve-logging.d.ts.map +1 -0
- package/dist/types/preset/server/utils/handler-provider.d.ts +11 -0
- package/dist/types/preset/server/utils/handler-provider.d.ts.map +1 -0
- package/dist/types/preset/server/utils/regular-helmet.d.ts +15 -0
- package/dist/types/preset/server/utils/regular-helmet.d.ts.map +1 -0
- package/dist/types/preset/server/utils/specific-extras.d.ts +18 -0
- package/dist/types/preset/server/utils/specific-extras.d.ts.map +1 -0
- package/dist/types/preset/web/index.d.ts +9 -0
- package/dist/types/preset/web/index.d.ts.map +1 -0
- package/dist/types/preset/web/providers/axios-middleware.d.ts +9 -0
- package/dist/types/preset/web/providers/axios-middleware.d.ts.map +1 -0
- package/dist/types/preset/web/providers/config-source.d.ts +7 -0
- package/dist/types/preset/web/providers/config-source.d.ts.map +1 -0
- package/dist/types/preset/web/providers/fetch-middleware.d.ts +8 -0
- package/dist/types/preset/web/providers/fetch-middleware.d.ts.map +1 -0
- package/dist/types/preset/web/providers/known-http-api-hosts.d.ts +10 -0
- package/dist/types/preset/web/providers/known-http-api-hosts.d.ts.map +1 -0
- package/dist/types/preset/web/providers/logger.d.ts +9 -0
- package/dist/types/preset/web/providers/logger.d.ts.map +1 -0
- package/dist/types/preset/web/providers/ssr-bridge-client-side.d.ts +9 -0
- package/dist/types/preset/web/providers/ssr-bridge-client-side.d.ts.map +1 -0
- package/dist/types/tokens.d.ts +193 -0
- package/dist/types/tokens.d.ts.map +1 -0
- package/dist/types/utils/axios/index.d.ts +4 -0
- package/dist/types/utils/axios/index.d.ts.map +1 -0
- package/dist/types/utils/axios/middleware/log.d.ts +28 -0
- package/dist/types/utils/axios/middleware/log.d.ts.map +1 -0
- package/dist/types/utils/axios/sauce/index.d.ts +43 -0
- package/dist/types/utils/axios/sauce/index.d.ts.map +1 -0
- package/dist/types/utils/axios/utils/index.d.ts +10 -0
- package/dist/types/utils/axios/utils/index.d.ts.map +1 -0
- package/dist/types/utils/express/handler/health-check.d.ts +7 -0
- package/dist/types/utils/express/handler/health-check.d.ts.map +1 -0
- package/dist/types/utils/express/index.d.ts +3 -0
- package/dist/types/utils/express/index.d.ts.map +1 -0
- package/dist/types/utils/express/utils/index.d.ts +8 -0
- package/dist/types/utils/express/utils/index.d.ts.map +1 -0
- package/dist/types/utils/function.d.ts +29 -0
- package/dist/types/utils/function.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +4 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/{utils/number.d.ts → dist/types/utils/math.d.ts} +1 -0
- package/dist/types/utils/math.d.ts.map +1 -0
- package/dist/types/utils/react/error-handlers/index.d.ts +42 -0
- package/dist/types/utils/react/error-handlers/index.d.ts.map +1 -0
- package/dist/types/utils/react/index.d.ts +3 -0
- package/dist/types/utils/react/index.d.ts.map +1 -0
- package/dist/types/utils/redux/index.d.ts +4 -0
- package/dist/types/utils/redux/index.d.ts.map +1 -0
- package/dist/types/utils/redux/remote-data.d.ts +96 -0
- package/dist/types/utils/redux/remote-data.d.ts.map +1 -0
- package/dist/types/utils/redux-saga/index.d.ts +5 -0
- package/dist/types/utils/redux-saga/index.d.ts.map +1 -0
- package/dist/types/utils/redux-saga/middleware.d.ts +9 -0
- package/dist/types/utils/redux-saga/middleware.d.ts.map +1 -0
- package/{utils → dist/types/utils}/redux-saga/take-chain.d.ts +3 -0
- package/dist/types/utils/redux-saga/take-chain.d.ts.map +1 -0
- package/dist/types/utils/redux-saga/typed-effects.d.ts +101 -0
- package/dist/types/utils/redux-saga/typed-effects.d.ts.map +1 -0
- package/dist/types/utils/redux-saga/types.d.ts +37 -0
- package/dist/types/utils/redux-saga/types.d.ts.map +1 -0
- package/dist/types/utils/selectors/create-curried-selector.d.ts +22 -0
- package/dist/types/utils/selectors/create-curried-selector.d.ts.map +1 -0
- package/dist/types/utils/ssr/index.d.ts +43 -0
- package/dist/types/utils/ssr/index.d.ts.map +1 -0
- package/dist/types/utils/web/analytics/data-layer.d.ts +6 -0
- package/dist/types/utils/web/analytics/data-layer.d.ts.map +1 -0
- package/dist/types/utils/web/analytics/index.d.ts +3 -0
- package/dist/types/utils/web/analytics/index.d.ts.map +1 -0
- package/dist/types/utils/web/analytics/oko.d.ts +7 -0
- package/dist/types/utils/web/analytics/oko.d.ts.map +1 -0
- package/dist/types/utils/web/storage/index.d.ts +13 -0
- package/dist/types/utils/web/storage/index.d.ts.map +1 -0
- package/dist/types/utils/webpack/env/index.d.ts +20 -0
- package/dist/types/utils/webpack/env/index.d.ts.map +1 -0
- package/dist/types/utils/webpack/env/types.d.ts +12 -0
- package/dist/types/utils/webpack/env/types.d.ts.map +1 -0
- package/dist/types/utils/webpack/env/utils.d.ts +16 -0
- package/dist/types/utils/webpack/env/utils.d.ts.map +1 -0
- package/dist/types/utils/webpack/index.d.ts +5 -0
- package/dist/types/utils/webpack/index.d.ts.map +1 -0
- package/{utils → dist/types/utils}/webpack/module-federation/index.d.ts +10 -3
- package/dist/types/utils/webpack/module-federation/index.d.ts.map +1 -0
- package/{utils → dist/types/utils}/webpack/module-federation/types.d.ts +12 -3
- package/dist/types/utils/webpack/module-federation/types.d.ts.map +1 -0
- package/{utils → dist/types/utils}/webpack/module-federation/utils.d.ts +7 -0
- package/dist/types/utils/webpack/module-federation/utils.d.ts.map +1 -0
- package/package.json +267 -52
- package/cache/types.d.ts +0 -7
- package/cache/types.js +0 -3
- package/cache/types.js.map +0 -1
- package/config/base.js +0 -20
- package/config/base.js.map +0 -1
- package/config/browser.d.ts +0 -6
- package/config/browser.js +0 -13
- package/config/browser.js.map +0 -1
- package/config/node.d.ts +0 -6
- package/config/node.js +0 -19
- package/config/node.js.map +0 -1
- package/config/types.d.ts +0 -7
- package/config/types.js +0 -3
- package/config/types.js.map +0 -1
- package/config/utils.d.ts +0 -5
- package/config/utils.js +0 -12
- package/config/utils.js.map +0 -1
- package/di/application.js +0 -71
- package/di/application.js.map +0 -1
- package/di/container.js +0 -49
- package/di/container.js.map +0 -1
- package/di/errors.d.ts +0 -21
- package/di/errors.js +0 -33
- package/di/errors.js.map +0 -1
- package/di/index.d.ts +0 -6
- package/di/index.js +0 -16
- package/di/index.js.map +0 -1
- package/di/preset.d.ts +0 -9
- package/di/preset.js +0 -25
- package/di/preset.js.map +0 -1
- package/di/token.js +0 -17
- package/di/token.js.map +0 -1
- package/di/types.d.ts +0 -32
- package/di/types.js +0 -3
- package/di/types.js.map +0 -1
- package/error-tracker/browser.d.ts +0 -8
- package/error-tracker/browser.js +0 -40
- package/error-tracker/browser.js.map +0 -1
- package/error-tracker/node.d.ts +0 -8
- package/error-tracker/node.js +0 -40
- package/error-tracker/node.js.map +0 -1
- package/error-tracker/types.d.ts +0 -19
- package/error-tracker/types.js +0 -3
- package/error-tracker/types.js.map +0 -1
- package/error-tracker/utils.d.ts +0 -22
- package/error-tracker/utils.js +0 -31
- package/error-tracker/utils.js.map +0 -1
- package/http-client/middleware/cookie.d.ts +0 -19
- package/http-client/middleware/cookie.js +0 -62
- package/http-client/middleware/cookie.js.map +0 -1
- package/http-client/middleware/logging.d.ts +0 -15
- package/http-client/middleware/logging.js +0 -91
- package/http-client/middleware/logging.js.map +0 -1
- package/http-client/middleware/tracing.d.ts +0 -32
- package/http-client/middleware/tracing.js +0 -67
- package/http-client/middleware/tracing.js.map +0 -1
- package/http-client/sauce/index.d.ts +0 -27
- package/http-client/sauce/index.js +0 -33
- package/http-client/sauce/index.js.map +0 -1
- package/http-client/types.d.ts +0 -6
- package/http-client/types.js +0 -3
- package/http-client/types.js.map +0 -1
- package/http-client/utils.js +0 -20
- package/http-client/utils.js.map +0 -1
- package/http-server/constants.d.ts +0 -4
- package/http-server/constants.js +0 -8
- package/http-server/constants.js.map +0 -1
- package/http-server/handler/health-check.d.ts +0 -6
- package/http-server/handler/health-check.js +0 -15
- package/http-server/handler/health-check.js.map +0 -1
- package/http-server/middleware/logging.d.ts +0 -10
- package/http-server/middleware/logging.js +0 -31
- package/http-server/middleware/logging.js.map +0 -1
- package/http-server/middleware/metrics.d.ts +0 -23
- package/http-server/middleware/metrics.js +0 -60
- package/http-server/middleware/metrics.js.map +0 -1
- package/http-server/middleware/tracing.d.ts +0 -14
- package/http-server/middleware/tracing.js +0 -51
- package/http-server/middleware/tracing.js.map +0 -1
- package/http-server/template/index.d.ts +0 -1
- package/http-server/template/index.js +0 -36
- package/http-server/template/index.js.map +0 -1
- package/http-server/types.d.ts +0 -33
- package/http-server/types.js +0 -3
- package/http-server/types.js.map +0 -1
- package/http-server/utils.d.ts +0 -30
- package/http-server/utils.js +0 -100
- package/http-server/utils.js.map +0 -1
- package/logger/handler/console.d.ts +0 -8
- package/logger/handler/console.js +0 -36
- package/logger/handler/console.js.map +0 -1
- package/logger/handler/sentry.d.ts +0 -8
- package/logger/handler/sentry.js +0 -44
- package/logger/handler/sentry.js.map +0 -1
- package/logger/index.js +0 -31
- package/logger/index.js.map +0 -1
- package/logger/types.d.ts +0 -24
- package/logger/types.js +0 -3
- package/logger/types.js.map +0 -1
- package/metrics/constants.d.ts +0 -4
- package/metrics/constants.js +0 -8
- package/metrics/constants.js.map +0 -1
- package/metrics/node.d.ts +0 -18
- package/metrics/node.js +0 -74
- package/metrics/node.js.map +0 -1
- package/preset/browser/index.d.ts +0 -1
- package/preset/browser/index.js +0 -46
- package/preset/browser/index.js.map +0 -1
- package/preset/node/index.d.ts +0 -19
- package/preset/node/index.js +0 -122
- package/preset/node/index.js.map +0 -1
- package/preset/node/response.d.ts +0 -20
- package/preset/node/response.js +0 -82
- package/preset/node/response.js.map +0 -1
- package/saga-runner/index.d.ts +0 -8
- package/saga-runner/index.js +0 -79
- package/saga-runner/index.js.map +0 -1
- package/saga-runner/types.d.ts +0 -10
- package/saga-runner/types.js +0 -3
- package/saga-runner/types.js.map +0 -1
- package/tokens.d.ts +0 -48
- package/tokens.js +0 -50
- package/tokens.js.map +0 -1
- package/tracing/utils.d.ts +0 -9
- package/tracing/utils.js +0 -22
- package/tracing/utils.js.map +0 -1
- package/utils/browser/analytics/data-layer.d.ts +0 -5
- package/utils/browser/analytics/data-layer.js +0 -15
- package/utils/browser/analytics/data-layer.js.map +0 -1
- package/utils/browser/analytics/oko.d.ts +0 -12
- package/utils/browser/analytics/oko.js +0 -39
- package/utils/browser/analytics/oko.js.map +0 -1
- package/utils/browser/storage/index.d.ts +0 -4
- package/utils/browser/storage/index.js +0 -63
- package/utils/browser/storage/index.js.map +0 -1
- package/utils/number.js.map +0 -1
- package/utils/react/error-handlers/index.d.ts +0 -38
- package/utils/react/error-handlers/index.js +0 -48
- package/utils/react/error-handlers/index.js.map +0 -1
- package/utils/redux/remote-data.d.ts +0 -23
- package/utils/redux/remote-data.js +0 -28
- package/utils/redux/remote-data.js.map +0 -1
- package/utils/redux-saga/take-chain.js +0 -56
- package/utils/redux-saga/take-chain.js.map +0 -1
- package/utils/ssr/index.d.ts +0 -30
- package/utils/ssr/index.js +0 -51
- package/utils/ssr/index.js.map +0 -1
- package/utils/webpack/module-federation/index.js +0 -74
- package/utils/webpack/module-federation/index.js.map +0 -1
- package/utils/webpack/module-federation/types.js +0 -3
- package/utils/webpack/module-federation/types.js.map +0 -1
- package/utils/webpack/module-federation/utils.js +0 -36
- package/utils/webpack/module-federation/utils.js.map +0 -1
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/* eslint-disable jsdoc/require-jsdoc */
|
|
2
|
+
|
|
3
|
+
// @todo "* as" сделано для работы в Node.js ESM но есть подозрение что на tree shaking плохо скажется
|
|
4
|
+
import * as redux from '@reduxjs/toolkit';
|
|
5
|
+
const {
|
|
6
|
+
createAction,
|
|
7
|
+
createSelector
|
|
8
|
+
} = redux;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Статус загрузки данных.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Базовая структура хранилища удаленных данных.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Возможные статусы загрузки данных.
|
|
20
|
+
*/
|
|
21
|
+
export const STATUS = {
|
|
22
|
+
initial: 'initial',
|
|
23
|
+
fetching: 'fetching',
|
|
24
|
+
success: 'success',
|
|
25
|
+
failure: 'failure'
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/** Работа с удаленными данными. */
|
|
29
|
+
export class RemoteData {
|
|
30
|
+
static get STATUS() {
|
|
31
|
+
return STATUS;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Возвращает action'ы для работы с удаленными данными.
|
|
36
|
+
* @param name Префикс имён.
|
|
37
|
+
* @return Набор.
|
|
38
|
+
*/
|
|
39
|
+
static createActions(name) {
|
|
40
|
+
return {
|
|
41
|
+
request: createAction(`${name}/request`),
|
|
42
|
+
success: createAction(`${name}/success`),
|
|
43
|
+
failure: createAction(`${name}/failure`)
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Возвращает набор обработчиков для работы с удаленными данными.
|
|
49
|
+
* @return Набор.
|
|
50
|
+
*/
|
|
51
|
+
static createHandlers() {
|
|
52
|
+
// ВАЖНО: не используем возможности immer здесь чтобы набор можно было использовать без immer.
|
|
53
|
+
return {
|
|
54
|
+
request(state,
|
|
55
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
56
|
+
_action) {
|
|
57
|
+
return {
|
|
58
|
+
...state,
|
|
59
|
+
status: STATUS.fetching
|
|
60
|
+
};
|
|
61
|
+
},
|
|
62
|
+
success(state, action) {
|
|
63
|
+
return {
|
|
64
|
+
...state,
|
|
65
|
+
data: action.payload,
|
|
66
|
+
status: STATUS.success,
|
|
67
|
+
fetchCount: (state.fetchCount ?? 0) + 1
|
|
68
|
+
};
|
|
69
|
+
},
|
|
70
|
+
failure(state, action) {
|
|
71
|
+
return {
|
|
72
|
+
...state,
|
|
73
|
+
error: action.payload,
|
|
74
|
+
status: STATUS.failure,
|
|
75
|
+
fetchCount: (state.fetchCount ?? 0) + 1
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Применяет обработчики для работы с удаленными данными.
|
|
83
|
+
* @param actions Набор action'ов.
|
|
84
|
+
* @param builder Builder.
|
|
85
|
+
*/
|
|
86
|
+
static applyHandlers(actions, builder) {
|
|
87
|
+
const handlers = RemoteData.createHandlers();
|
|
88
|
+
|
|
89
|
+
// @todo разобраться с проблемой когда убираешь ".type"
|
|
90
|
+
builder.addCase(actions.request.type, handlers.request);
|
|
91
|
+
builder.addCase(actions.success.type, handlers.success);
|
|
92
|
+
builder.addCase(actions.failure.type, handlers.failure);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Возвращает новый набор селекторов данных.
|
|
97
|
+
* @param selectRoot Функция получения состояния.
|
|
98
|
+
* @return Набор селекторов.
|
|
99
|
+
*/
|
|
100
|
+
static createSelectors(selectRoot) {
|
|
101
|
+
return {
|
|
102
|
+
isInitial: createSelector(selectRoot, state => state.status === 'initial'),
|
|
103
|
+
isFetching: createSelector(selectRoot, state => state.status === 'fetching'),
|
|
104
|
+
isSuccess: createSelector(selectRoot, state => state.status === 'success'),
|
|
105
|
+
isFailed: createSelector(selectRoot, state => state.status === 'failure'),
|
|
106
|
+
wasFetched: createSelector(selectRoot, state => (state.fetchCount ?? 0) > 0)
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=remote-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote-data.js","names":["redux","createAction","createSelector","STATUS","initial","fetching","success","failure","RemoteData","createActions","name","request","createHandlers","state","_action","status","action","data","payload","fetchCount","error","applyHandlers","actions","builder","handlers","addCase","type","createSelectors","selectRoot","isInitial","isFetching","isSuccess","isFailed","wasFetched"],"sources":["../../../../src/utils/redux/remote-data.ts"],"sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\n\n// @todo \"* as\" сделано для работы в Node.js ESM но есть подозрение что на tree shaking плохо скажется\nimport * as redux from '@reduxjs/toolkit';\n\nconst { createAction, createSelector } = redux;\n\ninterface RemoteDataActions<TData, TError = unknown, TPayload = void> {\n request: redux.PayloadActionCreator<TPayload, string>;\n success: redux.PayloadActionCreator<TData, string>;\n failure: redux.PayloadActionCreator<TError, string>;\n}\n\n/**\n * Статус загрузки данных.\n */\nexport type Status = 'initial' | 'fetching' | 'success' | 'failure';\n\n/**\n * Базовая структура хранилища удаленных данных.\n */\nexport interface RemoteDataState<TData, TError> {\n /** Загружаемые данные. */\n readonly data: TData;\n\n /** Данные ошибки запроса. */\n readonly error: TError;\n\n /** Статус загрузки данных. */\n readonly status: Status;\n\n /** Количество запросов. */\n readonly fetchCount?: number;\n}\n\n/**\n * Возможные статусы загрузки данных.\n */\nexport const STATUS = {\n initial: 'initial',\n fetching: 'fetching',\n success: 'success',\n failure: 'failure',\n} as const satisfies Record<Status, Status>;\n\n/** Работа с удаленными данными. */\nexport abstract class RemoteData {\n static get STATUS() {\n return STATUS;\n }\n\n /**\n * Возвращает action'ы для работы с удаленными данными.\n * @param name Префикс имён.\n * @return Набор.\n */\n static createActions<TData = never, TError = never, TPayload = void>(\n name: string,\n ): RemoteDataActions<TData, TError, TPayload> {\n return {\n request: createAction<TPayload>(`${name}/request`),\n success: createAction<TData>(`${name}/success`),\n failure: createAction<TError>(`${name}/failure`),\n } as const;\n }\n\n /**\n * Возвращает набор обработчиков для работы с удаленными данными.\n * @return Набор.\n */\n static createHandlers<\n TData,\n TError,\n S extends RemoteDataState<TData, TError> = RemoteDataState<TData, TError>,\n TPayload = void,\n >() {\n // ВАЖНО: не используем возможности immer здесь чтобы набор можно было использовать без immer.\n return {\n request(\n state: S | redux.Draft<S>,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _action: redux.PayloadAction<TPayload>,\n ): S | redux.Draft<S> {\n return {\n ...state,\n status: STATUS.fetching,\n };\n },\n\n success(state: S | redux.Draft<S>, action: redux.PayloadAction<TData>): S | redux.Draft<S> {\n return {\n ...state,\n data: action.payload,\n status: STATUS.success,\n fetchCount: (state.fetchCount ?? 0) + 1,\n };\n },\n\n failure(state: S | redux.Draft<S>, action: redux.PayloadAction<TError>): S | redux.Draft<S> {\n return {\n ...state,\n error: action.payload,\n status: STATUS.failure,\n fetchCount: (state.fetchCount ?? 0) + 1,\n };\n },\n } as const;\n }\n\n /**\n * Применяет обработчики для работы с удаленными данными.\n * @param actions Набор action'ов.\n * @param builder Builder.\n */\n static applyHandlers<TData, TError, S extends RemoteDataState<TData, TError>, TPayload>(\n actions: RemoteDataActions<TData, TError, TPayload>,\n builder: Pick<redux.ActionReducerMapBuilder<S>, 'addCase'>,\n ): void {\n const handlers = RemoteData.createHandlers<TData, TError, S, TPayload>();\n\n // @todo разобраться с проблемой когда убираешь \".type\"\n builder.addCase(actions.request.type, handlers.request);\n builder.addCase(actions.success.type, handlers.success);\n builder.addCase(actions.failure.type, handlers.failure);\n }\n\n /**\n * Возвращает новый набор селекторов данных.\n * @param selectRoot Функция получения состояния.\n * @return Набор селекторов.\n */\n static createSelectors<S extends RemoteDataState<unknown, unknown>, R = unknown>(\n selectRoot: (root: R) => S,\n ) {\n return {\n isInitial: createSelector(selectRoot, state => state.status === 'initial'),\n isFetching: createSelector(selectRoot, state => state.status === 'fetching'),\n isSuccess: createSelector(selectRoot, state => state.status === 'success'),\n isFailed: createSelector(selectRoot, state => state.status === 'failure'),\n wasFetched: createSelector(selectRoot, state => (state.fetchCount ?? 0) > 0),\n } as const;\n }\n}\n"],"mappings":"AAAA;;AAEA;AACA,OAAO,KAAKA,KAAK,MAAM,kBAAkB;AAEzC,MAAM;EAAEC,YAAY;EAAEC;AAAe,CAAC,GAAGF,KAAK;;AAQ9C;AACA;AACA;;AAGA;AACA;AACA;;AAeA;AACA;AACA;AACA,OAAO,MAAMG,MAAM,GAAG;EACpBC,OAAO,EAAE,SAAS;EAClBC,QAAQ,EAAE,UAAU;EACpBC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE;AACX,CAA2C;;AAE3C;AACA,OAAO,MAAeC,UAAU,CAAC;EAC/B,WAAWL,MAAMA,CAAA,EAAG;IAClB,OAAOA,MAAM;EACf;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOM,aAAaA,CAClBC,IAAY,EACgC;IAC5C,OAAO;MACLC,OAAO,EAAEV,YAAY,CAAW,GAAGS,IAAI,UAAU,CAAC;MAClDJ,OAAO,EAAEL,YAAY,CAAQ,GAAGS,IAAI,UAAU,CAAC;MAC/CH,OAAO,EAAEN,YAAY,CAAS,GAAGS,IAAI,UAAU;IACjD,CAAC;EACH;;EAEA;AACF;AACA;AACA;EACE,OAAOE,cAAcA,CAAA,EAKjB;IACF;IACA,OAAO;MACLD,OAAOA,CACLE,KAAyB;MACzB;MACAC,OAAsC,EAClB;QACpB,OAAO;UACL,GAAGD,KAAK;UACRE,MAAM,EAAEZ,MAAM,CAACE;QACjB,CAAC;MACH,CAAC;MAEDC,OAAOA,CAACO,KAAyB,EAAEG,MAAkC,EAAsB;QACzF,OAAO;UACL,GAAGH,KAAK;UACRI,IAAI,EAAED,MAAM,CAACE,OAAO;UACpBH,MAAM,EAAEZ,MAAM,CAACG,OAAO;UACtBa,UAAU,EAAE,CAACN,KAAK,CAACM,UAAU,IAAI,CAAC,IAAI;QACxC,CAAC;MACH,CAAC;MAEDZ,OAAOA,CAACM,KAAyB,EAAEG,MAAmC,EAAsB;QAC1F,OAAO;UACL,GAAGH,KAAK;UACRO,KAAK,EAAEJ,MAAM,CAACE,OAAO;UACrBH,MAAM,EAAEZ,MAAM,CAACI,OAAO;UACtBY,UAAU,EAAE,CAACN,KAAK,CAACM,UAAU,IAAI,CAAC,IAAI;QACxC,CAAC;MACH;IACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOE,aAAaA,CAClBC,OAAmD,EACnDC,OAA0D,EACpD;IACN,MAAMC,QAAQ,GAAGhB,UAAU,CAACI,cAAc,CAA6B,CAAC;;IAExE;IACAW,OAAO,CAACE,OAAO,CAACH,OAAO,CAACX,OAAO,CAACe,IAAI,EAAEF,QAAQ,CAACb,OAAO,CAAC;IACvDY,OAAO,CAACE,OAAO,CAACH,OAAO,CAAChB,OAAO,CAACoB,IAAI,EAAEF,QAAQ,CAAClB,OAAO,CAAC;IACvDiB,OAAO,CAACE,OAAO,CAACH,OAAO,CAACf,OAAO,CAACmB,IAAI,EAAEF,QAAQ,CAACjB,OAAO,CAAC;EACzD;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOoB,eAAeA,CACpBC,UAA0B,EAC1B;IACA,OAAO;MACLC,SAAS,EAAE3B,cAAc,CAAC0B,UAAU,EAAEf,KAAK,IAAIA,KAAK,CAACE,MAAM,KAAK,SAAS,CAAC;MAC1Ee,UAAU,EAAE5B,cAAc,CAAC0B,UAAU,EAAEf,KAAK,IAAIA,KAAK,CAACE,MAAM,KAAK,UAAU,CAAC;MAC5EgB,SAAS,EAAE7B,cAAc,CAAC0B,UAAU,EAAEf,KAAK,IAAIA,KAAK,CAACE,MAAM,KAAK,SAAS,CAAC;MAC1EiB,QAAQ,EAAE9B,cAAc,CAAC0B,UAAU,EAAEf,KAAK,IAAIA,KAAK,CAACE,MAAM,KAAK,SAAS,CAAC;MACzEkB,UAAU,EAAE/B,cAAc,CAAC0B,UAAU,EAAEf,KAAK,IAAI,CAACA,KAAK,CAACM,UAAU,IAAI,CAAC,IAAI,CAAC;IAC7E,CAAC;EACH;AACF","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["takeChain","createSagaMiddleware","actionChannel","all","call","fork","race","select","take"],"sources":["../../../../src/utils/redux-saga/index.ts"],"sourcesContent":["export type { SagaExtendedMiddleware, SagaMiddlewareHandler } from './types';\nexport { takeChain } from './take-chain';\nexport { createSagaMiddleware } from './middleware';\nexport { actionChannel, all, call, fork, race, select, take } from './typed-effects';\n"],"mappings":"AACA,SAASA,SAAS,QAAQ,iBAAc;AACxC,SAASC,oBAAoB,QAAQ,iBAAc;AACnD,SAASC,aAAa,EAAEC,GAAG,EAAEC,IAAI,EAAEC,IAAI,EAAEC,IAAI,EAAEC,MAAM,EAAEC,IAAI,QAAQ,oBAAiB","ignoreList":[]}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/* eslint-disable jsdoc/require-jsdoc */
|
|
2
|
+
|
|
3
|
+
import createSagaMiddleware, { END } from 'redux-saga';
|
|
4
|
+
import { call, cancel, delay, fork, race } from 'redux-saga/effects';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Возвращает расширенную версию SagaMiddleware.
|
|
8
|
+
* @param handler Обработчик событий.
|
|
9
|
+
* @return Middleware.
|
|
10
|
+
*/
|
|
11
|
+
function createSagaExtendedMiddleware(handler) {
|
|
12
|
+
return new MiddlewareControl(handler).toMiddleware();
|
|
13
|
+
}
|
|
14
|
+
class MiddlewareControl {
|
|
15
|
+
constructor(handler) {
|
|
16
|
+
this.handler = handler;
|
|
17
|
+
this.sagaMiddleware = createSagaMiddleware({
|
|
18
|
+
onError: (error, info) => {
|
|
19
|
+
handler.onSagaError(error, info);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
toMiddleware() {
|
|
24
|
+
const middleware = api => {
|
|
25
|
+
this.api = api;
|
|
26
|
+
return this.sagaMiddleware(api);
|
|
27
|
+
};
|
|
28
|
+
middleware.timeout = (milliseconds, config) => {
|
|
29
|
+
this.configInterrupt(milliseconds, config);
|
|
30
|
+
return middleware;
|
|
31
|
+
};
|
|
32
|
+
middleware.run = async (saga, ...args) => {
|
|
33
|
+
await this.run(saga, ...args);
|
|
34
|
+
};
|
|
35
|
+
return middleware;
|
|
36
|
+
}
|
|
37
|
+
configInterrupt(milliseconds, config) {
|
|
38
|
+
this.interruptTimeout = milliseconds;
|
|
39
|
+
this.interruptStrategy = config?.strategy ?? 'cancel-task';
|
|
40
|
+
}
|
|
41
|
+
async run(saga, ...args) {
|
|
42
|
+
const {
|
|
43
|
+
interruptTimeout
|
|
44
|
+
} = this;
|
|
45
|
+
if (typeof interruptTimeout === 'number' && Number.isFinite(interruptTimeout)) {
|
|
46
|
+
switch (this.interruptStrategy) {
|
|
47
|
+
case 'cancel-task':
|
|
48
|
+
await this.runWithBreakTask({
|
|
49
|
+
saga,
|
|
50
|
+
args,
|
|
51
|
+
timeout: interruptTimeout
|
|
52
|
+
});
|
|
53
|
+
return;
|
|
54
|
+
case 'dispatch-end':
|
|
55
|
+
await this.runWithBreakMiddleware({
|
|
56
|
+
saga,
|
|
57
|
+
args,
|
|
58
|
+
timeout: interruptTimeout
|
|
59
|
+
});
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
await this.sagaMiddleware.run(saga, ...args).toPromise();
|
|
64
|
+
}
|
|
65
|
+
async runWithBreakTask(data) {
|
|
66
|
+
const result = await this.sagaMiddleware.run(runWithTimeLimit, data).toPromise();
|
|
67
|
+
if (!result.done) {
|
|
68
|
+
this.handler.onTimeoutInterrupt({
|
|
69
|
+
timeout: data.timeout
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
async runWithBreakMiddleware(data) {
|
|
74
|
+
const {
|
|
75
|
+
saga,
|
|
76
|
+
args,
|
|
77
|
+
timeout
|
|
78
|
+
} = data;
|
|
79
|
+
const {
|
|
80
|
+
api
|
|
81
|
+
} = this;
|
|
82
|
+
if (!api) {
|
|
83
|
+
const error = new Error('Middleware is not applied to the store');
|
|
84
|
+
this.handler.onConfigError(error);
|
|
85
|
+
throw error;
|
|
86
|
+
}
|
|
87
|
+
const promises = [];
|
|
88
|
+
let ready = false;
|
|
89
|
+
let timerId;
|
|
90
|
+
promises.push(this.sagaMiddleware.run(saga, ...args).toPromise().then(() => {
|
|
91
|
+
ready = true;
|
|
92
|
+
}).finally(() => {
|
|
93
|
+
// вне зависимости от результата отключаем таймер если он есть
|
|
94
|
+
timerId !== undefined && clearTimeout(timerId);
|
|
95
|
+
}));
|
|
96
|
+
promises.push(new Promise(resolve => {
|
|
97
|
+
timerId = setTimeout(() => {
|
|
98
|
+
if (!ready) {
|
|
99
|
+
this.handler.onTimeoutInterrupt({
|
|
100
|
+
timeout
|
|
101
|
+
});
|
|
102
|
+
api.dispatch(END);
|
|
103
|
+
}
|
|
104
|
+
resolve();
|
|
105
|
+
}, timeout);
|
|
106
|
+
}));
|
|
107
|
+
await Promise.race(promises);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
function* runWithTimeLimit(data) {
|
|
111
|
+
const {
|
|
112
|
+
saga,
|
|
113
|
+
args,
|
|
114
|
+
timeout
|
|
115
|
+
} = data;
|
|
116
|
+
const task = yield fork(saga, ...args);
|
|
117
|
+
const [needCancel, taskResult] = yield race([delay(timeout, true), call(() => task.toPromise())]);
|
|
118
|
+
if (needCancel) {
|
|
119
|
+
yield cancel(task);
|
|
120
|
+
|
|
121
|
+
// ВАЖНО: если делать throw ... - ошибка попадет в onError (createSagaMiddleware)
|
|
122
|
+
// чтобы не логировать лишний раз возвращаем значение
|
|
123
|
+
return {
|
|
124
|
+
done: false,
|
|
125
|
+
error: new SagaCancelSignal()
|
|
126
|
+
};
|
|
127
|
+
} else {
|
|
128
|
+
return {
|
|
129
|
+
done: true,
|
|
130
|
+
value: taskResult
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// @todo в будущем можно заменить все ожидаемые исключения (только внутри фреймворка) на этот тип
|
|
136
|
+
|
|
137
|
+
class SagaCancelSignal {
|
|
138
|
+
constructor() {
|
|
139
|
+
this.name = 'SagaCancelSignal';
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
export { createSagaExtendedMiddleware as createSagaMiddleware };
|
|
143
|
+
//# sourceMappingURL=middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.js","names":["createSagaMiddleware","END","call","cancel","delay","fork","race","createSagaExtendedMiddleware","handler","MiddlewareControl","toMiddleware","constructor","sagaMiddleware","onError","error","info","onSagaError","middleware","api","timeout","milliseconds","config","configInterrupt","run","saga","args","interruptTimeout","interruptStrategy","strategy","Number","isFinite","runWithBreakTask","runWithBreakMiddleware","toPromise","data","result","runWithTimeLimit","done","onTimeoutInterrupt","Error","onConfigError","promises","ready","timerId","push","then","finally","undefined","clearTimeout","Promise","resolve","setTimeout","dispatch","task","needCancel","taskResult","SagaCancelSignal","value","name"],"sources":["../../../../src/utils/redux-saga/middleware.ts"],"sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\nimport { MiddlewareAPI } from '@reduxjs/toolkit';\nimport {\n SagaExtendedMiddleware,\n SagaInterruptConfig,\n SagaMiddlewareHandler,\n SagaTimeoutRunData,\n} from './types';\nimport createSagaMiddleware, { END, Saga, Task, SagaMiddleware } from 'redux-saga';\nimport { call, cancel, delay, fork, race } from 'redux-saga/effects';\n\n/**\n * Возвращает расширенную версию SagaMiddleware.\n * @param handler Обработчик событий.\n * @return Middleware.\n */\nfunction createSagaExtendedMiddleware(handler: SagaMiddlewareHandler): SagaExtendedMiddleware {\n return new MiddlewareControl(handler).toMiddleware();\n}\n\nclass MiddlewareControl {\n private api?: MiddlewareAPI;\n private interruptTimeout?: number;\n private interruptStrategy?: SagaInterruptConfig['strategy'];\n private handler: SagaMiddlewareHandler;\n private sagaMiddleware: SagaMiddleware;\n\n constructor(handler: SagaMiddlewareHandler) {\n this.handler = handler;\n\n this.sagaMiddleware = createSagaMiddleware({\n onError: (error, info) => {\n handler.onSagaError(error, info);\n },\n });\n }\n\n toMiddleware(): SagaExtendedMiddleware {\n const middleware: SagaExtendedMiddleware = api => {\n this.api = api;\n return this.sagaMiddleware(api);\n };\n\n middleware.timeout = (milliseconds, config) => {\n this.configInterrupt(milliseconds, config);\n return middleware;\n };\n\n middleware.run = async (saga, ...args) => {\n await this.run(saga, ...args);\n };\n\n return middleware;\n }\n\n private configInterrupt(milliseconds: number, config?: SagaInterruptConfig) {\n this.interruptTimeout = milliseconds;\n this.interruptStrategy = config?.strategy ?? 'cancel-task';\n }\n\n private async run<S extends Saga>(saga: S, ...args: Parameters<S>): Promise<void> {\n const { interruptTimeout } = this;\n\n if (typeof interruptTimeout === 'number' && Number.isFinite(interruptTimeout)) {\n switch (this.interruptStrategy) {\n case 'cancel-task':\n await this.runWithBreakTask({ saga, args, timeout: interruptTimeout });\n return;\n case 'dispatch-end':\n await this.runWithBreakMiddleware({ saga, args, timeout: interruptTimeout });\n return;\n }\n }\n\n await this.sagaMiddleware.run(saga, ...args).toPromise();\n }\n\n private async runWithBreakTask<S extends Saga>(data: SagaTimeoutRunData<S>): Promise<void> {\n const result: Either<unknown, unknown> = await this.sagaMiddleware\n .run(runWithTimeLimit, data)\n .toPromise();\n\n if (!result.done) {\n this.handler.onTimeoutInterrupt({ timeout: data.timeout });\n }\n }\n\n private async runWithBreakMiddleware<S extends Saga>(data: SagaTimeoutRunData<S>): Promise<void> {\n const { saga, args, timeout } = data;\n const { api } = this;\n\n if (!api) {\n const error = new Error('Middleware is not applied to the store');\n\n this.handler.onConfigError(error);\n\n throw error;\n }\n\n const promises: Promise<void>[] = [];\n\n let ready = false;\n let timerId: ReturnType<typeof setTimeout>;\n\n promises.push(\n this.sagaMiddleware\n .run(saga, ...args)\n .toPromise()\n .then(() => {\n ready = true;\n })\n .finally(() => {\n // вне зависимости от результата отключаем таймер если он есть\n timerId !== undefined && clearTimeout(timerId);\n }),\n );\n\n promises.push(\n new Promise<void>(resolve => {\n timerId = setTimeout(() => {\n if (!ready) {\n this.handler.onTimeoutInterrupt({ timeout });\n api.dispatch(END);\n }\n\n resolve();\n }, timeout);\n }),\n );\n\n await Promise.race(promises);\n }\n}\n\nfunction* runWithTimeLimit<S extends Saga>(\n data: SagaTimeoutRunData<S>,\n): Generator<any, Either<SagaCancelSignal, ReturnType<S>>, any> {\n const { saga, args, timeout } = data;\n const task: Task = yield fork(saga, ...args);\n\n const [needCancel, taskResult]: [boolean, ReturnType<S>] = yield race([\n delay(timeout, true),\n call(() => task.toPromise()),\n ]);\n\n if (needCancel) {\n yield cancel(task);\n\n // ВАЖНО: если делать throw ... - ошибка попадет в onError (createSagaMiddleware)\n // чтобы не логировать лишний раз возвращаем значение\n return { done: false, error: new SagaCancelSignal() };\n } else {\n return { done: true, value: taskResult };\n }\n}\n\n// @todo в будущем можно заменить все ожидаемые исключения (только внутри фреймворка) на этот тип\ntype Either<E, V> = { done: false; error: E } | { done: true; value: V };\n\nclass SagaCancelSignal {\n name: string;\n\n constructor() {\n this.name = 'SagaCancelSignal';\n }\n}\n\nexport { createSagaExtendedMiddleware as createSagaMiddleware };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { delay, fork, put, race, take } from 'redux-saga/effects';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Накапливает экшены и генерирует эффект по таймауту.
|
|
5
|
+
* @param timeout Время задержки в мс.
|
|
6
|
+
* @param types Массив с типами ожидаемых экшенов.
|
|
7
|
+
* @param task Генератор.
|
|
8
|
+
* @param deps Аргументы для генератора.
|
|
9
|
+
* @return Эффект.
|
|
10
|
+
*/
|
|
11
|
+
export function takeChain(timeout, types, task, ...deps) {
|
|
12
|
+
return fork(generateTakeChain, timeout, types, task, deps);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Генерирует эффект по таймауту.
|
|
17
|
+
* @internal
|
|
18
|
+
* @param timeout Время задержки в мс.
|
|
19
|
+
* @param types Массив с типами ожидаемых экшенов.
|
|
20
|
+
* @param task Генератор.
|
|
21
|
+
* @param deps Аргументы для генератора.
|
|
22
|
+
*/
|
|
23
|
+
export function* generateTakeChain(timeout, types, task, deps) {
|
|
24
|
+
while (true) {
|
|
25
|
+
const breakAction = {
|
|
26
|
+
type: `BREAK_${Date.now()}`
|
|
27
|
+
};
|
|
28
|
+
const firstAction = yield take(types);
|
|
29
|
+
const collectedActions = [firstAction];
|
|
30
|
+
yield fork(putDelayed, timeout, breakAction);
|
|
31
|
+
while (true) {
|
|
32
|
+
const {
|
|
33
|
+
action,
|
|
34
|
+
canceled
|
|
35
|
+
} = yield race({
|
|
36
|
+
action: take(types),
|
|
37
|
+
canceled: take(breakAction.type)
|
|
38
|
+
});
|
|
39
|
+
action && collectedActions.push(action);
|
|
40
|
+
if (canceled || types.every(type => collectedActions.some(someAction => someAction.type === type))) {
|
|
41
|
+
// @todo убрать "as any"
|
|
42
|
+
yield fork(task, ...deps, collectedActions);
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Вызывает экшен с заданной задержкой.
|
|
51
|
+
* @internal
|
|
52
|
+
* @param timeout Время задержки в мс.
|
|
53
|
+
* @param action Тип экшена.
|
|
54
|
+
*/
|
|
55
|
+
export function* putDelayed(timeout, action) {
|
|
56
|
+
yield delay(timeout);
|
|
57
|
+
yield put(action);
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=take-chain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"take-chain.js","names":["delay","fork","put","race","take","takeChain","timeout","types","task","deps","generateTakeChain","breakAction","type","Date","now","firstAction","collectedActions","putDelayed","action","canceled","push","every","some","someAction"],"sources":["../../../../src/utils/redux-saga/take-chain.ts"],"sourcesContent":["import { Action } from '@reduxjs/toolkit';\nimport { delay, fork, put, race, take } from 'redux-saga/effects';\n\n/**\n * Накапливает экшены и генерирует эффект по таймауту.\n * @param timeout Время задержки в мс.\n * @param types Массив с типами ожидаемых экшенов.\n * @param task Генератор.\n * @param deps Аргументы для генератора.\n * @return Эффект.\n */\nexport function takeChain<\n Deps extends any[],\n Task extends (...someArgs: [...Deps, Action[]]) => any,\n>(timeout: number, types: string[], task: Task, ...deps: Deps) {\n return fork(generateTakeChain as any, timeout, types, task, deps);\n}\n\n/**\n * Генерирует эффект по таймауту.\n * @internal\n * @param timeout Время задержки в мс.\n * @param types Массив с типами ожидаемых экшенов.\n * @param task Генератор.\n * @param deps Аргументы для генератора.\n */\nexport function* generateTakeChain<\n Deps extends any[],\n Task extends (...someArgs: [...Deps, Action[]]) => any,\n>(timeout: number, types: string[], task: Task, deps: Deps): Generator<any, void, any> {\n while (true) {\n const breakAction: Action = { type: `BREAK_${Date.now()}` };\n const firstAction: Action = yield take(types);\n const collectedActions = [firstAction];\n\n yield fork(putDelayed, timeout, breakAction);\n\n while (true) {\n const { action, canceled } = yield race({\n action: take(types),\n canceled: take(breakAction.type),\n });\n\n action && collectedActions.push(action);\n\n if (\n canceled ||\n types.every(type => collectedActions.some(someAction => someAction.type === type))\n ) {\n // @todo убрать \"as any\"\n yield fork(task as any, ...deps, collectedActions);\n break;\n }\n }\n }\n}\n\n/**\n * Вызывает экшен с заданной задержкой.\n * @internal\n * @param timeout Время задержки в мс.\n * @param action Тип экшена.\n */\nexport function* putDelayed(timeout: number, action: Action) {\n yield delay(timeout);\n yield put(action);\n}\n"],"mappings":"AACA,SAASA,KAAK,EAAEC,IAAI,EAAEC,GAAG,EAAEC,IAAI,EAAEC,IAAI,QAAQ,oBAAoB;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,SAASA,CAGvBC,OAAe,EAAEC,KAAe,EAAEC,IAAU,EAAE,GAAGC,IAAU,EAAE;EAC7D,OAAOR,IAAI,CAACS,iBAAiB,EAASJ,OAAO,EAAEC,KAAK,EAAEC,IAAI,EAAEC,IAAI,CAAC;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,UAAUC,iBAAiBA,CAGhCJ,OAAe,EAAEC,KAAe,EAAEC,IAAU,EAAEC,IAAU,EAA6B;EACrF,OAAO,IAAI,EAAE;IACX,MAAME,WAAmB,GAAG;MAAEC,IAAI,EAAE,SAASC,IAAI,CAACC,GAAG,CAAC,CAAC;IAAG,CAAC;IAC3D,MAAMC,WAAmB,GAAG,MAAMX,IAAI,CAACG,KAAK,CAAC;IAC7C,MAAMS,gBAAgB,GAAG,CAACD,WAAW,CAAC;IAEtC,MAAMd,IAAI,CAACgB,UAAU,EAAEX,OAAO,EAAEK,WAAW,CAAC;IAE5C,OAAO,IAAI,EAAE;MACX,MAAM;QAAEO,MAAM;QAAEC;MAAS,CAAC,GAAG,MAAMhB,IAAI,CAAC;QACtCe,MAAM,EAAEd,IAAI,CAACG,KAAK,CAAC;QACnBY,QAAQ,EAAEf,IAAI,CAACO,WAAW,CAACC,IAAI;MACjC,CAAC,CAAC;MAEFM,MAAM,IAAIF,gBAAgB,CAACI,IAAI,CAACF,MAAM,CAAC;MAEvC,IACEC,QAAQ,IACRZ,KAAK,CAACc,KAAK,CAACT,IAAI,IAAII,gBAAgB,CAACM,IAAI,CAACC,UAAU,IAAIA,UAAU,CAACX,IAAI,KAAKA,IAAI,CAAC,CAAC,EAClF;QACA;QACA,MAAMX,IAAI,CAACO,IAAI,EAAS,GAAGC,IAAI,EAAEO,gBAAgB,CAAC;QAClD;MACF;IACF;EACF;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,UAAUC,UAAUA,CAACX,OAAe,EAAEY,MAAc,EAAE;EAC3D,MAAMlB,KAAK,CAACM,OAAO,CAAC;EACpB,MAAMJ,GAAG,CAACgB,MAAM,CAAC;AACnB","ignoreList":[]}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { actionChannel as rawActionChannel, all as rawAll, call as rawCall, fork as rawFork, race as rawRace, select as rawSelect, take as rawTake } from 'redux-saga/effects';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Типизированный `all` эффект из `redux-saga/effects`.
|
|
5
|
+
*
|
|
6
|
+
* Для использования необходимо добавлять астериск `yield*`.
|
|
7
|
+
* @param effects Коллекция эффектов.
|
|
8
|
+
* @return Эффект.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
export function* all(effects) {
|
|
12
|
+
return yield rawAll(effects);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Типизированный `race` эффект из `redux-saga/effects`.
|
|
17
|
+
*
|
|
18
|
+
* Для использования необходимо добавлять астериск `yield*`.
|
|
19
|
+
* @param effects Коллекция эффектов.
|
|
20
|
+
* @return Эффект.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
export function* race(effects) {
|
|
24
|
+
return yield rawRace(effects);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Типизированный `call` эффект из `redux-saga/effects`.
|
|
29
|
+
*
|
|
30
|
+
* Для использования необходимо добавлять астериск `yield*`.
|
|
31
|
+
* @param fn Функция.
|
|
32
|
+
* @param args Аргументы.
|
|
33
|
+
* @return Эффект.
|
|
34
|
+
*/
|
|
35
|
+
|
|
36
|
+
export function* call(fn, ...args) {
|
|
37
|
+
return yield rawCall(fn, ...args);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Типизированный `fork` эффект из `redux-saga/effects`.
|
|
42
|
+
*
|
|
43
|
+
* Для использования необходимо добавлять астериск `yield*`.
|
|
44
|
+
* @param fn Функция.
|
|
45
|
+
* @param args Аргументы.
|
|
46
|
+
* @return Эффект.
|
|
47
|
+
*/
|
|
48
|
+
|
|
49
|
+
export function* fork(fn, ...args) {
|
|
50
|
+
return yield rawFork(fn, ...args);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Типизированный `select` эффект из `redux-saga/effects`.
|
|
55
|
+
*
|
|
56
|
+
* Для использования необходимо добавлять астериск `yield*`.
|
|
57
|
+
* @param selector Селектор.
|
|
58
|
+
* @param args Аргументы.
|
|
59
|
+
* @return Эффект.
|
|
60
|
+
*/
|
|
61
|
+
export function* select(selector, ...args) {
|
|
62
|
+
return yield rawSelect(selector, ...args);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Типизированный `take` эффект из `redux-saga/effects`.
|
|
67
|
+
*
|
|
68
|
+
* Для использования необходимо добавлять астериск `yield*`.
|
|
69
|
+
* @param pattern Экшен.
|
|
70
|
+
* @return Эффект.
|
|
71
|
+
*/
|
|
72
|
+
|
|
73
|
+
export function* take(...args) {
|
|
74
|
+
return yield rawTake(...args);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Типизированный `actionChannel` эффект из `redux-saga/effects`.
|
|
79
|
+
*
|
|
80
|
+
* Для использования необходимо добавлять астериск `yield*`.
|
|
81
|
+
* @param args Аргументы.
|
|
82
|
+
* @return Эффект.
|
|
83
|
+
*/
|
|
84
|
+
export function* actionChannel(...args) {
|
|
85
|
+
return yield rawActionChannel(...args);
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=typed-effects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-effects.js","names":["actionChannel","rawActionChannel","all","rawAll","call","rawCall","fork","rawFork","race","rawRace","select","rawSelect","take","rawTake","effects","fn","args","selector"],"sources":["../../../../src/utils/redux-saga/typed-effects.ts"],"sourcesContent":["import type { PayloadAction } from '@reduxjs/toolkit';\nimport type { Action, Buffer, Channel, SagaIterator, TakeableChannel, Task } from 'redux-saga';\nimport {\n actionChannel as rawActionChannel,\n all as rawAll,\n call as rawCall,\n fork as rawFork,\n race as rawRace,\n select as rawSelect,\n take as rawTake,\n type TakeEffect,\n type ActionPattern,\n type SagaReturnType,\n type Tail,\n type CallEffectDescriptor,\n type Effect,\n type Pattern,\n} from 'redux-saga/effects';\n\ntype EffectReturnType<T extends Effect> =\n T['payload'] extends CallEffectDescriptor<infer RT>\n ? RT\n : T extends TakeEffect\n ? PayloadAction<unknown>\n : never;\n\n/**\n * Типизированный `all` эффект из `redux-saga/effects`.\n *\n * Для использования необходимо добавлять астериск `yield*`.\n * @param effects Коллекция эффектов.\n * @return Эффект.\n */\nexport function all<T extends Effect>(effects: T[]): SagaIterator<EffectReturnType<T>[]>;\nexport function all<T extends Record<string, Effect>>(\n effects: T,\n): SagaIterator<{ [K in keyof T]: EffectReturnType<T[K]> }>;\nexport function* all(effects: unknown[]): Generator {\n return yield rawAll(effects);\n}\n\n/**\n * Типизированный `race` эффект из `redux-saga/effects`.\n *\n * Для использования необходимо добавлять астериск `yield*`.\n * @param effects Коллекция эффектов.\n * @return Эффект.\n */\nexport function race<T extends Effect>(effects: T[]): SagaIterator<Partial<EffectReturnType<T>[]>>;\nexport function race<T extends Record<string, Effect>>(\n effects: T,\n): SagaIterator<Partial<{ [K in keyof T]: EffectReturnType<T[K]> }>>;\nexport function* race(effects: unknown[]): Generator {\n return yield rawRace(effects);\n}\n\n/**\n * Типизированный `call` эффект из `redux-saga/effects`.\n *\n * Для использования необходимо добавлять астериск `yield*`.\n * @param fn Функция.\n * @param args Аргументы.\n * @return Эффект.\n */\nexport function call<Args extends any[], Fn extends (...args: Args) => any>(\n fn: Fn,\n ...args: Parameters<Fn>\n): SagaIterator<SagaReturnType<Fn>>;\nexport function call<\n Ctx extends { [P in Name]: (this: Ctx, ...args: any[]) => any },\n Name extends string,\n>(\n ctxAndFnName: [Ctx, Name],\n ...args: Parameters<Ctx[Name]>\n): SagaIterator<SagaReturnType<Ctx[Name]>>;\nexport function call<\n Ctx extends { [P in Name]: (this: Ctx, ...args: any[]) => any },\n Name extends string,\n>(\n ctxAndFnName: { context: Ctx; fn: Name },\n ...args: Parameters<Ctx[Name]>\n): SagaIterator<SagaReturnType<Ctx[Name]>>;\nexport function call<Ctx, Fn extends (this: Ctx, ...args: any[]) => any>(\n ctxAndFn: [Ctx, Fn],\n ...args: Parameters<Fn>\n): SagaIterator<SagaReturnType<Fn>>;\nexport function call<Ctx, Fn extends (this: Ctx, ...args: any[]) => any>(\n ctxAndFn: { context: Ctx; fn: Fn },\n ...args: Parameters<Fn>\n): SagaIterator<SagaReturnType<Fn>>;\nexport function* call(fn: any, ...args: unknown[]): Generator {\n return yield rawCall(fn, ...args);\n}\n\n/**\n * Типизированный `fork` эффект из `redux-saga/effects`.\n *\n * Для использования необходимо добавлять астериск `yield*`.\n * @param fn Функция.\n * @param args Аргументы.\n * @return Эффект.\n */\nexport function fork<Fn extends (...args: any[]) => any>(\n fn: Fn,\n ...args: Parameters<Fn>\n): SagaIterator<Task<SagaReturnType<Fn>>>;\nexport function fork<\n Ctx extends { [P in Name]: (this: Ctx, ...args: any[]) => any },\n Name extends string,\n>(\n ctxAndFnName: [Ctx, Name],\n ...args: Parameters<Ctx[Name]>\n): SagaIterator<Task<SagaReturnType<Ctx[Name]>>>;\nexport function fork<\n Ctx extends { [P in Name]: (this: Ctx, ...args: any[]) => any },\n Name extends string,\n>(\n ctxAndFnName: { context: Ctx; fn: Name },\n ...args: Parameters<Ctx[Name]>\n): SagaIterator<Task<SagaReturnType<Ctx[Name]>>>;\nexport function fork<Ctx, Fn extends (this: Ctx, ...args: any[]) => any>(\n ctxAndFn: [Ctx, Fn],\n ...args: Parameters<Fn>\n): SagaIterator<Task<SagaReturnType<Fn>>>;\nexport function fork<Ctx, Fn extends (this: Ctx, ...args: any[]) => any>(\n ctxAndFn: { context: Ctx; fn: Fn },\n ...args: Parameters<Fn>\n): SagaIterator<Task<SagaReturnType<Fn>>>;\nexport function* fork(fn: any, ...args: unknown[]): Generator {\n return yield rawFork(fn, ...args);\n}\n\n/**\n * Типизированный `select` эффект из `redux-saga/effects`.\n *\n * Для использования необходимо добавлять астериск `yield*`.\n * @param selector Селектор.\n * @param args Аргументы.\n * @return Эффект.\n */\nexport function* select<Fn extends (selector: any, ...args: any[]) => any>(\n selector: Fn,\n ...args: Tail<Parameters<Fn>>\n): SagaIterator<SagaReturnType<Fn>> {\n return yield rawSelect(selector, ...args);\n}\n\n/**\n * Типизированный `take` эффект из `redux-saga/effects`.\n *\n * Для использования необходимо добавлять астериск `yield*`.\n * @param pattern Экшен.\n * @return Эффект.\n */\nexport function take<A extends Action = PayloadAction<unknown>>(\n pattern?: Action[],\n): SagaIterator<A>;\nexport function take<A extends Action>(pattern?: ActionPattern<A>): SagaIterator<A>;\nexport function take<T>(\n channel: TakeableChannel<T>,\n multicastPattern?: Pattern<T>,\n): SagaIterator<T>;\nexport function* take(...args: any[]): Generator {\n return yield rawTake(...args);\n}\n\n/**\n * Типизированный `actionChannel` эффект из `redux-saga/effects`.\n *\n * Для использования необходимо добавлять астериск `yield*`.\n * @param args Аргументы.\n * @return Эффект.\n */\nexport function* actionChannel<A extends Action>(\n ...args: [ActionPattern, Buffer<A>?]\n): SagaIterator<Channel<A>> {\n return yield rawActionChannel(...args);\n}\n"],"mappings":"AAEA,SACEA,aAAa,IAAIC,gBAAgB,EACjCC,GAAG,IAAIC,MAAM,EACbC,IAAI,IAAIC,OAAO,EACfC,IAAI,IAAIC,OAAO,EACfC,IAAI,IAAIC,OAAO,EACfC,MAAM,IAAIC,SAAS,EACnBC,IAAI,IAAIC,OAAO,QAQV,oBAAoB;;AAS3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,UAAUX,GAAGA,CAACY,OAAkB,EAAa;EAClD,OAAO,MAAMX,MAAM,CAACW,OAAO,CAAC;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,UAAUN,IAAIA,CAACM,OAAkB,EAAa;EACnD,OAAO,MAAML,OAAO,CAACK,OAAO,CAAC;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA2BA,OAAO,UAAUV,IAAIA,CAACW,EAAO,EAAE,GAAGC,IAAe,EAAa;EAC5D,OAAO,MAAMX,OAAO,CAACU,EAAE,EAAE,GAAGC,IAAI,CAAC;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA2BA,OAAO,UAAUV,IAAIA,CAACS,EAAO,EAAE,GAAGC,IAAe,EAAa;EAC5D,OAAO,MAAMT,OAAO,CAACQ,EAAE,EAAE,GAAGC,IAAI,CAAC;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,UAAUN,MAAMA,CACrBO,QAAY,EACZ,GAAGD,IAA0B,EACK;EAClC,OAAO,MAAML,SAAS,CAACM,QAAQ,EAAE,GAAGD,IAAI,CAAC;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AASA,OAAO,UAAUJ,IAAIA,CAAC,GAAGI,IAAW,EAAa;EAC/C,OAAO,MAAMH,OAAO,CAAC,GAAGG,IAAI,CAAC;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,UAAUhB,aAAaA,CAC5B,GAAGgB,IAAiC,EACV;EAC1B,OAAO,MAAMf,gBAAgB,CAAC,GAAGe,IAAI,CAAC;AACxC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/utils/redux-saga/types.ts"],"sourcesContent":["import type { Middleware } from '@reduxjs/toolkit';\nimport type { Saga, SagaMiddlewareOptions } from 'redux-saga';\n\n/** Опции остановки redux-saga. */\nexport interface SagaInterruptConfig {\n strategy?: 'dispatch-end' | 'cancel-task';\n}\n\n/** Информация, которая приходит вторым аргументом в обработчик ошибки SagaMiddleware. */\nexport type SagaErrorInfo = Parameters<Required<SagaMiddlewareOptions>['onError']>[1];\n\n/** Информация об остановке redux-saga. */\nexport interface SagaInterruptInfo {\n timeout: number;\n}\n\n/** Опции запуска redux-saga с остановкой по таймауту. */\nexport interface SagaTimeoutRunData<S extends Saga> {\n saga: S;\n args: Parameters<S>;\n timeout: number;\n}\n\n/** Кастомная версия SagaMiddleware. */\nexport interface SagaExtendedMiddleware extends Middleware {\n /**\n * Установить временное ограничение работы саги.\n * Если сага не успела выполнится до истечения этого ограничения она будет принудительно завершена.\n */\n timeout(milliseconds: number, config?: SagaInterruptConfig): this;\n\n /**\n * Запускает сагу.\n */\n run: <S extends Saga>(saga: S, ...args: Parameters<S>) => Promise<void>;\n}\n\n/** Обработчик событий SagaExtendedMiddleware. */\nexport interface SagaMiddlewareHandler {\n onSagaError(error: Error, errorInfo: SagaErrorInfo): Promise<void> | void;\n onConfigError(error: Error): Promise<void> | void;\n onTimeoutInterrupt(info: SagaInterruptInfo): Promise<void> | void;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { createSelectorCreator, defaultMemoize } from 'reselect';
|
|
2
|
+
import { shallowEqual } from 'react-redux';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Опции для включения внутреннего кэша,
|
|
6
|
+
* чтобы селектор с параметрами запоминал вычисления при смене значения параметра.
|
|
7
|
+
*/
|
|
8
|
+
const MEMOIZE_OPTIONS = {
|
|
9
|
+
equalityCheck: shallowEqual,
|
|
10
|
+
resultEqualityCheck: shallowEqual,
|
|
11
|
+
maxSize: 10
|
|
12
|
+
};
|
|
13
|
+
const createCashedSelector = createSelectorCreator(defaultMemoize, MEMOIZE_OPTIONS);
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Возвращает каррированную версию селектора.
|
|
17
|
+
* По мотивам https://reselect.js.org/FAQ#how-can-i-make-a-curried-selector.
|
|
18
|
+
* @param selector Исходный селектор.
|
|
19
|
+
* @return Каррированный селектор.
|
|
20
|
+
*/
|
|
21
|
+
const currySelector = selector => {
|
|
22
|
+
/** @inheritdoc */
|
|
23
|
+
const curriedSelector = (...args) => state => selector(state, ...args);
|
|
24
|
+
return Object.assign(curriedSelector, selector, {
|
|
25
|
+
uncurried: selector
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Тот же createSelector, но возвращает каррированный селектор с кэшем параметров.
|
|
31
|
+
* По мотивам https://reselect.js.org/FAQ#how-can-i-make-a-curried-selector.
|
|
32
|
+
* @inheritdoc
|
|
33
|
+
*/
|
|
34
|
+
export const createCurriedSelector = (...args) => currySelector(createCashedSelector(...args));
|
|
35
|
+
//# sourceMappingURL=create-curried-selector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-curried-selector.js","names":["createSelectorCreator","defaultMemoize","shallowEqual","MEMOIZE_OPTIONS","equalityCheck","resultEqualityCheck","maxSize","createCashedSelector","currySelector","selector","curriedSelector","args","state","Object","assign","uncurried","createCurriedSelector"],"sources":["../../../../src/utils/selectors/create-curried-selector.ts"],"sourcesContent":["import {\n createSelectorCreator,\n defaultMemoize,\n createSelector,\n Selector,\n GetStateFromSelectors,\n GetParamsFromSelectors,\n} from 'reselect';\nimport { shallowEqual } from 'react-redux';\n\n/**\n * Опции для включения внутреннего кэша,\n * чтобы селектор с параметрами запоминал вычисления при смене значения параметра.\n */\nconst MEMOIZE_OPTIONS = {\n equalityCheck: shallowEqual,\n resultEqualityCheck: shallowEqual,\n maxSize: 10,\n};\n\nconst createCashedSelector = createSelectorCreator(defaultMemoize, MEMOIZE_OPTIONS);\n\n/**\n * Возвращает каррированную версию селектора.\n * По мотивам https://reselect.js.org/FAQ#how-can-i-make-a-curried-selector.\n * @param selector Исходный селектор.\n * @return Каррированный селектор.\n */\nconst currySelector = <\n State extends GetStateFromSelectors<InputSelectors>,\n Result,\n Params extends GetParamsFromSelectors<InputSelectors>,\n InputSelectors extends Selector[],\n AdditionalFields,\n>(\n selector: ReturnType<typeof createSelector<InputSelectors, Result>> & AdditionalFields,\n) => {\n /** @inheritdoc */\n const curriedSelector =\n (...args: Params) =>\n (state: State) =>\n selector(state, ...args);\n return Object.assign(curriedSelector, selector, { uncurried: selector });\n};\n\n/**\n * Тот же createSelector, но возвращает каррированный селектор с кэшем параметров.\n * По мотивам https://reselect.js.org/FAQ#how-can-i-make-a-curried-selector.\n * @inheritdoc\n */\nexport const createCurriedSelector = <InputSelectors extends Selector[], Result>(\n ...args: Parameters<typeof createSelector<InputSelectors, Result>>\n) => currySelector(createCashedSelector(...args));\n"],"mappings":"AAAA,SACEA,qBAAqB,EACrBC,cAAc,QAKT,UAAU;AACjB,SAASC,YAAY,QAAQ,aAAa;;AAE1C;AACA;AACA;AACA;AACA,MAAMC,eAAe,GAAG;EACtBC,aAAa,EAAEF,YAAY;EAC3BG,mBAAmB,EAAEH,YAAY;EACjCI,OAAO,EAAE;AACX,CAAC;AAED,MAAMC,oBAAoB,GAAGP,qBAAqB,CAACC,cAAc,EAAEE,eAAe,CAAC;;AAEnF;AACA;AACA;AACA;AACA;AACA;AACA,MAAMK,aAAa,GAOjBC,QAAsF,IACnF;EACH;EACA,MAAMC,eAAe,GACnBA,CAAC,GAAGC,IAAY,KACfC,KAAY,IACXH,QAAQ,CAACG,KAAK,EAAE,GAAGD,IAAI,CAAC;EAC5B,OAAOE,MAAM,CAACC,MAAM,CAACJ,eAAe,EAAED,QAAQ,EAAE;IAAEM,SAAS,EAAEN;EAAS,CAAC,CAAC;AAC1E,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMO,qBAAqB,GAAGA,CACnC,GAAGL,IAA+D,KAC/DH,aAAa,CAACD,oBAAoB,CAAC,GAAGI,IAAI,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import jsesc from 'jsesc';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Данные для SSR, сформированные на сервере.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Данные для SSR, доступные на стороне клиента (в браузере).
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Набор методов для связывания серверного и клиентского приложений.
|
|
14
|
+
*/
|
|
15
|
+
export const SsrBridge = {
|
|
16
|
+
/**
|
|
17
|
+
* Вызывается на сервере.
|
|
18
|
+
* @param serviceKey Идентификатор корневого элемента.
|
|
19
|
+
* @return Идентификатор корневого элемента и ключ для глобальной переменной.
|
|
20
|
+
*/
|
|
21
|
+
prepare(serviceKey) {
|
|
22
|
+
return {
|
|
23
|
+
rootElementId: `${serviceKey}__root`,
|
|
24
|
+
serverDataKey: `${serviceKey}__serverData`,
|
|
25
|
+
publicEnvsKey: `${serviceKey}__envs`
|
|
26
|
+
};
|
|
27
|
+
},
|
|
28
|
+
/**
|
|
29
|
+
* Вызывается на клиенте.
|
|
30
|
+
* @param serviceKey Идентификатор корневого элемента.
|
|
31
|
+
* @return Корневой элемент и начальное состояние.
|
|
32
|
+
*/
|
|
33
|
+
resolve(serviceKey) {
|
|
34
|
+
const rootElement = document.getElementById(`${serviceKey}__root`);
|
|
35
|
+
const serverSideData = window[`${serviceKey}__serverData`];
|
|
36
|
+
if (!rootElement) {
|
|
37
|
+
throw Error('SSR: Не был найден корневой элемент');
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
rootElement,
|
|
41
|
+
serverSideData
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Скрипт, формирующий глобально доступные на странице данные.
|
|
48
|
+
* @todo Перенести в utils/react.
|
|
49
|
+
* @param props Свойства.
|
|
50
|
+
* @return Элемент.
|
|
51
|
+
*/
|
|
52
|
+
export function GlobalDataScript({
|
|
53
|
+
property,
|
|
54
|
+
value
|
|
55
|
+
}) {
|
|
56
|
+
const json = jsesc(JSON.stringify(value), {
|
|
57
|
+
json: true,
|
|
58
|
+
isScriptContext: true
|
|
59
|
+
});
|
|
60
|
+
return /*#__PURE__*/React.createElement("script", {
|
|
61
|
+
dangerouslySetInnerHTML: {
|
|
62
|
+
// @todo возможно стоит также экранировать символы в "property"
|
|
63
|
+
__html: `window["${property}"] = JSON.parse(${json});`
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["jsesc","SsrBridge","prepare","serviceKey","rootElementId","serverDataKey","publicEnvsKey","resolve","rootElement","document","getElementById","serverSideData","window","Error","GlobalDataScript","property","value","json","JSON","stringify","isScriptContext","React","createElement","dangerouslySetInnerHTML","__html"],"sources":["../../../../src/utils/ssr/index.tsx"],"sourcesContent":["import jsesc from 'jsesc';\n\n/**\n * Данные для SSR, сформированные на сервере.\n */\nexport interface BridgeServerSide {\n rootElementId: string;\n serverDataKey: string;\n publicEnvsKey: string;\n}\n\n/**\n * Данные для SSR, доступные на стороне клиента (в браузере).\n */\nexport interface BridgeClientSide<T> {\n rootElement: HTMLElement;\n serverSideData: T;\n}\n\n/**\n * Набор методов для связывания серверного и клиентского приложений.\n */\nexport const SsrBridge = {\n /**\n * Вызывается на сервере.\n * @param serviceKey Идентификатор корневого элемента.\n * @return Идентификатор корневого элемента и ключ для глобальной переменной.\n */\n prepare(serviceKey: string): BridgeServerSide {\n return {\n rootElementId: `${serviceKey}__root`,\n serverDataKey: `${serviceKey}__serverData`,\n publicEnvsKey: `${serviceKey}__envs`,\n };\n },\n\n /**\n * Вызывается на клиенте.\n * @param serviceKey Идентификатор корневого элемента.\n * @return Корневой элемент и начальное состояние.\n */\n resolve<T = any>(serviceKey: string): BridgeClientSide<T> {\n const rootElement = document.getElementById(`${serviceKey}__root`);\n const serverSideData = (window as any)[`${serviceKey}__serverData`];\n\n if (!rootElement) {\n throw Error('SSR: Не был найден корневой элемент');\n }\n\n return { rootElement, serverSideData };\n },\n} as const;\n\n/**\n * Скрипт, формирующий глобально доступные на странице данные.\n * @todo Перенести в utils/react.\n * @param props Свойства.\n * @return Элемент.\n */\nexport function GlobalDataScript({\n property,\n value,\n}: {\n property: string;\n value: Record<any, any>;\n}) {\n const json = jsesc(JSON.stringify(value), {\n json: true,\n isScriptContext: true,\n });\n\n return (\n <script\n dangerouslySetInnerHTML={{\n // @todo возможно стоит также экранировать символы в \"property\"\n __html: `window[\"${property}\"] = JSON.parse(${json});`,\n }}\n />\n );\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;;AAEzB;AACA;AACA;;AAOA;AACA;AACA;;AAMA;AACA;AACA;AACA,OAAO,MAAMC,SAAS,GAAG;EACvB;AACF;AACA;AACA;AACA;EACEC,OAAOA,CAACC,UAAkB,EAAoB;IAC5C,OAAO;MACLC,aAAa,EAAE,GAAGD,UAAU,QAAQ;MACpCE,aAAa,EAAE,GAAGF,UAAU,cAAc;MAC1CG,aAAa,EAAE,GAAGH,UAAU;IAC9B,CAAC;EACH,CAAC;EAED;AACF;AACA;AACA;AACA;EACEI,OAAOA,CAAUJ,UAAkB,EAAuB;IACxD,MAAMK,WAAW,GAAGC,QAAQ,CAACC,cAAc,CAAC,GAAGP,UAAU,QAAQ,CAAC;IAClE,MAAMQ,cAAc,GAAIC,MAAM,CAAS,GAAGT,UAAU,cAAc,CAAC;IAEnE,IAAI,CAACK,WAAW,EAAE;MAChB,MAAMK,KAAK,CAAC,qCAAqC,CAAC;IACpD;IAEA,OAAO;MAAEL,WAAW;MAAEG;IAAe,CAAC;EACxC;AACF,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,gBAAgBA,CAAC;EAC/BC,QAAQ;EACRC;AAIF,CAAC,EAAE;EACD,MAAMC,IAAI,GAAGjB,KAAK,CAACkB,IAAI,CAACC,SAAS,CAACH,KAAK,CAAC,EAAE;IACxCC,IAAI,EAAE,IAAI;IACVG,eAAe,EAAE;EACnB,CAAC,CAAC;EAEF,oBACEC,KAAA,CAAAC,aAAA;IACEC,uBAAuB,EAAE;MACvB;MACAC,MAAM,EAAE,WAAWT,QAAQ,mBAAmBE,IAAI;IACpD;EAAE,CACH,CAAC;AAEN","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Отправка аналитики в dataLayer.
|
|
3
|
+
* @param eventData Данные события для отправки.
|
|
4
|
+
*/
|
|
5
|
+
export function dataLayerPush(eventData) {
|
|
6
|
+
const target = window;
|
|
7
|
+
if (typeof target.dataLayer?.push === 'function') {
|
|
8
|
+
// копируем объект так как window.dataLayer.push может менять аргумент в процессе работы
|
|
9
|
+
target.dataLayer.push({
|
|
10
|
+
...eventData
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data-layer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-layer.js","names":["dataLayerPush","eventData","target","window","dataLayer","push"],"sources":["../../../../../src/utils/web/analytics/data-layer.ts"],"sourcesContent":["/**\n * Отправка аналитики в dataLayer.\n * @param eventData Данные события для отправки.\n */\nexport function dataLayerPush(eventData: Record<string, any>): void {\n const target: any = window;\n\n if (typeof target.dataLayer?.push === 'function') {\n // копируем объект так как window.dataLayer.push может менять аргумент в процессе работы\n target.dataLayer.push({ ...eventData });\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA,OAAO,SAASA,aAAaA,CAACC,SAA8B,EAAQ;EAClE,MAAMC,MAAW,GAAGC,MAAM;EAE1B,IAAI,OAAOD,MAAM,CAACE,SAAS,EAAEC,IAAI,KAAK,UAAU,EAAE;IAChD;IACAH,MAAM,CAACE,SAAS,CAACC,IAAI,CAAC;MAAE,GAAGJ;IAAU,CAAC,CAAC;EACzC;AACF","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["dataLayerPush","okoPush"],"sources":["../../../../../src/utils/web/analytics/index.ts"],"sourcesContent":["export { dataLayerPush } from './data-layer';\nexport { type OkoEvent, okoPush } from './oko';\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,iBAAc;AAC5C,SAAwBC,OAAO,QAAQ,UAAO","ignoreList":[]}
|