@sima-land/isomorph 11.0.0-alpha.62 → 11.0.0-alpha.63
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/dist/cjs/cache/index.js.map +1 -1
- package/dist/cjs/cache/types.js.map +1 -1
- package/dist/cjs/config/base.js.map +1 -1
- package/dist/cjs/config/index.js.map +1 -1
- package/dist/cjs/config/source.js.map +1 -1
- package/dist/cjs/config/types.js.map +1 -1
- package/dist/cjs/di/application.js.map +1 -1
- package/dist/cjs/di/container.js.map +1 -1
- package/dist/cjs/di/errors.js.map +1 -1
- package/dist/cjs/di/index.js.map +1 -1
- package/dist/cjs/di/preset.js.map +1 -1
- package/dist/cjs/di/token.js.map +1 -1
- package/dist/cjs/di/types.js.map +1 -1
- package/dist/cjs/http/errors.js.map +1 -1
- package/dist/cjs/http/index.js.map +1 -1
- package/dist/cjs/http/types.js.map +1 -1
- package/dist/cjs/http/utils.js.map +1 -1
- package/dist/cjs/log/errors.js.map +1 -1
- package/dist/cjs/log/handler/pino.js.map +1 -1
- package/dist/cjs/log/handler/sentry.js.map +1 -1
- package/dist/cjs/log/index.js.map +1 -1
- package/dist/cjs/log/logger.js.map +1 -1
- package/dist/cjs/log/types.js.map +1 -1
- package/dist/cjs/package.json +23 -23
- package/dist/cjs/preset/isomorphic/index.js.map +1 -1
- package/dist/cjs/preset/isomorphic/providers/abort-controller.js.map +1 -1
- package/dist/cjs/preset/isomorphic/providers/axios-factory.js.map +1 -1
- package/dist/cjs/preset/isomorphic/providers/axios-log-handler.js.map +1 -1
- package/dist/cjs/preset/isomorphic/providers/base-config.js.map +1 -1
- package/dist/cjs/preset/isomorphic/providers/fetch.js.map +1 -1
- package/dist/cjs/preset/isomorphic/providers/redux-middleware-saga.js.map +1 -1
- package/dist/cjs/preset/isomorphic/types.js.map +1 -1
- package/dist/cjs/preset/isomorphic/utils/axios-logging.js.map +1 -1
- package/dist/cjs/preset/isomorphic/utils/disableable.js.map +1 -1
- package/dist/cjs/preset/isomorphic/utils/display-url.js.map +1 -1
- package/dist/cjs/preset/isomorphic/utils/fetch-logging.js.map +1 -1
- package/dist/cjs/preset/isomorphic/utils/get-fetch-error-logging.js.map +1 -1
- package/dist/cjs/preset/isomorphic/utils/get-fetch-extra-aborting.js.map +1 -1
- package/dist/cjs/preset/isomorphic/utils/get-fetch-logging.js.map +1 -1
- package/dist/cjs/preset/isomorphic/utils/http-api-host-pool.js.map +1 -1
- package/dist/cjs/preset/isomorphic/utils/http-status.js.map +1 -1
- package/dist/cjs/preset/isomorphic/utils/saga-logging.js.map +1 -1
- package/dist/cjs/preset/isomorphic/utils/severity-from-status.js.map +1 -1
- package/dist/cjs/preset/node/index.js.map +1 -1
- package/dist/cjs/preset/node/providers/config-source.js.map +1 -1
- package/dist/cjs/preset/node/providers/express-error-middleware.js.map +1 -1
- package/dist/cjs/preset/node/providers/express-factory.js.map +1 -1
- package/dist/cjs/preset/node/providers/express-log-middleware.js.map +1 -1
- package/dist/cjs/preset/node/providers/express-metrics-middleware.js.map +1 -1
- package/dist/cjs/preset/node/providers/express-request-middleware.js.map +1 -1
- package/dist/cjs/preset/node/providers/express-tracing-middleware.js.map +1 -1
- package/dist/cjs/preset/node/providers/log-handler-pino.js.map +1 -1
- package/dist/cjs/preset/node/providers/log-handler-sentry.js.map +1 -1
- package/dist/cjs/preset/node/providers/logger.js.map +1 -1
- package/dist/cjs/preset/node/providers/main-express-app.js +0 -1
- package/dist/cjs/preset/node/providers/main-express-app.js.map +1 -1
- package/dist/cjs/preset/node/providers/metrics-express-app.js.map +1 -1
- package/dist/cjs/preset/node/providers/public-envs.js.map +1 -1
- package/dist/cjs/preset/node/providers/telemetry-tracer-provider.js.map +1 -1
- package/dist/cjs/preset/node/providers/telemetry-tracer-resource.js.map +1 -1
- package/dist/cjs/preset/node/providers/telemetry-tracer-span-exporter.js.map +1 -1
- package/dist/cjs/preset/node/providers/telemetry-tracer.js.map +1 -1
- package/dist/cjs/preset/node/types.js.map +1 -1
- package/dist/cjs/preset/node/utils/axios-tracing-middleware.js.map +1 -1
- package/dist/cjs/preset/node/utils/emitter-as-target.js.map +1 -1
- package/dist/cjs/preset/node/utils/get-client-ip.js.map +1 -1
- package/dist/cjs/preset/node/utils/get-fetch-tracing.js.map +1 -1
- package/dist/cjs/preset/node/utils/get-forwarded-headers.js.map +1 -1
- package/dist/cjs/preset/node/utils/get-handler-metrics.js.map +1 -1
- package/dist/cjs/preset/node/utils/get-page-response-format.js.map +1 -1
- package/dist/cjs/preset/node/utils/get-serve-measuring.js.map +1 -1
- package/dist/cjs/preset/node/utils/handler-provider.js.map +1 -1
- package/dist/cjs/preset/node/utils/telemetry.js.map +1 -1
- package/dist/cjs/preset/node-handler/index.js.map +1 -1
- package/dist/cjs/preset/node-handler/providers/accepts-type.js.map +1 -1
- package/dist/cjs/preset/node-handler/providers/axios-log-handler.js.map +1 -1
- package/dist/cjs/preset/node-handler/providers/axios-middleware.js.map +1 -1
- package/dist/cjs/preset/node-handler/providers/fetch-middleware.js.map +1 -1
- package/dist/cjs/preset/node-handler/providers/handler-main.js.map +1 -1
- package/dist/cjs/preset/node-handler/providers/response-events.js.map +1 -1
- package/dist/cjs/preset/node-handler/providers/specific-params.js.map +1 -1
- package/dist/cjs/preset/server/constants.js.map +1 -1
- package/dist/cjs/preset/server/index.js.map +1 -1
- package/dist/cjs/preset/server/providers/element-to-string.js.map +1 -1
- package/dist/cjs/preset/server/providers/fetch-log-handler.js.map +1 -1
- package/dist/cjs/preset/server/providers/fetch-middleware.js.map +1 -1
- package/dist/cjs/preset/server/providers/format-page-response.js.map +1 -1
- package/dist/cjs/preset/server/providers/known-http-api-hosts.js.map +1 -1
- package/dist/cjs/preset/server/providers/page-helmet.js.map +1 -1
- package/dist/cjs/preset/server/providers/page-render.js.map +1 -1
- package/dist/cjs/preset/server/providers/response-events.js.map +1 -1
- package/dist/cjs/preset/server/providers/serve.js +2 -1
- package/dist/cjs/preset/server/providers/serve.js.map +1 -1
- package/dist/cjs/preset/server/providers/ssr-bridge-server-side.js.map +1 -1
- package/dist/cjs/preset/server/types.js.map +1 -1
- package/dist/cjs/preset/server/utils/apply-server-middleware.js.map +1 -1
- package/dist/cjs/preset/server/utils/format-handler-error.js.map +1 -1
- package/dist/cjs/preset/server/utils/get-client-ip.js.map +1 -1
- package/dist/cjs/preset/server/utils/get-forwarded-headers.js.map +1 -1
- package/dist/cjs/preset/server/utils/get-health-check.js.map +1 -1
- package/dist/cjs/preset/server/utils/get-page-response-format.js.map +1 -1
- package/dist/cjs/preset/server/utils/get-serve-error-logging.js.map +1 -1
- package/dist/cjs/preset/server/utils/get-serve-logging.js.map +1 -1
- package/dist/cjs/preset/server/utils/handler-provider.js.map +1 -1
- package/dist/cjs/preset/server/utils/regular-helmet.js.map +1 -1
- package/dist/cjs/preset/server/utils/specific-extras.js.map +1 -1
- package/dist/cjs/preset/web/index.js.map +1 -1
- package/dist/cjs/preset/web/providers/axios-middleware.js.map +1 -1
- package/dist/cjs/preset/web/providers/config-source.js.map +1 -1
- package/dist/cjs/preset/web/providers/fetch-middleware.js.map +1 -1
- package/dist/cjs/preset/web/providers/known-http-api-hosts.js.map +1 -1
- package/dist/cjs/preset/web/providers/logger.js.map +1 -1
- package/dist/cjs/preset/web/providers/ssr-bridge-client-side.js.map +1 -1
- package/dist/cjs/tokens.js.map +1 -1
- package/dist/cjs/utils/axios/index.js.map +1 -1
- package/dist/cjs/utils/axios/middleware/log.js.map +1 -1
- package/dist/cjs/utils/axios/sauce/index.js.map +1 -1
- package/dist/cjs/utils/axios/utils/index.js.map +1 -1
- package/dist/cjs/utils/express/handler/health-check.js.map +1 -1
- package/dist/cjs/utils/express/index.js.map +1 -1
- package/dist/cjs/utils/express/utils/index.js.map +1 -1
- package/dist/cjs/utils/function.js.map +1 -1
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/math.js.map +1 -1
- package/dist/cjs/utils/react/error-handlers/index.js.map +1 -1
- package/dist/cjs/utils/react/index.js.map +1 -1
- package/dist/cjs/utils/redux/index.js.map +1 -1
- package/dist/cjs/utils/redux/remote-data.js.map +1 -1
- package/dist/cjs/utils/redux-saga/index.js.map +1 -1
- package/dist/cjs/utils/redux-saga/middleware.js.map +1 -1
- package/dist/cjs/utils/redux-saga/take-chain.js.map +1 -1
- package/dist/cjs/utils/redux-saga/types.js.map +1 -1
- package/dist/cjs/utils/selectors/create-curried-selector.js.map +1 -1
- package/dist/cjs/utils/ssr/index.js.map +1 -1
- package/dist/cjs/utils/web/analytics/data-layer.js.map +1 -1
- package/dist/cjs/utils/web/analytics/index.js.map +1 -1
- package/dist/cjs/utils/web/analytics/oko.js.map +1 -1
- package/dist/cjs/utils/web/storage/index.js.map +1 -1
- package/dist/cjs/utils/webpack/env/index.js.map +1 -1
- package/dist/cjs/utils/webpack/env/types.js.map +1 -1
- package/dist/cjs/utils/webpack/env/utils.js.map +1 -1
- package/dist/cjs/utils/webpack/index.js.map +1 -1
- package/dist/cjs/utils/webpack/module-federation/index.js.map +1 -1
- package/dist/cjs/utils/webpack/module-federation/types.js.map +1 -1
- package/dist/cjs/utils/webpack/module-federation/utils.js.map +1 -1
- package/dist/esm/cache/index.js.map +1 -1
- package/dist/esm/cache/types.js.map +1 -1
- package/dist/esm/config/base.js.map +1 -1
- package/dist/esm/config/index.js.map +1 -1
- package/dist/esm/config/source.js.map +1 -1
- package/dist/esm/config/types.js.map +1 -1
- package/dist/esm/di/application.js.map +1 -1
- package/dist/esm/di/container.js.map +1 -1
- package/dist/esm/di/errors.js.map +1 -1
- package/dist/esm/di/index.js.map +1 -1
- package/dist/esm/di/preset.js.map +1 -1
- package/dist/esm/di/token.js.map +1 -1
- package/dist/esm/di/types.js.map +1 -1
- package/dist/esm/http/errors.js.map +1 -1
- package/dist/esm/http/index.js.map +1 -1
- package/dist/esm/http/types.js.map +1 -1
- package/dist/esm/http/utils.js.map +1 -1
- package/dist/esm/log/errors.js.map +1 -1
- package/dist/esm/log/handler/pino.js.map +1 -1
- package/dist/esm/log/handler/sentry.js.map +1 -1
- package/dist/esm/log/index.js.map +1 -1
- package/dist/esm/log/logger.js.map +1 -1
- package/dist/esm/log/types.js.map +1 -1
- package/dist/esm/package.json +23 -23
- package/dist/esm/preset/isomorphic/index.js.map +1 -1
- package/dist/esm/preset/isomorphic/providers/abort-controller.js.map +1 -1
- package/dist/esm/preset/isomorphic/providers/axios-factory.js.map +1 -1
- package/dist/esm/preset/isomorphic/providers/axios-log-handler.js.map +1 -1
- package/dist/esm/preset/isomorphic/providers/base-config.js.map +1 -1
- package/dist/esm/preset/isomorphic/providers/fetch.js.map +1 -1
- package/dist/esm/preset/isomorphic/providers/redux-middleware-saga.js.map +1 -1
- package/dist/esm/preset/isomorphic/types.js.map +1 -1
- package/dist/esm/preset/isomorphic/utils/axios-logging.js.map +1 -1
- package/dist/esm/preset/isomorphic/utils/disableable.js.map +1 -1
- package/dist/esm/preset/isomorphic/utils/display-url.js.map +1 -1
- package/dist/esm/preset/isomorphic/utils/fetch-logging.js.map +1 -1
- package/dist/esm/preset/isomorphic/utils/get-fetch-error-logging.js.map +1 -1
- package/dist/esm/preset/isomorphic/utils/get-fetch-extra-aborting.js.map +1 -1
- package/dist/esm/preset/isomorphic/utils/get-fetch-logging.js.map +1 -1
- package/dist/esm/preset/isomorphic/utils/http-api-host-pool.js.map +1 -1
- package/dist/esm/preset/isomorphic/utils/http-status.js.map +1 -1
- package/dist/esm/preset/isomorphic/utils/saga-logging.js.map +1 -1
- package/dist/esm/preset/isomorphic/utils/severity-from-status.js.map +1 -1
- package/dist/esm/preset/node/index.js.map +1 -1
- package/dist/esm/preset/node/providers/config-source.js.map +1 -1
- package/dist/esm/preset/node/providers/express-error-middleware.js.map +1 -1
- package/dist/esm/preset/node/providers/express-factory.js.map +1 -1
- package/dist/esm/preset/node/providers/express-log-middleware.js.map +1 -1
- package/dist/esm/preset/node/providers/express-metrics-middleware.js.map +1 -1
- package/dist/esm/preset/node/providers/express-request-middleware.js.map +1 -1
- package/dist/esm/preset/node/providers/express-tracing-middleware.js.map +1 -1
- package/dist/esm/preset/node/providers/log-handler-pino.js.map +1 -1
- package/dist/esm/preset/node/providers/log-handler-sentry.js.map +1 -1
- package/dist/esm/preset/node/providers/logger.js.map +1 -1
- package/dist/esm/preset/node/providers/main-express-app.js +0 -1
- package/dist/esm/preset/node/providers/main-express-app.js.map +1 -1
- package/dist/esm/preset/node/providers/metrics-express-app.js.map +1 -1
- package/dist/esm/preset/node/providers/public-envs.js.map +1 -1
- package/dist/esm/preset/node/providers/telemetry-tracer-provider.js +1 -1
- package/dist/esm/preset/node/providers/telemetry-tracer-provider.js.map +1 -1
- package/dist/esm/preset/node/providers/telemetry-tracer-resource.js.map +1 -1
- package/dist/esm/preset/node/providers/telemetry-tracer-span-exporter.js.map +1 -1
- package/dist/esm/preset/node/providers/telemetry-tracer.js.map +1 -1
- package/dist/esm/preset/node/types.js.map +1 -1
- package/dist/esm/preset/node/utils/axios-tracing-middleware.js.map +1 -1
- package/dist/esm/preset/node/utils/emitter-as-target.js.map +1 -1
- package/dist/esm/preset/node/utils/get-client-ip.js.map +1 -1
- package/dist/esm/preset/node/utils/get-fetch-tracing.js.map +1 -1
- package/dist/esm/preset/node/utils/get-forwarded-headers.js.map +1 -1
- package/dist/esm/preset/node/utils/get-handler-metrics.js.map +1 -1
- package/dist/esm/preset/node/utils/get-page-response-format.js.map +1 -1
- package/dist/esm/preset/node/utils/get-serve-measuring.js.map +1 -1
- package/dist/esm/preset/node/utils/handler-provider.js.map +1 -1
- package/dist/esm/preset/node/utils/telemetry.js.map +1 -1
- package/dist/esm/preset/node-handler/index.js.map +1 -1
- package/dist/esm/preset/node-handler/providers/accepts-type.js.map +1 -1
- package/dist/esm/preset/node-handler/providers/axios-log-handler.js.map +1 -1
- package/dist/esm/preset/node-handler/providers/axios-middleware.js.map +1 -1
- package/dist/esm/preset/node-handler/providers/fetch-middleware.js.map +1 -1
- package/dist/esm/preset/node-handler/providers/handler-main.js.map +1 -1
- package/dist/esm/preset/node-handler/providers/response-events.js.map +1 -1
- package/dist/esm/preset/node-handler/providers/specific-params.js.map +1 -1
- package/dist/esm/preset/server/constants.js.map +1 -1
- package/dist/esm/preset/server/index.js.map +1 -1
- package/dist/esm/preset/server/providers/element-to-string.js.map +1 -1
- package/dist/esm/preset/server/providers/fetch-log-handler.js.map +1 -1
- package/dist/esm/preset/server/providers/fetch-middleware.js.map +1 -1
- package/dist/esm/preset/server/providers/format-page-response.js.map +1 -1
- package/dist/esm/preset/server/providers/known-http-api-hosts.js.map +1 -1
- package/dist/esm/preset/server/providers/page-helmet.js.map +1 -1
- package/dist/esm/preset/server/providers/page-render.js.map +1 -1
- package/dist/esm/preset/server/providers/response-events.js.map +1 -1
- package/dist/esm/preset/server/providers/serve.js +2 -1
- package/dist/esm/preset/server/providers/serve.js.map +1 -1
- package/dist/esm/preset/server/providers/ssr-bridge-server-side.js.map +1 -1
- package/dist/esm/preset/server/types.js.map +1 -1
- package/dist/esm/preset/server/utils/apply-server-middleware.js.map +1 -1
- package/dist/esm/preset/server/utils/format-handler-error.js.map +1 -1
- package/dist/esm/preset/server/utils/get-client-ip.js.map +1 -1
- package/dist/esm/preset/server/utils/get-forwarded-headers.js.map +1 -1
- package/dist/esm/preset/server/utils/get-health-check.js.map +1 -1
- package/dist/esm/preset/server/utils/get-page-response-format.js.map +1 -1
- package/dist/esm/preset/server/utils/get-serve-error-logging.js.map +1 -1
- package/dist/esm/preset/server/utils/get-serve-logging.js.map +1 -1
- package/dist/esm/preset/server/utils/handler-provider.js.map +1 -1
- package/dist/esm/preset/server/utils/regular-helmet.js.map +1 -1
- package/dist/esm/preset/server/utils/specific-extras.js.map +1 -1
- package/dist/esm/preset/web/index.js.map +1 -1
- package/dist/esm/preset/web/providers/axios-middleware.js.map +1 -1
- package/dist/esm/preset/web/providers/config-source.js.map +1 -1
- package/dist/esm/preset/web/providers/fetch-middleware.js.map +1 -1
- package/dist/esm/preset/web/providers/known-http-api-hosts.js.map +1 -1
- package/dist/esm/preset/web/providers/logger.js.map +1 -1
- package/dist/esm/preset/web/providers/ssr-bridge-client-side.js.map +1 -1
- package/dist/esm/tokens.js.map +1 -1
- package/dist/esm/utils/axios/index.js.map +1 -1
- package/dist/esm/utils/axios/middleware/log.js.map +1 -1
- package/dist/esm/utils/axios/sauce/index.js.map +1 -1
- package/dist/esm/utils/axios/utils/index.js.map +1 -1
- package/dist/esm/utils/express/handler/health-check.js.map +1 -1
- package/dist/esm/utils/express/index.js.map +1 -1
- package/dist/esm/utils/express/utils/index.js.map +1 -1
- package/dist/esm/utils/function.js.map +1 -1
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/math.js.map +1 -1
- package/dist/esm/utils/react/error-handlers/index.js.map +1 -1
- package/dist/esm/utils/react/index.js.map +1 -1
- package/dist/esm/utils/redux/index.js.map +1 -1
- package/dist/esm/utils/redux/remote-data.js.map +1 -1
- package/dist/esm/utils/redux-saga/index.js.map +1 -1
- package/dist/esm/utils/redux-saga/middleware.js.map +1 -1
- package/dist/esm/utils/redux-saga/take-chain.js.map +1 -1
- package/dist/esm/utils/redux-saga/types.js.map +1 -1
- package/dist/esm/utils/selectors/create-curried-selector.js.map +1 -1
- package/dist/esm/utils/ssr/index.js.map +1 -1
- package/dist/esm/utils/web/analytics/data-layer.js.map +1 -1
- package/dist/esm/utils/web/analytics/index.js.map +1 -1
- package/dist/esm/utils/web/analytics/oko.js.map +1 -1
- package/dist/esm/utils/web/storage/index.js.map +1 -1
- package/dist/esm/utils/webpack/env/index.js.map +1 -1
- package/dist/esm/utils/webpack/env/types.js.map +1 -1
- package/dist/esm/utils/webpack/env/utils.js.map +1 -1
- package/dist/esm/utils/webpack/index.js.map +1 -1
- package/dist/esm/utils/webpack/module-federation/index.js.map +1 -1
- package/dist/esm/utils/webpack/module-federation/types.js.map +1 -1
- package/dist/esm/utils/webpack/module-federation/utils.js.map +1 -1
- package/dist/types/http/utils.d.ts +1 -1
- package/dist/types/http/utils.d.ts.map +1 -1
- package/dist/types/log/types.d.ts +7 -7
- package/dist/types/log/types.d.ts.map +1 -1
- package/dist/types/preset/isomorphic/providers/axios-factory.d.ts.map +1 -1
- package/dist/types/preset/node/providers/telemetry-tracer-provider.d.ts +2 -2
- package/dist/types/preset/node/providers/telemetry-tracer-provider.d.ts.map +1 -1
- package/dist/types/preset/node/utils/emitter-as-target.d.ts +0 -1
- package/dist/types/preset/node/utils/emitter-as-target.d.ts.map +1 -1
- package/dist/types/preset/node/utils/get-handler-metrics.d.ts +3 -3
- package/dist/types/preset/server/providers/page-helmet.d.ts +1 -2
- package/dist/types/preset/server/providers/page-helmet.d.ts.map +1 -1
- package/dist/types/preset/server/providers/serve.d.ts.map +1 -1
- package/dist/types/preset/server/types.d.ts +0 -1
- package/dist/types/preset/server/types.d.ts.map +1 -1
- package/dist/types/preset/server/utils/regular-helmet.d.ts +2 -2
- package/dist/types/preset/server/utils/regular-helmet.d.ts.map +1 -1
- package/dist/types/tokens.d.ts +0 -1
- package/dist/types/tokens.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/redux/remote-data.d.ts +13 -3
- package/dist/types/utils/redux/remote-data.d.ts.map +1 -1
- package/dist/types/utils/selectors/create-curried-selector.d.ts +2 -2
- package/dist/types/utils/selectors/create-curried-selector.d.ts.map +1 -1
- package/dist/types/utils/ssr/index.d.ts.map +1 -1
- package/package.json +55 -52
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-page-response-format.js","names":["getPageResponseFormat","request","result","headers","get","toLowerCase","includes"],"sources":["../../../../../src/preset/server/utils/get-page-response-format.ts"],"sourcesContent":["/**\n * Определяет формат ответа для страницы (html-верстки).\n * Вернет \"json\" - если заголовок запроса \"accept\" содержит \"application/json\".\n * Вернет \"html\" во всех остальных случаях.\n * @param request Запрос.\n * @return Формат.\n * @deprecated Стоит использовать npm:accepts.\n */\nexport function getPageResponseFormat(request: Request): 'html' | 'json' {\n let result: 'html' | 'json' = 'html';\n\n if ((request.headers.get('accept') || '').toLowerCase().includes('application/json')) {\n result = 'json';\n }\n\n return result;\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,qBAAqBA,CAACC,OAAgB,EAAmB;EACvE,IAAIC,MAAuB,GAAG,MAAM;EAEpC,IAAI,CAACD,OAAO,CAACE,OAAO,CAACC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAEC,WAAW,CAAC,CAAC,CAACC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;IACpFJ,MAAM,GAAG,MAAM;EACjB;EAEA,OAAOA,MAAM;AACf"}
|
|
1
|
+
{"version":3,"file":"get-page-response-format.js","names":["getPageResponseFormat","request","result","headers","get","toLowerCase","includes"],"sources":["../../../../../src/preset/server/utils/get-page-response-format.ts"],"sourcesContent":["/**\n * Определяет формат ответа для страницы (html-верстки).\n * Вернет \"json\" - если заголовок запроса \"accept\" содержит \"application/json\".\n * Вернет \"html\" во всех остальных случаях.\n * @param request Запрос.\n * @return Формат.\n * @deprecated Стоит использовать npm:accepts.\n */\nexport function getPageResponseFormat(request: Request): 'html' | 'json' {\n let result: 'html' | 'json' = 'html';\n\n if ((request.headers.get('accept') || '').toLowerCase().includes('application/json')) {\n result = 'json';\n }\n\n return result;\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,qBAAqBA,CAACC,OAAgB,EAAmB;EACvE,IAAIC,MAAuB,GAAG,MAAM;EAEpC,IAAI,CAACD,OAAO,CAACE,OAAO,CAACC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAEC,WAAW,CAAC,CAAC,CAACC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;IACpFJ,MAAM,GAAG,MAAM;EACjB;EAEA,OAAOA,MAAM;AACf","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-serve-error-logging.js","names":["_http","require","_log","getServeErrorLogging","logger","log","onCatch","request","error","DetailedError","String","level","context","key","data","url","FetchUtil","withoutParams","method","headers","Object","fromEntries","entries","params","URL","searchParams"],"sources":["../../../../../src/preset/server/utils/get-serve-error-logging.ts"],"sourcesContent":["import { FetchUtil, log, type Middleware } from '../../../http';\nimport { DetailedError, type Logger } from '../../../log';\n\n/**\n * Возвращает новый промежуточный слой для логирования ошибки при обработке входящего http-запроса.\n * @param logger Logger.\n * @return Промежуточный слой.\n */\nexport function getServeErrorLogging(logger: Logger): Middleware {\n return log({\n onCatch: ({ request, error }) => {\n logger.error(\n new DetailedError(String(error), {\n level: 'error',\n context: {\n key: 'Incoming request details',\n data: {\n url: FetchUtil.withoutParams(request.url),\n method: request.method,\n headers: Object.fromEntries(request.headers.entries()),\n params: Object.fromEntries(new URL(request.url).searchParams.entries()),\n // @todo data\n },\n },\n }),\n );\n },\n });\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,oBAAoBA,CAACC,MAAc,EAAc;EAC/D,OAAO,IAAAC,SAAG,EAAC;IACTC,OAAO,EAAEA,CAAC;MAAEC,OAAO;MAAEC;IAAM,CAAC,KAAK;MAC/BJ,MAAM,CAACI,KAAK,CACV,IAAIC,kBAAa,CAACC,MAAM,CAACF,KAAK,CAAC,EAAE;QAC/BG,KAAK,EAAE,OAAO;QACdC,OAAO,EAAE;UACPC,GAAG,EAAE,0BAA0B;UAC/BC,IAAI,EAAE;YACJC,GAAG,EAAEC,eAAS,CAACC,aAAa,CAACV,OAAO,CAACQ,GAAG,CAAC;YACzCG,MAAM,EAAEX,OAAO,CAACW,MAAM;YACtBC,OAAO,EAAEC,MAAM,CAACC,WAAW,CAACd,OAAO,CAACY,OAAO,CAACG,OAAO,CAAC,CAAC,CAAC;YACtDC,MAAM,EAAEH,MAAM,CAACC,WAAW,CAAC,IAAIG,GAAG,CAACjB,OAAO,CAACQ,GAAG,CAAC,CAACU,YAAY,CAACH,OAAO,CAAC,CAAC;YACtE;UACF;QACF;MACF,CAAC,CACH,CAAC;IACH;EACF,CAAC,CAAC;AACJ"}
|
|
1
|
+
{"version":3,"file":"get-serve-error-logging.js","names":["_http","require","_log","getServeErrorLogging","logger","log","onCatch","request","error","DetailedError","String","level","context","key","data","url","FetchUtil","withoutParams","method","headers","Object","fromEntries","entries","params","URL","searchParams"],"sources":["../../../../../src/preset/server/utils/get-serve-error-logging.ts"],"sourcesContent":["import { FetchUtil, log, type Middleware } from '../../../http';\nimport { DetailedError, type Logger } from '../../../log';\n\n/**\n * Возвращает новый промежуточный слой для логирования ошибки при обработке входящего http-запроса.\n * @param logger Logger.\n * @return Промежуточный слой.\n */\nexport function getServeErrorLogging(logger: Logger): Middleware {\n return log({\n onCatch: ({ request, error }) => {\n logger.error(\n new DetailedError(String(error), {\n level: 'error',\n context: {\n key: 'Incoming request details',\n data: {\n url: FetchUtil.withoutParams(request.url),\n method: request.method,\n headers: Object.fromEntries(request.headers.entries()),\n params: Object.fromEntries(new URL(request.url).searchParams.entries()),\n // @todo data\n },\n },\n }),\n );\n },\n });\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,oBAAoBA,CAACC,MAAc,EAAc;EAC/D,OAAO,IAAAC,SAAG,EAAC;IACTC,OAAO,EAAEA,CAAC;MAAEC,OAAO;MAAEC;IAAM,CAAC,KAAK;MAC/BJ,MAAM,CAACI,KAAK,CACV,IAAIC,kBAAa,CAACC,MAAM,CAACF,KAAK,CAAC,EAAE;QAC/BG,KAAK,EAAE,OAAO;QACdC,OAAO,EAAE;UACPC,GAAG,EAAE,0BAA0B;UAC/BC,IAAI,EAAE;YACJC,GAAG,EAAEC,eAAS,CAACC,aAAa,CAACV,OAAO,CAACQ,GAAG,CAAC;YACzCG,MAAM,EAAEX,OAAO,CAACW,MAAM;YACtBC,OAAO,EAAEC,MAAM,CAACC,WAAW,CAACd,OAAO,CAACY,OAAO,CAACG,OAAO,CAAC,CAAC,CAAC;YACtDC,MAAM,EAAEH,MAAM,CAACC,WAAW,CAAC,IAAIG,GAAG,CAACjB,OAAO,CAACQ,GAAG,CAAC,CAACU,YAAY,CAACH,OAAO,CAAC,CAAC;YACtE;UACF;QACF;MACF,CAAC,CACH,CAAC;IACH;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-serve-logging.js","names":["_getClientIp","require","getServeLogging","logger","request","next","start","performance","now","clientIp","getClientIp","info","type","route","url","method","remote_ip","response","finish","status","latency"],"sources":["../../../../../src/preset/server/utils/get-serve-logging.ts"],"sourcesContent":["import type { Middleware } from '../../../http';\nimport type { Logger } from '../../../log';\nimport { getClientIp } from './get-client-ip';\n\n/**\n * Возвращает новый промежуточный слой для логирования обработки входящего http-запроса.\n * @param logger Logger.\n * @return Промежуточный слой.\n */\nexport function getServeLogging(logger: Logger): Middleware {\n return async (request, next) => {\n const start = performance.now();\n const clientIp = getClientIp(request);\n\n logger.info({\n type: 'http.request[incoming]',\n route: request.url,\n method: request.method,\n remote_ip: clientIp,\n });\n\n const response = await next(request);\n\n const finish = performance.now();\n\n logger.info({\n type: 'http.response[outgoing]',\n route: request.url,\n method: request.method,\n status: response.status,\n remote_ip: clientIp,\n latency: finish - start,\n });\n\n return response;\n };\n}\n"],"mappings":";;;;;;AAEA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,eAAeA,CAACC,MAAc,EAAc;EAC1D,OAAO,OAAOC,OAAO,EAAEC,IAAI,KAAK;IAC9B,MAAMC,KAAK,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;IAC/B,MAAMC,QAAQ,GAAG,IAAAC,wBAAW,EAACN,OAAO,CAAC;IAErCD,MAAM,CAACQ,IAAI,CAAC;MACVC,IAAI,EAAE,wBAAwB;MAC9BC,KAAK,EAAET,OAAO,CAACU,GAAG;MAClBC,MAAM,EAAEX,OAAO,CAACW,MAAM;MACtBC,SAAS,EAAEP;IACb,CAAC,CAAC;IAEF,MAAMQ,QAAQ,GAAG,MAAMZ,IAAI,CAACD,OAAO,CAAC;IAEpC,MAAMc,MAAM,GAAGX,WAAW,CAACC,GAAG,CAAC,CAAC;IAEhCL,MAAM,CAACQ,IAAI,CAAC;MACVC,IAAI,EAAE,yBAAyB;MAC/BC,KAAK,EAAET,OAAO,CAACU,GAAG;MAClBC,MAAM,EAAEX,OAAO,CAACW,MAAM;MACtBI,MAAM,EAAEF,QAAQ,CAACE,MAAM;MACvBH,SAAS,EAAEP,QAAQ;MACnBW,OAAO,EAAEF,MAAM,GAAGZ;IACpB,CAAC,CAAC;IAEF,OAAOW,QAAQ;EACjB,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"get-serve-logging.js","names":["_getClientIp","require","getServeLogging","logger","request","next","start","performance","now","clientIp","getClientIp","info","type","route","url","method","remote_ip","response","finish","status","latency"],"sources":["../../../../../src/preset/server/utils/get-serve-logging.ts"],"sourcesContent":["import type { Middleware } from '../../../http';\nimport type { Logger } from '../../../log';\nimport { getClientIp } from './get-client-ip';\n\n/**\n * Возвращает новый промежуточный слой для логирования обработки входящего http-запроса.\n * @param logger Logger.\n * @return Промежуточный слой.\n */\nexport function getServeLogging(logger: Logger): Middleware {\n return async (request, next) => {\n const start = performance.now();\n const clientIp = getClientIp(request);\n\n logger.info({\n type: 'http.request[incoming]',\n route: request.url,\n method: request.method,\n remote_ip: clientIp,\n });\n\n const response = await next(request);\n\n const finish = performance.now();\n\n logger.info({\n type: 'http.response[outgoing]',\n route: request.url,\n method: request.method,\n status: response.status,\n remote_ip: clientIp,\n latency: finish - start,\n });\n\n return response;\n };\n}\n"],"mappings":";;;;;;AAEA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,eAAeA,CAACC,MAAc,EAAc;EAC1D,OAAO,OAAOC,OAAO,EAAEC,IAAI,KAAK;IAC9B,MAAMC,KAAK,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;IAC/B,MAAMC,QAAQ,GAAG,IAAAC,wBAAW,EAACN,OAAO,CAAC;IAErCD,MAAM,CAACQ,IAAI,CAAC;MACVC,IAAI,EAAE,wBAAwB;MAC9BC,KAAK,EAAET,OAAO,CAACU,GAAG;MAClBC,MAAM,EAAEX,OAAO,CAACW,MAAM;MACtBC,SAAS,EAAEP;IACb,CAAC,CAAC;IAEF,MAAMQ,QAAQ,GAAG,MAAMZ,IAAI,CAACD,OAAO,CAAC;IAEpC,MAAMc,MAAM,GAAGX,WAAW,CAACC,GAAG,CAAC,CAAC;IAEhCL,MAAM,CAACQ,IAAI,CAAC;MACVC,IAAI,EAAE,yBAAyB;MAC/BC,KAAK,EAAET,OAAO,CAACU,GAAG;MAClBC,MAAM,EAAEX,OAAO,CAACW,MAAM;MACtBI,MAAM,EAAEF,QAAQ,CAACE,MAAM;MACvBH,SAAS,EAAEP,QAAQ;MACnBW,OAAO,EAAEF,MAAM,GAAGZ;IACpB,CAAC,CAAC;IAEF,OAAOW,QAAQ;EACjB,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler-provider.js","names":["_tokens","require","_di","HandlerProvider","getApp","resolve","parent","CURRENT_APP","request","context","app","attach","bind","KnownToken","Http","Handler","toValue","get","main"],"sources":["../../../../../src/preset/server/utils/handler-provider.ts"],"sourcesContent":["import type { ServerHandler } from '../../server/types';\nimport { KnownToken } from '../../../tokens';\nimport { CURRENT_APP, type Application, type Resolve, Provider } from '../../../di';\n\n/**\n * Получив фабрику DI-приложения вернёт провайдер обработчика.\n * После получения запроса фабрика будет вызвана.\n * Далее будет произведена попытка получить компонент обработчика.\n * @param getApp Фабрика DI-приложения.\n * @return Провайдер обработчика.\n */\nexport function HandlerProvider(getApp: () => Application): Provider<ServerHandler> {\n return (resolve: Resolve): ServerHandler => {\n const parent = resolve(CURRENT_APP);\n\n return (request, context) => {\n const app = getApp();\n\n app.attach(parent);\n app.bind(KnownToken.Http.Handler.context).toValue({ request, ...context });\n\n return app.get(KnownToken.Http.Handler.main)(request, context);\n };\n };\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,GAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,eAAeA,CAACC,MAAyB,EAA2B;EAClF,OAAQC,OAAgB,IAAoB;IAC1C,MAAMC,MAAM,GAAGD,OAAO,CAACE,eAAW,CAAC;IAEnC,OAAO,CAACC,OAAO,EAAEC,OAAO,KAAK;MAC3B,MAAMC,GAAG,GAAGN,MAAM,CAAC,CAAC;MAEpBM,GAAG,CAACC,MAAM,CAACL,MAAM,CAAC;MAClBI,GAAG,CAACE,IAAI,CAACC,kBAAU,CAACC,IAAI,CAACC,OAAO,CAACN,OAAO,CAAC,CAACO,OAAO,CAAC;QAAER,OAAO;QAAE,GAAGC;MAAQ,CAAC,CAAC;MAE1E,OAAOC,GAAG,CAACO,GAAG,CAACJ,kBAAU,CAACC,IAAI,CAACC,OAAO,CAACG,IAAI,CAAC,CAACV,OAAO,EAAEC,OAAO,CAAC;IAChE,CAAC;EACH,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"handler-provider.js","names":["_tokens","require","_di","HandlerProvider","getApp","resolve","parent","CURRENT_APP","request","context","app","attach","bind","KnownToken","Http","Handler","toValue","get","main"],"sources":["../../../../../src/preset/server/utils/handler-provider.ts"],"sourcesContent":["import type { ServerHandler } from '../../server/types';\nimport { KnownToken } from '../../../tokens';\nimport { CURRENT_APP, type Application, type Resolve, Provider } from '../../../di';\n\n/**\n * Получив фабрику DI-приложения вернёт провайдер обработчика.\n * После получения запроса фабрика будет вызвана.\n * Далее будет произведена попытка получить компонент обработчика.\n * @param getApp Фабрика DI-приложения.\n * @return Провайдер обработчика.\n */\nexport function HandlerProvider(getApp: () => Application): Provider<ServerHandler> {\n return (resolve: Resolve): ServerHandler => {\n const parent = resolve(CURRENT_APP);\n\n return (request, context) => {\n const app = getApp();\n\n app.attach(parent);\n app.bind(KnownToken.Http.Handler.context).toValue({ request, ...context });\n\n return app.get(KnownToken.Http.Handler.main)(request, context);\n };\n };\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,GAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,eAAeA,CAACC,MAAyB,EAA2B;EAClF,OAAQC,OAAgB,IAAoB;IAC1C,MAAMC,MAAM,GAAGD,OAAO,CAACE,eAAW,CAAC;IAEnC,OAAO,CAACC,OAAO,EAAEC,OAAO,KAAK;MAC3B,MAAMC,GAAG,GAAGN,MAAM,CAAC,CAAC;MAEpBM,GAAG,CAACC,MAAM,CAACL,MAAM,CAAC;MAClBI,GAAG,CAACE,IAAI,CAACC,kBAAU,CAACC,IAAI,CAACC,OAAO,CAACN,OAAO,CAAC,CAACO,OAAO,CAAC;QAAER,OAAO;QAAE,GAAGC;MAAQ,CAAC,CAAC;MAE1E,OAAOC,GAAG,CAACO,GAAG,CAACJ,kBAAU,CAACC,IAAI,CAACC,OAAO,CAACG,IAAI,CAAC,CAACV,OAAO,EAAEC,OAAO,CAAC;IAChE,CAAC;EACH,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"regular-helmet.js","names":["_react","require","_jsxRuntime","HelmetContext","exports","createContext","resetCSS","RegularHelmet","children","title","assets","useContext","jsxs","jsx","charSet","httpEquiv","content","name","href","rel","dangerouslySetInnerHTML","__html","criticalCss","css","criticalJs","src","js"],"sources":["../../../../../src/preset/server/utils/regular-helmet.tsx"],"sourcesContent":["import { ReactNode, createContext, useContext } from 'react';\nimport { PageAssets } from '../../isomorphic/types';\n\nexport const HelmetContext = createContext<{ title?: string; assets?: PageAssets }>({});\n\nconst resetCSS = `\n* {\n box-sizing: border-box;\n}\nbody {\n font-family: -apple-system,BlinkMacSystemFont,'Source Sans Pro',\"Segoe UI\",Roboto,\"Helvetica Neue\",Ubuntu,Arial,sans-serif;\n margin: 0;\n}\n`;\n\n/**\n * Простой Helmet-компонент. Выведет html, head и body.\n * @param props Свойства.\n * @return Элемент.\n */\nexport function RegularHelmet({ children }: { children?: ReactNode }) {\n const { title, assets } = useContext(HelmetContext);\n\n return (\n <html>\n <head>\n <meta charSet='UTF-8' />\n <meta httpEquiv='X-UA-Compatible' content='IE=edge' />\n <meta name='viewport' content='width=device-width, initial-scale=1' />\n <title>{title ?? 'Document'}</title>\n <link\n href='https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,200;0,300;0,400;0,600;0,700;0,900;1,200;1,300;1,400;1,600;1,700;1,900&display=swap'\n rel='stylesheet'\n />\n <style dangerouslySetInnerHTML={{ __html: resetCSS }} />\n\n {assets?.criticalCss && <link rel='stylesheet' href={assets.criticalCss} />}\n {assets?.css && <link rel='stylesheet' href={assets.css} />}\n {assets?.criticalJs && <script src={assets.criticalJs} />}\n </head>\n <body>\n {children}\n {assets?.js && <script src={assets.js} />}\n </body>\n </html>\n );\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAA6D,IAAAC,WAAA,GAAAD,OAAA;AAGtD,MAAME,aAAa,GAAAC,OAAA,CAAAD,aAAA,gBAAG,IAAAE,oBAAa,EAA0C,CAAC,CAAC,CAAC;AAEvF,MAAMC,QAAQ,
|
|
1
|
+
{"version":3,"file":"regular-helmet.js","names":["_react","require","_jsxRuntime","HelmetContext","exports","createContext","resetCSS","RegularHelmet","children","title","assets","useContext","jsxs","jsx","charSet","httpEquiv","content","name","href","rel","dangerouslySetInnerHTML","__html","criticalCss","css","criticalJs","src","js"],"sources":["../../../../../src/preset/server/utils/regular-helmet.tsx"],"sourcesContent":["import { ReactNode, createContext, useContext } from 'react';\nimport { PageAssets } from '../../isomorphic/types';\n\nexport const HelmetContext = createContext<{ title?: string; assets?: PageAssets }>({});\n\nconst resetCSS = `\n* {\n box-sizing: border-box;\n}\nbody {\n font-family: -apple-system,BlinkMacSystemFont,'Source Sans Pro',\"Segoe UI\",Roboto,\"Helvetica Neue\",Ubuntu,Arial,sans-serif;\n margin: 0;\n}\n`;\n\n/**\n * Простой Helmet-компонент. Выведет html, head и body.\n * @param props Свойства.\n * @return Элемент.\n */\nexport function RegularHelmet({ children }: { children?: ReactNode }) {\n const { title, assets } = useContext(HelmetContext);\n\n return (\n <html>\n <head>\n <meta charSet='UTF-8' />\n <meta httpEquiv='X-UA-Compatible' content='IE=edge' />\n <meta name='viewport' content='width=device-width, initial-scale=1' />\n <title>{title ?? 'Document'}</title>\n <link\n href='https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,200;0,300;0,400;0,600;0,700;0,900;1,200;1,300;1,400;1,600;1,700;1,900&display=swap'\n rel='stylesheet'\n />\n <style dangerouslySetInnerHTML={{ __html: resetCSS }} />\n\n {assets?.criticalCss && <link rel='stylesheet' href={assets.criticalCss} />}\n {assets?.css && <link rel='stylesheet' href={assets.css} />}\n {assets?.criticalJs && <script src={assets.criticalJs} />}\n </head>\n <body>\n {children}\n {assets?.js && <script src={assets.js} />}\n </body>\n </html>\n );\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAA6D,IAAAC,WAAA,GAAAD,OAAA;AAGtD,MAAME,aAAa,GAAAC,OAAA,CAAAD,aAAA,gBAAG,IAAAE,oBAAa,EAA0C,CAAC,CAAC,CAAC;AAEvF,MAAMC,QAAQ,GAAG;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,SAASC,aAAaA,CAAC;EAAEC;AAAmC,CAAC,EAAE;EACpE,MAAM;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAG,IAAAC,iBAAU,EAACR,aAAa,CAAC;EAEnD,oBACE,IAAAD,WAAA,CAAAU,IAAA;IAAAJ,QAAA,gBACE,IAAAN,WAAA,CAAAU,IAAA;MAAAJ,QAAA,gBACE,IAAAN,WAAA,CAAAW,GAAA;QAAMC,OAAO,EAAC;MAAO,CAAE,CAAC,eACxB,IAAAZ,WAAA,CAAAW,GAAA;QAAME,SAAS,EAAC,iBAAiB;QAACC,OAAO,EAAC;MAAS,CAAE,CAAC,eACtD,IAAAd,WAAA,CAAAW,GAAA;QAAMI,IAAI,EAAC,UAAU;QAACD,OAAO,EAAC;MAAqC,CAAE,CAAC,eACtE,IAAAd,WAAA,CAAAW,GAAA;QAAAL,QAAA,EAAQC,KAAK,IAAI;MAAU,CAAQ,CAAC,eACpC,IAAAP,WAAA,CAAAW,GAAA;QACEK,IAAI,EAAC,yJAA6J;QAClKC,GAAG,EAAC;MAAY,CACjB,CAAC,eACF,IAAAjB,WAAA,CAAAW,GAAA;QAAOO,uBAAuB,EAAE;UAAEC,MAAM,EAAEf;QAAS;MAAE,CAAE,CAAC,EAEvDI,MAAM,EAAEY,WAAW,iBAAI,IAAApB,WAAA,CAAAW,GAAA;QAAMM,GAAG,EAAC,YAAY;QAACD,IAAI,EAAER,MAAM,CAACY;MAAY,CAAE,CAAC,EAC1EZ,MAAM,EAAEa,GAAG,iBAAI,IAAArB,WAAA,CAAAW,GAAA;QAAMM,GAAG,EAAC,YAAY;QAACD,IAAI,EAAER,MAAM,CAACa;MAAI,CAAE,CAAC,EAC1Db,MAAM,EAAEc,UAAU,iBAAI,IAAAtB,WAAA,CAAAW,GAAA;QAAQY,GAAG,EAAEf,MAAM,CAACc;MAAW,CAAE,CAAC;IAAA,CACrD,CAAC,eACP,IAAAtB,WAAA,CAAAU,IAAA;MAAAJ,QAAA,GACGA,QAAQ,EACRE,MAAM,EAAEgB,EAAE,iBAAI,IAAAxB,WAAA,CAAAW,GAAA;QAAQY,GAAG,EAAEf,MAAM,CAACgB;MAAG,CAAE,CAAC;IAAA,CACrC,CAAC;EAAA,CACH,CAAC;AAEX","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specific-extras.js","names":["SpecificExtras","setMeta","meta","_meta","getMeta","exports"],"sources":["../../../../../src/preset/server/utils/specific-extras.ts"],"sourcesContent":["/**\n * Специфичные для наших микросервисов дополнительные данные ответа.\n */\nexport class SpecificExtras {\n private _meta: any;\n\n /**\n * Установит мета-данные.\n * @param meta Данные.\n * @return Контекст.\n */\n setMeta(meta: any): this {\n this._meta = meta;\n return this;\n }\n\n /**\n * Вернет установленные мета-данные.\n * @return Данные.\n */\n getMeta(): unknown {\n return this._meta;\n }\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACO,MAAMA,cAAc,CAAC;EAG1B;AACF;AACA;AACA;AACA;EACEC,OAAOA,CAACC,IAAS,EAAQ;IACvB,IAAI,CAACC,KAAK,GAAGD,IAAI;IACjB,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;EACEE,OAAOA,CAAA,EAAY;IACjB,OAAO,IAAI,CAACD,KAAK;EACnB;AACF;AAACE,OAAA,CAAAL,cAAA,GAAAA,cAAA"}
|
|
1
|
+
{"version":3,"file":"specific-extras.js","names":["SpecificExtras","setMeta","meta","_meta","getMeta","exports"],"sources":["../../../../../src/preset/server/utils/specific-extras.ts"],"sourcesContent":["/**\n * Специфичные для наших микросервисов дополнительные данные ответа.\n */\nexport class SpecificExtras {\n private _meta: any;\n\n /**\n * Установит мета-данные.\n * @param meta Данные.\n * @return Контекст.\n */\n setMeta(meta: any): this {\n this._meta = meta;\n return this;\n }\n\n /**\n * Вернет установленные мета-данные.\n * @return Данные.\n */\n getMeta(): unknown {\n return this._meta;\n }\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACO,MAAMA,cAAc,CAAC;EAG1B;AACF;AACA;AACA;AACA;EACEC,OAAOA,CAACC,IAAS,EAAQ;IACvB,IAAI,CAACC,KAAK,GAAGD,IAAI;IACjB,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;EACEE,OAAOA,CAAA,EAAY;IACjB,OAAO,IAAI,CAACD,KAAK;EACnB;AACF;AAACE,OAAA,CAAAL,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_di","require","_tokens","_baseConfig","_fetch","_axiosFactory","_axiosLogHandler","_reduxMiddlewareSaga","_configSource","_logger","_knownHttpApiHosts","_fetchMiddleware","_axiosMiddleware","_ssrBridgeClientSide","PresetWeb","customize","preset","createPreset","set","KnownToken","Config","source","provideConfigSource","base","provideBaseConfig","logger","provideLogger","Redux","Middleware","saga","provideReduxMiddlewareSaga","Axios","factory","provideAxiosFactory","middleware","provideAxiosMiddleware","Log","handler","provideAxiosLogHandler","SsrBridge","clientSide","provideSsrBridgeClientSide","Http","Api","knownHosts","provideKnownHttpApiHosts","fetch","provideFetch","Fetch","provideFetchMiddleware","override","bind"],"sources":["../../../../src/preset/web/index.ts"],"sourcesContent":["import { createPreset, Preset } from '../../di';\nimport { KnownToken } from '../../tokens';\nimport { PresetTuner } from '../isomorphic/types';\nimport { provideBaseConfig } from '../isomorphic/providers/base-config';\nimport { provideFetch } from '../isomorphic/providers/fetch';\nimport { provideAxiosFactory } from '../isomorphic/providers/axios-factory';\nimport { provideAxiosLogHandler } from '../isomorphic/providers/axios-log-handler';\nimport { provideReduxMiddlewareSaga } from '../isomorphic/providers/redux-middleware-saga';\nimport { provideConfigSource } from './providers/config-source';\nimport { provideLogger } from './providers/logger';\nimport { provideKnownHttpApiHosts } from './providers/known-http-api-hosts';\nimport { provideFetchMiddleware } from './providers/fetch-middleware';\nimport { provideAxiosMiddleware } from './providers/axios-middleware';\nimport { provideSsrBridgeClientSide } from './providers/ssr-bridge-client-side';\n\n/**\n * Возвращает preset с зависимостями для frontend-микросервисов в браузере.\n * @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.\n * @return Preset.\n */\nexport function PresetWeb(customize?: PresetTuner): Preset {\n // ВАЖНО: используем .set() вместо аргумента defaults функции createPreset из-за скорости\n const preset = createPreset();\n\n preset.set(KnownToken.Config.source, provideConfigSource);\n preset.set(KnownToken.Config.base, provideBaseConfig);\n preset.set(KnownToken.logger, provideLogger);\n preset.set(KnownToken.Redux.Middleware.saga, provideReduxMiddlewareSaga);\n preset.set(KnownToken.Axios.factory, provideAxiosFactory);\n preset.set(KnownToken.Axios.middleware, provideAxiosMiddleware);\n preset.set(KnownToken.Axios.Middleware.Log.handler, provideAxiosLogHandler);\n preset.set(KnownToken.SsrBridge.clientSide, provideSsrBridgeClientSide);\n preset.set(KnownToken.Http.Api.knownHosts, provideKnownHttpApiHosts);\n preset.set(KnownToken.Http.fetch, provideFetch);\n preset.set(KnownToken.Http.Fetch.middleware, provideFetchMiddleware);\n\n if (customize) {\n customize({ override: preset.set.bind(preset) });\n }\n\n return preset;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,GAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,oBAAA,GAAAN,OAAA;AACA,IAAAO,aAAA,GAAAP,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,kBAAA,GAAAT,OAAA;AACA,IAAAU,gBAAA,GAAAV,OAAA;AACA,IAAAW,gBAAA,GAAAX,OAAA;AACA,IAAAY,oBAAA,GAAAZ,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASa,SAASA,CAACC,SAAuB,EAAU;EACzD;EACA,MAAMC,MAAM,GAAG,IAAAC,gBAAY,EAAC,CAAC;EAE7BD,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACC,MAAM,CAACC,MAAM,EAAEC,iCAAmB,CAAC;EACzDN,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACC,MAAM,CAACG,IAAI,EAAEC,6BAAiB,CAAC;EACrDR,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACM,MAAM,EAAEC,qBAAa,CAAC;EAC5CV,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACQ,KAAK,CAACC,UAAU,CAACC,IAAI,EAAEC,+CAA0B,CAAC;EACxEd,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACY,KAAK,CAACC,OAAO,EAAEC,iCAAmB,CAAC;EACzDjB,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACY,KAAK,CAACG,UAAU,EAAEC,uCAAsB,CAAC;EAC/DnB,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACY,KAAK,CAACH,UAAU,CAACQ,GAAG,CAACC,OAAO,EAAEC,uCAAsB,CAAC;EAC3EtB,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACoB,SAAS,CAACC,UAAU,EAAEC,+CAA0B,CAAC;EACvEzB,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACuB,IAAI,CAACC,GAAG,CAACC,UAAU,EAAEC,2CAAwB,CAAC;EACpE7B,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACuB,IAAI,CAACI,KAAK,EAAEC,mBAAY,CAAC;EAC/C/B,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACuB,IAAI,CAACM,KAAK,CAACd,UAAU,EAAEe,uCAAsB,CAAC;EAEpE,IAAIlC,SAAS,EAAE;IACbA,SAAS,CAAC;MAAEmC,QAAQ,EAAElC,MAAM,CAACE,GAAG,CAACiC,IAAI,CAACnC,MAAM;IAAE,CAAC,CAAC;EAClD;EAEA,OAAOA,MAAM;AACf"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_di","require","_tokens","_baseConfig","_fetch","_axiosFactory","_axiosLogHandler","_reduxMiddlewareSaga","_configSource","_logger","_knownHttpApiHosts","_fetchMiddleware","_axiosMiddleware","_ssrBridgeClientSide","PresetWeb","customize","preset","createPreset","set","KnownToken","Config","source","provideConfigSource","base","provideBaseConfig","logger","provideLogger","Redux","Middleware","saga","provideReduxMiddlewareSaga","Axios","factory","provideAxiosFactory","middleware","provideAxiosMiddleware","Log","handler","provideAxiosLogHandler","SsrBridge","clientSide","provideSsrBridgeClientSide","Http","Api","knownHosts","provideKnownHttpApiHosts","fetch","provideFetch","Fetch","provideFetchMiddleware","override","bind"],"sources":["../../../../src/preset/web/index.ts"],"sourcesContent":["import { createPreset, Preset } from '../../di';\nimport { KnownToken } from '../../tokens';\nimport { PresetTuner } from '../isomorphic/types';\nimport { provideBaseConfig } from '../isomorphic/providers/base-config';\nimport { provideFetch } from '../isomorphic/providers/fetch';\nimport { provideAxiosFactory } from '../isomorphic/providers/axios-factory';\nimport { provideAxiosLogHandler } from '../isomorphic/providers/axios-log-handler';\nimport { provideReduxMiddlewareSaga } from '../isomorphic/providers/redux-middleware-saga';\nimport { provideConfigSource } from './providers/config-source';\nimport { provideLogger } from './providers/logger';\nimport { provideKnownHttpApiHosts } from './providers/known-http-api-hosts';\nimport { provideFetchMiddleware } from './providers/fetch-middleware';\nimport { provideAxiosMiddleware } from './providers/axios-middleware';\nimport { provideSsrBridgeClientSide } from './providers/ssr-bridge-client-side';\n\n/**\n * Возвращает preset с зависимостями для frontend-микросервисов в браузере.\n * @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.\n * @return Preset.\n */\nexport function PresetWeb(customize?: PresetTuner): Preset {\n // ВАЖНО: используем .set() вместо аргумента defaults функции createPreset из-за скорости\n const preset = createPreset();\n\n preset.set(KnownToken.Config.source, provideConfigSource);\n preset.set(KnownToken.Config.base, provideBaseConfig);\n preset.set(KnownToken.logger, provideLogger);\n preset.set(KnownToken.Redux.Middleware.saga, provideReduxMiddlewareSaga);\n preset.set(KnownToken.Axios.factory, provideAxiosFactory);\n preset.set(KnownToken.Axios.middleware, provideAxiosMiddleware);\n preset.set(KnownToken.Axios.Middleware.Log.handler, provideAxiosLogHandler);\n preset.set(KnownToken.SsrBridge.clientSide, provideSsrBridgeClientSide);\n preset.set(KnownToken.Http.Api.knownHosts, provideKnownHttpApiHosts);\n preset.set(KnownToken.Http.fetch, provideFetch);\n preset.set(KnownToken.Http.Fetch.middleware, provideFetchMiddleware);\n\n if (customize) {\n customize({ override: preset.set.bind(preset) });\n }\n\n return preset;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,GAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,oBAAA,GAAAN,OAAA;AACA,IAAAO,aAAA,GAAAP,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,kBAAA,GAAAT,OAAA;AACA,IAAAU,gBAAA,GAAAV,OAAA;AACA,IAAAW,gBAAA,GAAAX,OAAA;AACA,IAAAY,oBAAA,GAAAZ,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASa,SAASA,CAACC,SAAuB,EAAU;EACzD;EACA,MAAMC,MAAM,GAAG,IAAAC,gBAAY,EAAC,CAAC;EAE7BD,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACC,MAAM,CAACC,MAAM,EAAEC,iCAAmB,CAAC;EACzDN,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACC,MAAM,CAACG,IAAI,EAAEC,6BAAiB,CAAC;EACrDR,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACM,MAAM,EAAEC,qBAAa,CAAC;EAC5CV,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACQ,KAAK,CAACC,UAAU,CAACC,IAAI,EAAEC,+CAA0B,CAAC;EACxEd,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACY,KAAK,CAACC,OAAO,EAAEC,iCAAmB,CAAC;EACzDjB,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACY,KAAK,CAACG,UAAU,EAAEC,uCAAsB,CAAC;EAC/DnB,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACY,KAAK,CAACH,UAAU,CAACQ,GAAG,CAACC,OAAO,EAAEC,uCAAsB,CAAC;EAC3EtB,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACoB,SAAS,CAACC,UAAU,EAAEC,+CAA0B,CAAC;EACvEzB,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACuB,IAAI,CAACC,GAAG,CAACC,UAAU,EAAEC,2CAAwB,CAAC;EACpE7B,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACuB,IAAI,CAACI,KAAK,EAAEC,mBAAY,CAAC;EAC/C/B,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACuB,IAAI,CAACM,KAAK,CAACd,UAAU,EAAEe,uCAAsB,CAAC;EAEpE,IAAIlC,SAAS,EAAE;IACbA,SAAS,CAAC;MAAEmC,QAAQ,EAAElC,MAAM,CAACE,GAAG,CAACiC,IAAI,CAACnC,MAAM;IAAE,CAAC,CAAC;EAClD;EAEA,OAAOA,MAAM;AACf","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axios-middleware.js","names":["_tokens","require","_httpStatus","_axios","provideAxiosMiddleware","resolve","logHandler","KnownToken","Axios","Middleware","Log","handler","HttpStatus","axiosMiddleware","logMiddleware"],"sources":["../../../../../src/preset/web/providers/axios-middleware.ts"],"sourcesContent":["import type { Middleware } from 'middleware-axios';\nimport type { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { HttpStatus } from '../../isomorphic/utils/http-status';\nimport { logMiddleware } from '../../../utils/axios';\n\n/**\n * Провайдер фабрики http-клиентов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Фабрика.\n */\nexport function provideAxiosMiddleware(resolve: Resolve): Middleware<unknown>[] {\n const logHandler = resolve(KnownToken.Axios.Middleware.Log.handler);\n\n return [HttpStatus.axiosMiddleware(), logMiddleware(logHandler)];\n}\n"],"mappings":";;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASG,sBAAsBA,CAACC,OAAgB,EAAyB;EAC9E,MAAMC,UAAU,GAAGD,OAAO,CAACE,kBAAU,CAACC,KAAK,CAACC,UAAU,CAACC,GAAG,CAACC,OAAO,CAAC;EAEnE,OAAO,CAACC,sBAAU,CAACC,eAAe,CAAC,CAAC,EAAE,IAAAC,oBAAa,EAACR,UAAU,CAAC,CAAC;AAClE"}
|
|
1
|
+
{"version":3,"file":"axios-middleware.js","names":["_tokens","require","_httpStatus","_axios","provideAxiosMiddleware","resolve","logHandler","KnownToken","Axios","Middleware","Log","handler","HttpStatus","axiosMiddleware","logMiddleware"],"sources":["../../../../../src/preset/web/providers/axios-middleware.ts"],"sourcesContent":["import type { Middleware } from 'middleware-axios';\nimport type { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { HttpStatus } from '../../isomorphic/utils/http-status';\nimport { logMiddleware } from '../../../utils/axios';\n\n/**\n * Провайдер фабрики http-клиентов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Фабрика.\n */\nexport function provideAxiosMiddleware(resolve: Resolve): Middleware<unknown>[] {\n const logHandler = resolve(KnownToken.Axios.Middleware.Log.handler);\n\n return [HttpStatus.axiosMiddleware(), logMiddleware(logHandler)];\n}\n"],"mappings":";;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASG,sBAAsBA,CAACC,OAAgB,EAAyB;EAC9E,MAAMC,UAAU,GAAGD,OAAO,CAACE,kBAAU,CAACC,KAAK,CAACC,UAAU,CAACC,GAAG,CAACC,OAAO,CAAC;EAEnE,OAAO,CAACC,sBAAU,CAACC,eAAe,CAAC,CAAC,EAAE,IAAAC,oBAAa,EAACR,UAAU,CAAC,CAAC;AAClE","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-source.js","names":["_config","require","provideConfigSource","process","env","createConfigSource"],"sources":["../../../../../src/preset/web/providers/config-source.ts"],"sourcesContent":["import { ConfigSource, createConfigSource } from '../../../config';\n\n/**\n * Провайдер источника конфигурации.\n * @return Источник конфигурации.\n */\nexport function provideConfigSource(): ConfigSource {\n // ВАЖНО: по умолчанию рассчитываем на process.env который предоставляется сборщиком (например webpack)\n if (typeof process !== 'undefined' && process.env) {\n return createConfigSource(process.env);\n }\n\n return createConfigSource({});\n}\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACO,SAASC,mBAAmBA,CAAA,EAAiB;EAClD;EACA,IAAI,OAAOC,OAAO,KAAK,WAAW,IAAIA,OAAO,CAACC,GAAG,EAAE;IACjD,OAAO,IAAAC,0BAAkB,EAACF,OAAO,CAACC,GAAG,CAAC;EACxC;EAEA,OAAO,IAAAC,0BAAkB,EAAC,CAAC,CAAC,CAAC;AAC/B"}
|
|
1
|
+
{"version":3,"file":"config-source.js","names":["_config","require","provideConfigSource","process","env","createConfigSource"],"sources":["../../../../../src/preset/web/providers/config-source.ts"],"sourcesContent":["import { ConfigSource, createConfigSource } from '../../../config';\n\n/**\n * Провайдер источника конфигурации.\n * @return Источник конфигурации.\n */\nexport function provideConfigSource(): ConfigSource {\n // ВАЖНО: по умолчанию рассчитываем на process.env который предоставляется сборщиком (например webpack)\n if (typeof process !== 'undefined' && process.env) {\n return createConfigSource(process.env);\n }\n\n return createConfigSource({});\n}\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACO,SAASC,mBAAmBA,CAAA,EAAiB;EAClD;EACA,IAAI,OAAOC,OAAO,KAAK,WAAW,IAAIA,OAAO,CAACC,GAAG,EAAE;IACjD,OAAO,IAAAC,0BAAkB,EAACF,OAAO,CAACC,GAAG,CAAC;EACxC;EAEA,OAAO,IAAAC,0BAAkB,EAAC,CAAC,CAAC,CAAC;AAC/B","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-middleware.js","names":["_tokens","require","_fetchLogging","_http","provideFetchMiddleware","resolve","logger","KnownToken","log","FetchLogging"],"sources":["../../../../../src/preset/web/providers/fetch-middleware.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { FetchLogging } from '../../isomorphic/utils/fetch-logging';\nimport { log } from '../../../http';\n\n/**\n * Провайдер промежуточных слоев для fetch.\n * @param resolve Функция для получения зависимости по токену.\n * @return Фабрика.\n */\nexport function provideFetchMiddleware(resolve: Resolve) {\n const logger = resolve(KnownToken.logger);\n\n // ВАЖНО: если появятся еще промежуточные слои - не забыть разделить логирование на 2 части (ошибки и данные)\n return [log(new FetchLogging(logger))];\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASG,sBAAsBA,CAACC,OAAgB,EAAE;EACvD,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACD,MAAM,CAAC;;EAEzC;EACA,OAAO,CAAC,IAAAE,SAAG,EAAC,IAAIC,0BAAY,CAACH,MAAM,CAAC,CAAC,CAAC;AACxC"}
|
|
1
|
+
{"version":3,"file":"fetch-middleware.js","names":["_tokens","require","_fetchLogging","_http","provideFetchMiddleware","resolve","logger","KnownToken","log","FetchLogging"],"sources":["../../../../../src/preset/web/providers/fetch-middleware.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { FetchLogging } from '../../isomorphic/utils/fetch-logging';\nimport { log } from '../../../http';\n\n/**\n * Провайдер промежуточных слоев для fetch.\n * @param resolve Функция для получения зависимости по токену.\n * @return Фабрика.\n */\nexport function provideFetchMiddleware(resolve: Resolve) {\n const logger = resolve(KnownToken.logger);\n\n // ВАЖНО: если появятся еще промежуточные слои - не забыть разделить логирование на 2 части (ошибки и данные)\n return [log(new FetchLogging(logger))];\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASG,sBAAsBA,CAACC,OAAgB,EAAE;EACvD,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACD,MAAM,CAAC;;EAEzC;EACA,OAAO,CAAC,IAAAE,SAAG,EAAC,IAAIC,0BAAY,CAACH,MAAM,CAAC,CAAC,CAAC;AACxC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"known-http-api-hosts.js","names":["_tokens","require","_httpApiHostPool","provideKnownHttpApiHosts","resolve","source","KnownToken","Config","HttpApiHostPool","ilium","simaV3","simaV4","simaV6","chponkiV2","shuttle","fileDispatcher"],"sources":["../../../../../src/preset/web/providers/known-http-api-hosts.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { KnownHttpApiKey } from '../../isomorphic/types';\nimport { HttpApiHostPool } from '../../isomorphic/utils/http-api-host-pool';\n\n/**\n * Провайдер известных http-хостов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Пул известных http-хостов.\n */\nexport function provideKnownHttpApiHosts(resolve: Resolve): HttpApiHostPool<KnownHttpApiKey> {\n const source = resolve(KnownToken.Config.source);\n\n return new HttpApiHostPool<KnownHttpApiKey>(\n {\n ilium: 'PUBLIC_API_URL_ILIUM',\n simaV3: 'PUBLIC_API_URL_SIMALAND_V3',\n simaV4: 'PUBLIC_API_URL_SIMALAND_V4',\n simaV6: 'PUBLIC_API_URL_SIMALAND_V6',\n chponkiV2: 'PUBLIC_API_URL_CHPONKI_V2',\n shuttle: 'PUBLIC_API_URL_SHUTTLE',\n fileDispatcher: 'PUBLIC_API_URL_FILE_DISPATCHER',\n },\n source,\n );\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,gBAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,wBAAwBA,CAACC,OAAgB,EAAoC;EAC3F,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACF,MAAM,CAAC;EAEhD,OAAO,IAAIG,gCAAe,CACxB;IACEC,KAAK,EAAE,sBAAsB;IAC7BC,MAAM,EAAE,4BAA4B;IACpCC,MAAM,EAAE,4BAA4B;IACpCC,MAAM,EAAE,4BAA4B;IACpCC,SAAS,EAAE,2BAA2B;IACtCC,OAAO,EAAE,wBAAwB;IACjCC,cAAc,EAAE;EAClB,CAAC,EACDV,MACF,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"known-http-api-hosts.js","names":["_tokens","require","_httpApiHostPool","provideKnownHttpApiHosts","resolve","source","KnownToken","Config","HttpApiHostPool","ilium","simaV3","simaV4","simaV6","chponkiV2","shuttle","fileDispatcher"],"sources":["../../../../../src/preset/web/providers/known-http-api-hosts.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { KnownHttpApiKey } from '../../isomorphic/types';\nimport { HttpApiHostPool } from '../../isomorphic/utils/http-api-host-pool';\n\n/**\n * Провайдер известных http-хостов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Пул известных http-хостов.\n */\nexport function provideKnownHttpApiHosts(resolve: Resolve): HttpApiHostPool<KnownHttpApiKey> {\n const source = resolve(KnownToken.Config.source);\n\n return new HttpApiHostPool<KnownHttpApiKey>(\n {\n ilium: 'PUBLIC_API_URL_ILIUM',\n simaV3: 'PUBLIC_API_URL_SIMALAND_V3',\n simaV4: 'PUBLIC_API_URL_SIMALAND_V4',\n simaV6: 'PUBLIC_API_URL_SIMALAND_V6',\n chponkiV2: 'PUBLIC_API_URL_CHPONKI_V2',\n shuttle: 'PUBLIC_API_URL_SHUTTLE',\n fileDispatcher: 'PUBLIC_API_URL_FILE_DISPATCHER',\n },\n source,\n );\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,gBAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,wBAAwBA,CAACC,OAAgB,EAAoC;EAC3F,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACF,MAAM,CAAC;EAEhD,OAAO,IAAIG,gCAAe,CACxB;IACEC,KAAK,EAAE,sBAAsB;IAC7BC,MAAM,EAAE,4BAA4B;IACpCC,MAAM,EAAE,4BAA4B;IACpCC,MAAM,EAAE,4BAA4B;IACpCC,SAAS,EAAE,2BAA2B;IACtCC,OAAO,EAAE,wBAAwB;IACjCC,cAAc,EAAE;EAClB,CAAC,EACDV,MACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","names":["_browser","require","_log","_tokens","_sentry","provideLogger","resolve","source","KnownToken","Config","config","base","client","BrowserClient","dsn","release","environment","tracesSampleRate","Number","get","profilesSampleRate","transport","makeFetchTransport","stackParser","defaultStackParser","integrations","getDefaultIntegrations","scope","Scope","setTag","window","location","href","setClient","logger","createLogger","subscribe","createSentryHandler","env","event","type","console","debug","data","error"],"sources":["../../../../../src/preset/web/providers/logger.ts"],"sourcesContent":["import {\n Scope,\n BrowserClient,\n getDefaultIntegrations,\n defaultStackParser,\n makeFetchTransport,\n} from '@sentry/browser';\nimport { Resolve } from '../../../di';\nimport { Logger, createLogger } from '../../../log';\nimport { KnownToken } from '../../../tokens';\nimport { createSentryHandler } from '../../../log/handler/sentry';\n\n/**\n * Провайдер Logger'а.\n * @param resolve Функция для получения зависимости по токену.\n * @return Logger.\n */\nexport function provideLogger(resolve: Resolve): Logger {\n const source = resolve(KnownToken.Config.source);\n const config = resolve(KnownToken.Config.base);\n\n const client = new BrowserClient({\n dsn: source.require('PUBLIC_SENTRY_DSN'),\n release: source.require('SENTRY_RELEASE'),\n environment: source.require('PUBLIC_SENTRY_ENVIRONMENT'),\n tracesSampleRate: Number(source.get('SENTRY_TRACES_SAMPLE_RATE', 0)),\n profilesSampleRate: Number(source.get('SENTRY_TRACES_SAMPLE_RATE', 0)),\n transport: makeFetchTransport,\n stackParser: defaultStackParser,\n integrations: [...getDefaultIntegrations({})],\n });\n\n const scope = new Scope();\n\n scope.setTag('url', window.location.href);\n scope.setClient(client);\n\n const logger = createLogger();\n\n logger.subscribe(createSentryHandler(scope));\n\n if (config.env === 'development') {\n logger.subscribe(event => {\n switch (event.type) {\n case 'debug':\n // eslint-disable-next-line no-console\n console.debug(event.data);\n break;\n case 'error':\n // eslint-disable-next-line no-console\n console.error(event.data);\n break;\n }\n });\n }\n\n return logger;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAQA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASI,aAAaA,CAACC,OAAgB,EAAU;EACtD,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACF,MAAM,CAAC;EAChD,MAAMG,MAAM,GAAGJ,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACE,IAAI,CAAC;EAE9C,MAAMC,MAAM,GAAG,IAAIC,sBAAa,CAAC;IAC/BC,GAAG,EAAEP,MAAM,CAACN,OAAO,CAAC,mBAAmB,CAAC;IACxCc,OAAO,EAAER,MAAM,CAACN,OAAO,CAAC,gBAAgB,CAAC;IACzCe,WAAW,EAAET,MAAM,CAACN,OAAO,CAAC,2BAA2B,CAAC;IACxDgB,gBAAgB,EAAEC,MAAM,CAACX,MAAM,CAACY,GAAG,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;IACpEC,kBAAkB,EAAEF,MAAM,CAACX,MAAM,CAACY,GAAG,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;IACtEE,SAAS,EAAEC,2BAAkB;IAC7BC,WAAW,EAAEC,2BAAkB;IAC/BC,YAAY,EAAE,CAAC,GAAG,IAAAC,+BAAsB,EAAC,CAAC,CAAC,CAAC;EAC9C,CAAC,CAAC;EAEF,MAAMC,KAAK,GAAG,IAAIC,cAAK,CAAC,CAAC;EAEzBD,KAAK,CAACE,MAAM,CAAC,KAAK,EAAEC,MAAM,CAACC,QAAQ,CAACC,IAAI,CAAC;EACzCL,KAAK,CAACM,SAAS,CAACrB,MAAM,CAAC;EAEvB,MAAMsB,MAAM,GAAG,IAAAC,iBAAY,EAAC,CAAC;EAE7BD,MAAM,CAACE,SAAS,CAAC,IAAAC,2BAAmB,EAACV,KAAK,CAAC,CAAC;EAE5C,IAAIjB,MAAM,CAAC4B,GAAG,KAAK,aAAa,EAAE;IAChCJ,MAAM,CAACE,SAAS,CAACG,KAAK,IAAI;MACxB,QAAQA,KAAK,CAACC,IAAI;QAChB,KAAK,OAAO;UACV;UACAC,OAAO,CAACC,KAAK,CAACH,KAAK,CAACI,IAAI,CAAC;UACzB;QACF,KAAK,OAAO;UACV;UACAF,OAAO,CAACG,KAAK,CAACL,KAAK,CAACI,IAAI,CAAC;UACzB;MACJ;IACF,CAAC,CAAC;EACJ;EAEA,OAAOT,MAAM;AACf"}
|
|
1
|
+
{"version":3,"file":"logger.js","names":["_browser","require","_log","_tokens","_sentry","provideLogger","resolve","source","KnownToken","Config","config","base","client","BrowserClient","dsn","release","environment","tracesSampleRate","Number","get","profilesSampleRate","transport","makeFetchTransport","stackParser","defaultStackParser","integrations","getDefaultIntegrations","scope","Scope","setTag","window","location","href","setClient","logger","createLogger","subscribe","createSentryHandler","env","event","type","console","debug","data","error"],"sources":["../../../../../src/preset/web/providers/logger.ts"],"sourcesContent":["import {\n Scope,\n BrowserClient,\n getDefaultIntegrations,\n defaultStackParser,\n makeFetchTransport,\n} from '@sentry/browser';\nimport { Resolve } from '../../../di';\nimport { Logger, createLogger } from '../../../log';\nimport { KnownToken } from '../../../tokens';\nimport { createSentryHandler } from '../../../log/handler/sentry';\n\n/**\n * Провайдер Logger'а.\n * @param resolve Функция для получения зависимости по токену.\n * @return Logger.\n */\nexport function provideLogger(resolve: Resolve): Logger {\n const source = resolve(KnownToken.Config.source);\n const config = resolve(KnownToken.Config.base);\n\n const client = new BrowserClient({\n dsn: source.require('PUBLIC_SENTRY_DSN'),\n release: source.require('SENTRY_RELEASE'),\n environment: source.require('PUBLIC_SENTRY_ENVIRONMENT'),\n tracesSampleRate: Number(source.get('SENTRY_TRACES_SAMPLE_RATE', 0)),\n profilesSampleRate: Number(source.get('SENTRY_TRACES_SAMPLE_RATE', 0)),\n transport: makeFetchTransport,\n stackParser: defaultStackParser,\n integrations: [...getDefaultIntegrations({})],\n });\n\n const scope = new Scope();\n\n scope.setTag('url', window.location.href);\n scope.setClient(client);\n\n const logger = createLogger();\n\n logger.subscribe(createSentryHandler(scope));\n\n if (config.env === 'development') {\n logger.subscribe(event => {\n switch (event.type) {\n case 'debug':\n // eslint-disable-next-line no-console\n console.debug(event.data);\n break;\n case 'error':\n // eslint-disable-next-line no-console\n console.error(event.data);\n break;\n }\n });\n }\n\n return logger;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAQA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASI,aAAaA,CAACC,OAAgB,EAAU;EACtD,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACF,MAAM,CAAC;EAChD,MAAMG,MAAM,GAAGJ,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACE,IAAI,CAAC;EAE9C,MAAMC,MAAM,GAAG,IAAIC,sBAAa,CAAC;IAC/BC,GAAG,EAAEP,MAAM,CAACN,OAAO,CAAC,mBAAmB,CAAC;IACxCc,OAAO,EAAER,MAAM,CAACN,OAAO,CAAC,gBAAgB,CAAC;IACzCe,WAAW,EAAET,MAAM,CAACN,OAAO,CAAC,2BAA2B,CAAC;IACxDgB,gBAAgB,EAAEC,MAAM,CAACX,MAAM,CAACY,GAAG,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;IACpEC,kBAAkB,EAAEF,MAAM,CAACX,MAAM,CAACY,GAAG,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;IACtEE,SAAS,EAAEC,2BAAkB;IAC7BC,WAAW,EAAEC,2BAAkB;IAC/BC,YAAY,EAAE,CAAC,GAAG,IAAAC,+BAAsB,EAAC,CAAC,CAAC,CAAC;EAC9C,CAAC,CAAC;EAEF,MAAMC,KAAK,GAAG,IAAIC,cAAK,CAAC,CAAC;EAEzBD,KAAK,CAACE,MAAM,CAAC,KAAK,EAAEC,MAAM,CAACC,QAAQ,CAACC,IAAI,CAAC;EACzCL,KAAK,CAACM,SAAS,CAACrB,MAAM,CAAC;EAEvB,MAAMsB,MAAM,GAAG,IAAAC,iBAAY,EAAC,CAAC;EAE7BD,MAAM,CAACE,SAAS,CAAC,IAAAC,2BAAmB,EAACV,KAAK,CAAC,CAAC;EAE5C,IAAIjB,MAAM,CAAC4B,GAAG,KAAK,aAAa,EAAE;IAChCJ,MAAM,CAACE,SAAS,CAACG,KAAK,IAAI;MACxB,QAAQA,KAAK,CAACC,IAAI;QAChB,KAAK,OAAO;UACV;UACAC,OAAO,CAACC,KAAK,CAACH,KAAK,CAACI,IAAI,CAAC;UACzB;QACF,KAAK,OAAO;UACV;UACAF,OAAO,CAACG,KAAK,CAACL,KAAK,CAACI,IAAI,CAAC;UACzB;MACJ;IACF,CAAC,CAAC;EACJ;EAEA,OAAOT,MAAM;AACf","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssr-bridge-client-side.js","names":["_tokens","require","_ssr","provideSsrBridgeClientSide","resolve","config","KnownToken","Config","base","SsrBridge","appName"],"sources":["../../../../../src/preset/web/providers/ssr-bridge-client-side.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { BridgeClientSide, SsrBridge } from '../../../utils/ssr';\n\n/**\n * Провайдер клиентской части \"моста\" для передачи данных между сервером и клиентом.\n * @param resolve Функция для получения зависимости по токену.\n * @return Клиентская часть \"моста\".\n */\nexport function provideSsrBridgeClientSide(resolve: Resolve): BridgeClientSide<unknown> {\n const config = resolve(KnownToken.Config.base);\n\n return SsrBridge.resolve(config.appName);\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,0BAA0BA,CAACC,OAAgB,EAA6B;EACtF,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACC,IAAI,CAAC;EAE9C,OAAOC,cAAS,CAACL,OAAO,CAACC,MAAM,CAACK,OAAO,CAAC;AAC1C"}
|
|
1
|
+
{"version":3,"file":"ssr-bridge-client-side.js","names":["_tokens","require","_ssr","provideSsrBridgeClientSide","resolve","config","KnownToken","Config","base","SsrBridge","appName"],"sources":["../../../../../src/preset/web/providers/ssr-bridge-client-side.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { BridgeClientSide, SsrBridge } from '../../../utils/ssr';\n\n/**\n * Провайдер клиентской части \"моста\" для передачи данных между сервером и клиентом.\n * @param resolve Функция для получения зависимости по токену.\n * @return Клиентская часть \"моста\".\n */\nexport function provideSsrBridgeClientSide(resolve: Resolve): BridgeClientSide<unknown> {\n const config = resolve(KnownToken.Config.base);\n\n return SsrBridge.resolve(config.appName);\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,0BAA0BA,CAACC,OAAgB,EAA6B;EACtF,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACC,IAAI,CAAC;EAE9C,OAAOC,cAAS,CAACL,OAAO,CAACC,MAAM,CAACK,OAAO,CAAC;AAC1C","ignoreList":[]}
|
package/dist/cjs/tokens.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","names":["_di","require","KnownToken","exports","Config","source","createToken","base","publicEnvs","cache","logger","Tracing","tracer","spanExporter","provider","resource","Metrics","expressApp","httpHandler","Http","Api","knownHosts","fetch","Fetch","abortController","middleware","Middleware","Log","handler","serve","Serve","pageRoutes","serviceRoutes","Proxy","config","Handler","main","context","Request","acceptType","specificParams","Response","events","specificExtras","Page","render","assets","helmet","elementToString","formatResponse","Axios","factory","Express","app","endMiddleware","Handlers","healthCheck","request","log","tracing","metrics","error","ExpressHandler","Redux","saga","SsrBridge","clientSide","serverSide"],"sources":["../../src/tokens.ts"],"sourcesContent":["import { createToken } from './di';\n\n// ВАЖНО: чтобы токенами можно было пользоваться независимо от среды исполнения - импортировать надо только типы\nimport type * as express from 'express';\nimport type { ConfigSource, BaseConfig } from './config/types';\nimport type { Logger } from './log/types';\nimport type { Cache } from './cache/types';\nimport type { LogMiddlewareHandlerInit } from './utils/axios/middleware/log';\nimport type { SagaMiddleware } from 'redux-saga';\nimport type { BridgeClientSide, BridgeServerSide } from './utils/ssr';\nimport type { Tracer } from '@opentelemetry/api';\nimport type { BasicTracerProvider, SpanExporter } from '@opentelemetry/sdk-trace-base';\nimport type { Resource } from '@opentelemetry/resources';\nimport type { ElementType, ReactNode, JSX } from 'react';\nimport type { KnownHttpApiKey, PageAssets } from './preset/isomorphic/types';\nimport type { ExpressHandlerContext, ExpressRouteList } from './preset/node/types';\nimport type { SpecificExtras } from './preset/server/utils/specific-extras';\nimport type { CreateAxiosDefaults } from 'axios';\nimport type { AxiosInstanceWrapper, Middleware as AxiosMiddleware } from 'middleware-axios';\nimport type { Handler, LogHandler, LogHandlerFactory, Middleware, ProxyOptions } from './http';\nimport type { HttpApiHostPool } from './preset/isomorphic/utils/http-api-host-pool';\nimport type {\n ServerHandlerContext,\n ServerHandler,\n ServerMiddleware,\n PageResponseFormatter,\n RenderToString,\n RouteList,\n} from './preset/server/types';\n\n/**\n * Токены компонентов.\n * Данные токены используются в DI-пресетах, доступных из пакета.\n */\nexport const KnownToken = {\n /** Токены компонентов конфигурации приложения. */\n Config: {\n /** Токен \"источника конфигурации\". */\n source: createToken<ConfigSource>('config/source'),\n\n /** Токен базовой конфигурации. */\n base: createToken<BaseConfig>('config/base'),\n\n /** Токен публичных переменных среды. */\n publicEnvs: createToken<Record<string, string | undefined>>('config/public-envs'),\n },\n\n /** Токен компонента кеша. */\n cache: createToken<Cache>('cache'),\n\n /** Токен компонента логгера. */\n logger: createToken<Logger>('logger'),\n\n /** Токены компонентов трассировки и телеметрии. */\n Tracing: {\n tracer: createToken<Tracer>('tracing/tracer'),\n spanExporter: createToken<SpanExporter>('tracing/span-exporter'),\n provider: createToken<BasicTracerProvider>('tracing/provider'),\n resource: createToken<Resource>('tracing/resource'),\n },\n\n /** Токены компонентов сбора метрик. */\n Metrics: {\n expressApp: createToken<express.Application>('metrics/express-app'),\n httpHandler: createToken<Handler>('metrics/http-handler'),\n },\n\n /** Токены компонентов для работы по HTTP. */\n Http: {\n /** Токены компонентов API. */\n Api: {\n /** Токен пула хостов известных HTTP API. */\n knownHosts: createToken<HttpApiHostPool<KnownHttpApiKey>>('http/api/known-hosts'),\n },\n\n /** Токен функции fetch. */\n fetch: createToken<typeof fetch>('fetch'),\n\n /** Токены компонентов формирующих работу функции fetch. */\n Fetch: {\n /** Токен AbortController для функции fetch. */\n abortController: createToken<AbortController>('fetch/abort-controller'),\n\n /** Токен списка промежуточных слоев для функции fetch. */\n middleware: createToken<Middleware[]>('fetch/middleware'),\n\n /** Токены компонентов промежуточных слоев для функции fetch. */\n Middleware: {\n /** Токены компонентов промежуточного слоя логирования. */\n Log: {\n /** Токены обработчика логирования работы функции fetch. */\n handler: createToken<LogHandler | LogHandlerFactory>('fetch/middleware/log/handler'),\n },\n },\n },\n\n /** Токен функции обработки входящего HTTP-запроса. */\n serve: createToken<Handler>('serve'),\n\n /** Токены компонентов функции обработки входящего HTTP-запроса. */\n Serve: {\n /** Токен списка маршрутов. */\n pageRoutes: createToken<RouteList>('serve/page-routes'),\n\n /** Токен списка \"служебных\" маршрутов. К \"служебным\" маршрутам не применяются промежуточные слои. */\n serviceRoutes: createToken<RouteList>('serve/service-routes'),\n\n /** Токен списка промежуточных слоев обработки входящего HTTP-запроса. */\n middleware: createToken<ServerMiddleware[]>('serve/middleware'),\n\n Proxy: {\n config: createToken<null | undefined | ProxyOptions | ProxyOptions[]>('proxy/config'),\n },\n },\n\n /** Токены компонентов обработчиков входящих HTTP-запросов. */\n Handler: {\n /** Токен главной функции (точки входа) обработчика. */\n main: createToken<ServerHandler>('handler/main'),\n\n /** Токен \"контекста\" обработчика. Контекст содержит объект запроса а также реализует EventTarget. */\n context: createToken<ServerHandlerContext & { request: Request }>('handler/context'),\n\n /** Токен компонентов входящего запроса. */\n Request: {\n /** Токен функции которая определяет возможные типы ответа и их приоритет. */\n acceptType: createToken<(types: string[]) => string | string[] | false>('handler/accepts'),\n\n /** Токен \"специфичных\" параметров запроса. В зависимости от реализации определит параметры на основе объекта запроса. */\n specificParams: createToken<Record<string, unknown>>('request/specific-params'),\n },\n\n /** Токены компонентов исходящего ответа. */\n Response: {\n /** Токен объекта для подписки на события и вызова событий ответа. */\n events: createToken<EventTarget>('response/events'),\n\n /** Токен \"специфичных\" дополнительных данных. В зависимости от реализации сформирует дополнительные данные ответа. */\n specificExtras: createToken<SpecificExtras>('response/specific-extras'),\n },\n\n /** Токены компонентов HTML-документа, формируемого в рамках обработчика. */\n Page: {\n /** Токен рендер-функции. */\n render: createToken<() => JSX.Element | Promise<JSX.Element>>('page/render'),\n\n /** Токен ассетов HTML-документа. */\n assets: createToken<PageAssets | (() => PageAssets | Promise<PageAssets>)>('page/assets'),\n\n /** Токен \"шлема\". Шлем - UI-компонент, внутри которого будет выведен результат render-функции. */\n helmet: createToken<ElementType<{ children: ReactNode }>>('page/helmet'),\n\n /** Токен функции, получающей jsx и возвращающей строку. */\n elementToString: createToken<RenderToString>('page/element-to-string'),\n\n /** Токен функции, которая вернёт данные для ответа. */\n formatResponse: createToken<PageResponseFormatter>('page/format-response'),\n },\n },\n },\n\n /** Токены компонентов для работы с библиотекой axios. */\n Axios: {\n /** Токен фабрики экземпляров axios. Фабрика вернет расширенный экземпляр с возможностью применять промежуточные слои. */\n factory: createToken<(config?: CreateAxiosDefaults) => AxiosInstanceWrapper>('axios/factory'),\n\n /** Токен промежуточных слоев. */\n middleware: createToken<AxiosMiddleware<any>[]>('axios/middleware'),\n\n /** Токен компонентов промежуточных слоев. */\n Middleware: {\n /** Токен компонентов слоя логирования. */\n Log: {\n /** Токен обработчика логирования. */\n handler: createToken<LogMiddlewareHandlerInit>('axios/middleware/log/handler'),\n },\n },\n },\n\n /** Токены компонентов для работы с библиотекой express. */\n Express: {\n /** Токен основного express-приложения. */\n app: createToken<express.Application>('express/app'),\n\n /** Токен списка маршрутов страниц. */\n pageRoutes: createToken<ExpressRouteList>('express/page-routes'),\n\n /** Токен списка служебных маршрутов. */\n serviceRoutes: createToken<ExpressRouteList>('express/service-routes'),\n\n /** Токен списка промежуточных слоев для публичных маршрутов. */\n middleware:\n createToken<Array<express.Handler | express.ErrorRequestHandler>>('express/middleware'),\n\n /** Токен списка промежуточных слоев для публичных маршрутов, которые подключаются после обработчика. */\n endMiddleware:\n createToken<Array<express.Handler | express.ErrorRequestHandler>>('express/end-middleware'),\n\n /** Токен фабрики express-приложений. */\n factory: createToken<() => express.Application>('express/factory'),\n\n /** Токен express-обработчиков. */\n Handlers: {\n /** Токен обработчика \"health check\". */\n healthCheck: createToken<express.Handler>('express/handler/health-check'),\n },\n\n /** Токены промежуточных слоев express-приложения. */\n Middleware: {\n request: createToken<express.Handler>('express/middleware/request'),\n log: createToken<express.Handler>('express/middleware/log'),\n tracing: createToken<express.Handler>('express/middleware/tracing'),\n metrics: createToken<express.Handler>('express/middleware/metrics'),\n error: createToken<express.ErrorRequestHandler>('express/middleware/error'),\n },\n },\n\n /** Токены компонентов express-обработчика. */\n ExpressHandler: {\n /** Токен главной функции (точки входа) обработчика. */\n main: createToken<express.Handler>('express-handler/main'),\n\n /** Токен \"контекста\" обработчика. Контекст содержит все аргументы, доступные обработчику (req, res, next). */\n context: createToken<ExpressHandlerContext>('express-handler/context'),\n },\n\n /** Токены компонентов для работы с библиотекой redux. */\n Redux: {\n /** Токены компонентов промежуточных слоев. */\n Middleware: {\n /** Токен промежуточного слоя redux-saga. */\n saga: createToken<SagaMiddleware>('saga-middleware'),\n },\n },\n\n /** Токены компонентов передачи данных страницы между клиентом и сервером. */\n SsrBridge: {\n /** Токены компонента \"клиентской стороны\". */\n clientSide: createToken<BridgeClientSide<unknown>>('ssr-bridge/client-side'),\n\n /** Токены компонента \"серверной стороны\". */\n serverSide: createToken<BridgeServerSide>('ssr-bridge/server-side'),\n },\n} as const;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tokens.js","names":["_di","require","KnownToken","exports","Config","source","createToken","base","publicEnvs","cache","logger","Tracing","tracer","spanExporter","provider","resource","Metrics","expressApp","httpHandler","Http","Api","knownHosts","fetch","Fetch","abortController","middleware","Middleware","Log","handler","serve","Serve","pageRoutes","serviceRoutes","Proxy","config","Handler","main","context","Request","acceptType","specificParams","Response","events","specificExtras","Page","render","assets","helmet","elementToString","formatResponse","Axios","factory","Express","app","endMiddleware","Handlers","healthCheck","request","log","tracing","metrics","error","ExpressHandler","Redux","saga","SsrBridge","clientSide","serverSide"],"sources":["../../src/tokens.ts"],"sourcesContent":["import { createToken } from './di';\n\n// ВАЖНО: чтобы токенами можно было пользоваться независимо от среды исполнения - импортировать надо только типы\nimport type * as express from 'express';\nimport type { ConfigSource, BaseConfig } from './config/types';\nimport type { Logger } from './log/types';\nimport type { Cache } from './cache/types';\nimport type { LogMiddlewareHandlerInit } from './utils/axios/middleware/log';\nimport type { SagaMiddleware } from 'redux-saga';\nimport type { BridgeClientSide, BridgeServerSide } from './utils/ssr';\nimport type { Tracer } from '@opentelemetry/api';\nimport type { BasicTracerProvider, SpanExporter } from '@opentelemetry/sdk-trace-base';\nimport type { Resource } from '@opentelemetry/resources';\nimport type { ElementType, ReactNode, JSX } from 'react';\nimport type { KnownHttpApiKey, PageAssets } from './preset/isomorphic/types';\nimport type { ExpressHandlerContext, ExpressRouteList } from './preset/node/types';\nimport type { SpecificExtras } from './preset/server/utils/specific-extras';\nimport type { CreateAxiosDefaults } from 'axios';\nimport type { AxiosInstanceWrapper, Middleware as AxiosMiddleware } from 'middleware-axios';\nimport type { Handler, LogHandler, LogHandlerFactory, Middleware, ProxyOptions } from './http';\nimport type { HttpApiHostPool } from './preset/isomorphic/utils/http-api-host-pool';\nimport type {\n ServerHandlerContext,\n ServerHandler,\n ServerMiddleware,\n PageResponseFormatter,\n RenderToString,\n RouteList,\n} from './preset/server/types';\n\n/**\n * Токены компонентов.\n * Данные токены используются в DI-пресетах, доступных из пакета.\n */\nexport const KnownToken = {\n /** Токены компонентов конфигурации приложения. */\n Config: {\n /** Токен \"источника конфигурации\". */\n source: createToken<ConfigSource>('config/source'),\n\n /** Токен базовой конфигурации. */\n base: createToken<BaseConfig>('config/base'),\n\n /** Токен публичных переменных среды. */\n publicEnvs: createToken<Record<string, string | undefined>>('config/public-envs'),\n },\n\n /** Токен компонента кеша. */\n cache: createToken<Cache>('cache'),\n\n /** Токен компонента логгера. */\n logger: createToken<Logger>('logger'),\n\n /** Токены компонентов трассировки и телеметрии. */\n Tracing: {\n tracer: createToken<Tracer>('tracing/tracer'),\n spanExporter: createToken<SpanExporter>('tracing/span-exporter'),\n provider: createToken<BasicTracerProvider>('tracing/provider'),\n resource: createToken<Resource>('tracing/resource'),\n },\n\n /** Токены компонентов сбора метрик. */\n Metrics: {\n expressApp: createToken<express.Application>('metrics/express-app'),\n httpHandler: createToken<Handler>('metrics/http-handler'),\n },\n\n /** Токены компонентов для работы по HTTP. */\n Http: {\n /** Токены компонентов API. */\n Api: {\n /** Токен пула хостов известных HTTP API. */\n knownHosts: createToken<HttpApiHostPool<KnownHttpApiKey>>('http/api/known-hosts'),\n },\n\n /** Токен функции fetch. */\n fetch: createToken<typeof fetch>('fetch'),\n\n /** Токены компонентов формирующих работу функции fetch. */\n Fetch: {\n /** Токен AbortController для функции fetch. */\n abortController: createToken<AbortController>('fetch/abort-controller'),\n\n /** Токен списка промежуточных слоев для функции fetch. */\n middleware: createToken<Middleware[]>('fetch/middleware'),\n\n /** Токены компонентов промежуточных слоев для функции fetch. */\n Middleware: {\n /** Токены компонентов промежуточного слоя логирования. */\n Log: {\n /** Токены обработчика логирования работы функции fetch. */\n handler: createToken<LogHandler | LogHandlerFactory>('fetch/middleware/log/handler'),\n },\n },\n },\n\n /** Токен функции обработки входящего HTTP-запроса. */\n serve: createToken<Handler>('serve'),\n\n /** Токены компонентов функции обработки входящего HTTP-запроса. */\n Serve: {\n /** Токен списка маршрутов. */\n pageRoutes: createToken<RouteList>('serve/page-routes'),\n\n /** Токен списка \"служебных\" маршрутов. К \"служебным\" маршрутам не применяются промежуточные слои. */\n serviceRoutes: createToken<RouteList>('serve/service-routes'),\n\n /** Токен списка промежуточных слоев обработки входящего HTTP-запроса. */\n middleware: createToken<ServerMiddleware[]>('serve/middleware'),\n\n Proxy: {\n config: createToken<null | undefined | ProxyOptions | ProxyOptions[]>('proxy/config'),\n },\n },\n\n /** Токены компонентов обработчиков входящих HTTP-запросов. */\n Handler: {\n /** Токен главной функции (точки входа) обработчика. */\n main: createToken<ServerHandler>('handler/main'),\n\n /** Токен \"контекста\" обработчика. Контекст содержит объект запроса а также реализует EventTarget. */\n context: createToken<ServerHandlerContext & { request: Request }>('handler/context'),\n\n /** Токен компонентов входящего запроса. */\n Request: {\n /** Токен функции которая определяет возможные типы ответа и их приоритет. */\n acceptType: createToken<(types: string[]) => string | string[] | false>('handler/accepts'),\n\n /** Токен \"специфичных\" параметров запроса. В зависимости от реализации определит параметры на основе объекта запроса. */\n specificParams: createToken<Record<string, unknown>>('request/specific-params'),\n },\n\n /** Токены компонентов исходящего ответа. */\n Response: {\n /** Токен объекта для подписки на события и вызова событий ответа. */\n events: createToken<EventTarget>('response/events'),\n\n /** Токен \"специфичных\" дополнительных данных. В зависимости от реализации сформирует дополнительные данные ответа. */\n specificExtras: createToken<SpecificExtras>('response/specific-extras'),\n },\n\n /** Токены компонентов HTML-документа, формируемого в рамках обработчика. */\n Page: {\n /** Токен рендер-функции. */\n render: createToken<() => JSX.Element | Promise<JSX.Element>>('page/render'),\n\n /** Токен ассетов HTML-документа. */\n assets: createToken<PageAssets | (() => PageAssets | Promise<PageAssets>)>('page/assets'),\n\n /** Токен \"шлема\". Шлем - UI-компонент, внутри которого будет выведен результат render-функции. */\n helmet: createToken<ElementType<{ children: ReactNode }>>('page/helmet'),\n\n /** Токен функции, получающей jsx и возвращающей строку. */\n elementToString: createToken<RenderToString>('page/element-to-string'),\n\n /** Токен функции, которая вернёт данные для ответа. */\n formatResponse: createToken<PageResponseFormatter>('page/format-response'),\n },\n },\n },\n\n /** Токены компонентов для работы с библиотекой axios. */\n Axios: {\n /** Токен фабрики экземпляров axios. Фабрика вернет расширенный экземпляр с возможностью применять промежуточные слои. */\n factory: createToken<(config?: CreateAxiosDefaults) => AxiosInstanceWrapper>('axios/factory'),\n\n /** Токен промежуточных слоев. */\n middleware: createToken<AxiosMiddleware<any>[]>('axios/middleware'),\n\n /** Токен компонентов промежуточных слоев. */\n Middleware: {\n /** Токен компонентов слоя логирования. */\n Log: {\n /** Токен обработчика логирования. */\n handler: createToken<LogMiddlewareHandlerInit>('axios/middleware/log/handler'),\n },\n },\n },\n\n /** Токены компонентов для работы с библиотекой express. */\n Express: {\n /** Токен основного express-приложения. */\n app: createToken<express.Application>('express/app'),\n\n /** Токен списка маршрутов страниц. */\n pageRoutes: createToken<ExpressRouteList>('express/page-routes'),\n\n /** Токен списка служебных маршрутов. */\n serviceRoutes: createToken<ExpressRouteList>('express/service-routes'),\n\n /** Токен списка промежуточных слоев для публичных маршрутов. */\n middleware:\n createToken<Array<express.Handler | express.ErrorRequestHandler>>('express/middleware'),\n\n /** Токен списка промежуточных слоев для публичных маршрутов, которые подключаются после обработчика. */\n endMiddleware:\n createToken<Array<express.Handler | express.ErrorRequestHandler>>('express/end-middleware'),\n\n /** Токен фабрики express-приложений. */\n factory: createToken<() => express.Application>('express/factory'),\n\n /** Токен express-обработчиков. */\n Handlers: {\n /** Токен обработчика \"health check\". */\n healthCheck: createToken<express.Handler>('express/handler/health-check'),\n },\n\n /** Токены промежуточных слоев express-приложения. */\n Middleware: {\n request: createToken<express.Handler>('express/middleware/request'),\n log: createToken<express.Handler>('express/middleware/log'),\n tracing: createToken<express.Handler>('express/middleware/tracing'),\n metrics: createToken<express.Handler>('express/middleware/metrics'),\n error: createToken<express.ErrorRequestHandler>('express/middleware/error'),\n },\n },\n\n /** Токены компонентов express-обработчика. */\n ExpressHandler: {\n /** Токен главной функции (точки входа) обработчика. */\n main: createToken<express.Handler>('express-handler/main'),\n\n /** Токен \"контекста\" обработчика. Контекст содержит все аргументы, доступные обработчику (req, res, next). */\n context: createToken<ExpressHandlerContext>('express-handler/context'),\n },\n\n /** Токены компонентов для работы с библиотекой redux. */\n Redux: {\n /** Токены компонентов промежуточных слоев. */\n Middleware: {\n /** Токен промежуточного слоя redux-saga. */\n saga: createToken<SagaMiddleware>('saga-middleware'),\n },\n },\n\n /** Токены компонентов передачи данных страницы между клиентом и сервером. */\n SsrBridge: {\n /** Токены компонента \"клиентской стороны\". */\n clientSide: createToken<BridgeClientSide<unknown>>('ssr-bridge/client-side'),\n\n /** Токены компонента \"серверной стороны\". */\n serverSide: createToken<BridgeServerSide>('ssr-bridge/server-side'),\n },\n} as const;\n"],"mappings":";;;;;;AAAA,IAAAA,GAAA,GAAAC,OAAA;AAEA;;AA4BA;AACA;AACA;AACA;AACO,MAAMC,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG;EACxB;EACAE,MAAM,EAAE;IACN;IACAC,MAAM,EAAE,IAAAC,eAAW,EAAe,eAAe,CAAC;IAElD;IACAC,IAAI,EAAE,IAAAD,eAAW,EAAa,aAAa,CAAC;IAE5C;IACAE,UAAU,EAAE,IAAAF,eAAW,EAAqC,oBAAoB;EAClF,CAAC;EAED;EACAG,KAAK,EAAE,IAAAH,eAAW,EAAQ,OAAO,CAAC;EAElC;EACAI,MAAM,EAAE,IAAAJ,eAAW,EAAS,QAAQ,CAAC;EAErC;EACAK,OAAO,EAAE;IACPC,MAAM,EAAE,IAAAN,eAAW,EAAS,gBAAgB,CAAC;IAC7CO,YAAY,EAAE,IAAAP,eAAW,EAAe,uBAAuB,CAAC;IAChEQ,QAAQ,EAAE,IAAAR,eAAW,EAAsB,kBAAkB,CAAC;IAC9DS,QAAQ,EAAE,IAAAT,eAAW,EAAW,kBAAkB;EACpD,CAAC;EAED;EACAU,OAAO,EAAE;IACPC,UAAU,EAAE,IAAAX,eAAW,EAAsB,qBAAqB,CAAC;IACnEY,WAAW,EAAE,IAAAZ,eAAW,EAAU,sBAAsB;EAC1D,CAAC;EAED;EACAa,IAAI,EAAE;IACJ;IACAC,GAAG,EAAE;MACH;MACAC,UAAU,EAAE,IAAAf,eAAW,EAAmC,sBAAsB;IAClF,CAAC;IAED;IACAgB,KAAK,EAAE,IAAAhB,eAAW,EAAe,OAAO,CAAC;IAEzC;IACAiB,KAAK,EAAE;MACL;MACAC,eAAe,EAAE,IAAAlB,eAAW,EAAkB,wBAAwB,CAAC;MAEvE;MACAmB,UAAU,EAAE,IAAAnB,eAAW,EAAe,kBAAkB,CAAC;MAEzD;MACAoB,UAAU,EAAE;QACV;QACAC,GAAG,EAAE;UACH;UACAC,OAAO,EAAE,IAAAtB,eAAW,EAAiC,8BAA8B;QACrF;MACF;IACF,CAAC;IAED;IACAuB,KAAK,EAAE,IAAAvB,eAAW,EAAU,OAAO,CAAC;IAEpC;IACAwB,KAAK,EAAE;MACL;MACAC,UAAU,EAAE,IAAAzB,eAAW,EAAY,mBAAmB,CAAC;MAEvD;MACA0B,aAAa,EAAE,IAAA1B,eAAW,EAAY,sBAAsB,CAAC;MAE7D;MACAmB,UAAU,EAAE,IAAAnB,eAAW,EAAqB,kBAAkB,CAAC;MAE/D2B,KAAK,EAAE;QACLC,MAAM,EAAE,IAAA5B,eAAW,EAAmD,cAAc;MACtF;IACF,CAAC;IAED;IACA6B,OAAO,EAAE;MACP;MACAC,IAAI,EAAE,IAAA9B,eAAW,EAAgB,cAAc,CAAC;MAEhD;MACA+B,OAAO,EAAE,IAAA/B,eAAW,EAA8C,iBAAiB,CAAC;MAEpF;MACAgC,OAAO,EAAE;QACP;QACAC,UAAU,EAAE,IAAAjC,eAAW,EAAiD,iBAAiB,CAAC;QAE1F;QACAkC,cAAc,EAAE,IAAAlC,eAAW,EAA0B,yBAAyB;MAChF,CAAC;MAED;MACAmC,QAAQ,EAAE;QACR;QACAC,MAAM,EAAE,IAAApC,eAAW,EAAc,iBAAiB,CAAC;QAEnD;QACAqC,cAAc,EAAE,IAAArC,eAAW,EAAiB,0BAA0B;MACxE,CAAC;MAED;MACAsC,IAAI,EAAE;QACJ;QACAC,MAAM,EAAE,IAAAvC,eAAW,EAA2C,aAAa,CAAC;QAE5E;QACAwC,MAAM,EAAE,IAAAxC,eAAW,EAAwD,aAAa,CAAC;QAEzF;QACAyC,MAAM,EAAE,IAAAzC,eAAW,EAAuC,aAAa,CAAC;QAExE;QACA0C,eAAe,EAAE,IAAA1C,eAAW,EAAiB,wBAAwB,CAAC;QAEtE;QACA2C,cAAc,EAAE,IAAA3C,eAAW,EAAwB,sBAAsB;MAC3E;IACF;EACF,CAAC;EAED;EACA4C,KAAK,EAAE;IACL;IACAC,OAAO,EAAE,IAAA7C,eAAW,EAAyD,eAAe,CAAC;IAE7F;IACAmB,UAAU,EAAE,IAAAnB,eAAW,EAAyB,kBAAkB,CAAC;IAEnE;IACAoB,UAAU,EAAE;MACV;MACAC,GAAG,EAAE;QACH;QACAC,OAAO,EAAE,IAAAtB,eAAW,EAA2B,8BAA8B;MAC/E;IACF;EACF,CAAC;EAED;EACA8C,OAAO,EAAE;IACP;IACAC,GAAG,EAAE,IAAA/C,eAAW,EAAsB,aAAa,CAAC;IAEpD;IACAyB,UAAU,EAAE,IAAAzB,eAAW,EAAmB,qBAAqB,CAAC;IAEhE;IACA0B,aAAa,EAAE,IAAA1B,eAAW,EAAmB,wBAAwB,CAAC;IAEtE;IACAmB,UAAU,EACR,IAAAnB,eAAW,EAAuD,oBAAoB,CAAC;IAEzF;IACAgD,aAAa,EACX,IAAAhD,eAAW,EAAuD,wBAAwB,CAAC;IAE7F;IACA6C,OAAO,EAAE,IAAA7C,eAAW,EAA4B,iBAAiB,CAAC;IAElE;IACAiD,QAAQ,EAAE;MACR;MACAC,WAAW,EAAE,IAAAlD,eAAW,EAAkB,8BAA8B;IAC1E,CAAC;IAED;IACAoB,UAAU,EAAE;MACV+B,OAAO,EAAE,IAAAnD,eAAW,EAAkB,4BAA4B,CAAC;MACnEoD,GAAG,EAAE,IAAApD,eAAW,EAAkB,wBAAwB,CAAC;MAC3DqD,OAAO,EAAE,IAAArD,eAAW,EAAkB,4BAA4B,CAAC;MACnEsD,OAAO,EAAE,IAAAtD,eAAW,EAAkB,4BAA4B,CAAC;MACnEuD,KAAK,EAAE,IAAAvD,eAAW,EAA8B,0BAA0B;IAC5E;EACF,CAAC;EAED;EACAwD,cAAc,EAAE;IACd;IACA1B,IAAI,EAAE,IAAA9B,eAAW,EAAkB,sBAAsB,CAAC;IAE1D;IACA+B,OAAO,EAAE,IAAA/B,eAAW,EAAwB,yBAAyB;EACvE,CAAC;EAED;EACAyD,KAAK,EAAE;IACL;IACArC,UAAU,EAAE;MACV;MACAsC,IAAI,EAAE,IAAA1D,eAAW,EAAiB,iBAAiB;IACrD;EACF,CAAC;EAED;EACA2D,SAAS,EAAE;IACT;IACAC,UAAU,EAAE,IAAA5D,eAAW,EAA4B,wBAAwB,CAAC;IAE5E;IACA6D,UAAU,EAAE,IAAA7D,eAAW,EAAmB,wBAAwB;EACpE;AACF,CAAU","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_sauce","require","_utils","_log"],"sources":["../../../../src/utils/axios/index.ts"],"sourcesContent":["export { type Sauce, type SauceResponse, sauce, formatResultInfo } from './sauce';\nexport { applyAxiosDefaults } from './utils';\nexport {\n type SharedData,\n type DoneSharedData,\n type FailSharedData,\n type LogMiddlewareHandler,\n type LogMiddlewareHandlerFactory,\n type LogMiddlewareHandlerInit,\n logMiddleware,\n} from './middleware/log';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_sauce","require","_utils","_log"],"sources":["../../../../src/utils/axios/index.ts"],"sourcesContent":["export { type Sauce, type SauceResponse, sauce, formatResultInfo } from './sauce';\nexport { applyAxiosDefaults } from './utils';\nexport {\n type SharedData,\n type DoneSharedData,\n type FailSharedData,\n type LogMiddlewareHandler,\n type LogMiddlewareHandlerFactory,\n type LogMiddlewareHandlerInit,\n logMiddleware,\n} from './middleware/log';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.js","names":["logMiddleware","handlerInit","log","config","next","defaults","shared","handler","beforeRequest","response","afterResponse","error","onCatch"],"sources":["../../../../../src/utils/axios/middleware/log.ts"],"sourcesContent":["import { AxiosResponse, AxiosRequestConfig, AxiosDefaults } from 'axios';\nimport { Middleware } from 'middleware-axios';\n\nexport interface SharedData {\n config: AxiosRequestConfig;\n defaults: AxiosDefaults;\n}\n\nexport interface DoneSharedData extends SharedData {\n response: AxiosResponse<unknown, unknown>;\n}\n\nexport interface FailSharedData extends SharedData {\n error: unknown;\n}\n\nexport interface LogMiddlewareHandler {\n beforeRequest: (data: SharedData) => Promise<void> | void;\n afterResponse: (data: DoneSharedData) => Promise<void> | void;\n onCatch: (data: FailSharedData) => Promise<void> | void;\n}\n\nexport interface LogMiddlewareHandlerFactory {\n (data: SharedData): LogMiddlewareHandler;\n}\n\nexport type LogMiddlewareHandlerInit = LogMiddlewareHandler | LogMiddlewareHandlerFactory;\n\n/**\n * Возвращает новый middleware для логирования запросов.\n * @param handlerInit Обработчик.\n * @return Middleware.\n */\nexport function logMiddleware(handlerInit: LogMiddlewareHandlerInit): Middleware<any> {\n return async function log(config, next, defaults) {\n const shared: SharedData = { config, defaults };\n const handler = typeof handlerInit === 'function' ? handlerInit(shared) : handlerInit;\n\n try {\n await handler.beforeRequest(shared);\n\n const response = await next(config);\n\n await handler.afterResponse({ ...shared, response });\n } catch (error) {\n await handler.onCatch({ ...shared, error });\n\n // ВАЖНО: не скрываем ошибку, сообщаем остальному миру про нее\n throw error;\n }\n };\n}\n"],"mappings":";;;;;;AA4BA;AACA;AACA;AACA;AACA;AACO,SAASA,aAAaA,CAACC,WAAqC,EAAmB;EACpF,OAAO,eAAeC,GAAGA,CAACC,MAAM,EAAEC,IAAI,EAAEC,QAAQ,EAAE;IAChD,MAAMC,MAAkB,GAAG;MAAEH,MAAM;MAAEE;IAAS,CAAC;IAC/C,MAAME,OAAO,GAAG,OAAON,WAAW,KAAK,UAAU,GAAGA,WAAW,CAACK,MAAM,CAAC,GAAGL,WAAW;IAErF,IAAI;MACF,MAAMM,OAAO,CAACC,aAAa,CAACF,MAAM,CAAC;MAEnC,MAAMG,QAAQ,GAAG,MAAML,IAAI,CAACD,MAAM,CAAC;MAEnC,MAAMI,OAAO,CAACG,aAAa,CAAC;QAAE,GAAGJ,MAAM;QAAEG;MAAS,CAAC,CAAC;IACtD,CAAC,CAAC,OAAOE,KAAK,EAAE;MACd,MAAMJ,OAAO,CAACK,OAAO,CAAC;QAAE,GAAGN,MAAM;QAAEK;MAAM,CAAC,CAAC;;MAE3C;MACA,MAAMA,KAAK;IACb;EACF,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"log.js","names":["logMiddleware","handlerInit","log","config","next","defaults","shared","handler","beforeRequest","response","afterResponse","error","onCatch"],"sources":["../../../../../src/utils/axios/middleware/log.ts"],"sourcesContent":["import { AxiosResponse, AxiosRequestConfig, AxiosDefaults } from 'axios';\nimport { Middleware } from 'middleware-axios';\n\nexport interface SharedData {\n config: AxiosRequestConfig;\n defaults: AxiosDefaults;\n}\n\nexport interface DoneSharedData extends SharedData {\n response: AxiosResponse<unknown, unknown>;\n}\n\nexport interface FailSharedData extends SharedData {\n error: unknown;\n}\n\nexport interface LogMiddlewareHandler {\n beforeRequest: (data: SharedData) => Promise<void> | void;\n afterResponse: (data: DoneSharedData) => Promise<void> | void;\n onCatch: (data: FailSharedData) => Promise<void> | void;\n}\n\nexport interface LogMiddlewareHandlerFactory {\n (data: SharedData): LogMiddlewareHandler;\n}\n\nexport type LogMiddlewareHandlerInit = LogMiddlewareHandler | LogMiddlewareHandlerFactory;\n\n/**\n * Возвращает новый middleware для логирования запросов.\n * @param handlerInit Обработчик.\n * @return Middleware.\n */\nexport function logMiddleware(handlerInit: LogMiddlewareHandlerInit): Middleware<any> {\n return async function log(config, next, defaults) {\n const shared: SharedData = { config, defaults };\n const handler = typeof handlerInit === 'function' ? handlerInit(shared) : handlerInit;\n\n try {\n await handler.beforeRequest(shared);\n\n const response = await next(config);\n\n await handler.afterResponse({ ...shared, response });\n } catch (error) {\n await handler.onCatch({ ...shared, error });\n\n // ВАЖНО: не скрываем ошибку, сообщаем остальному миру про нее\n throw error;\n }\n };\n}\n"],"mappings":";;;;;;AA4BA;AACA;AACA;AACA;AACA;AACO,SAASA,aAAaA,CAACC,WAAqC,EAAmB;EACpF,OAAO,eAAeC,GAAGA,CAACC,MAAM,EAAEC,IAAI,EAAEC,QAAQ,EAAE;IAChD,MAAMC,MAAkB,GAAG;MAAEH,MAAM;MAAEE;IAAS,CAAC;IAC/C,MAAME,OAAO,GAAG,OAAON,WAAW,KAAK,UAAU,GAAGA,WAAW,CAACK,MAAM,CAAC,GAAGL,WAAW;IAErF,IAAI;MACF,MAAMM,OAAO,CAACC,aAAa,CAACF,MAAM,CAAC;MAEnC,MAAMG,QAAQ,GAAG,MAAML,IAAI,CAACD,MAAM,CAAC;MAEnC,MAAMI,OAAO,CAACG,aAAa,CAAC;QAAE,GAAGJ,MAAM;QAAEG;MAAS,CAAC,CAAC;IACtD,CAAC,CAAC,OAAOE,KAAK,EAAE;MACd,MAAMJ,OAAO,CAACK,OAAO,CAAC;QAAE,GAAGN,MAAM;QAAEK;MAAM,CAAC,CAAC;;MAE3C;MACA,MAAMA,KAAK;IACb;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_axios","_interopRequireDefault","require","_","e","__esModule","default","sauce","instance","request","safetyAsync","formatResultInfo","get","delete","head","options","post","put","patch","info","ok","data","result","status","axios","isAxiosError","error","response","undefined"],"sources":["../../../../../src/utils/axios/sauce/index.ts"],"sourcesContent":["import axios, { AxiosInstance, AxiosResponse } from 'axios';\nimport { safetyAsync, SafetyInfo } from '../..';\nimport type { AxiosInstanceWrapper, MethodName } from 'middleware-axios';\n\n// @todo передавать заголовки ответа\nexport type SauceResponse<T = any> =\n | {\n ok: true;\n status: number;\n data: T;\n }\n | {\n ok: false;\n status?: unknown; // unknown так как не факт что упали именно по статусу, например может быть exception\n data?: unknown; // иногда хочется узнать, что прислал сервер вместе с ошибкой (например 422)\n error: any;\n };\n\nexport interface SauceMethod<K extends MethodName | 'request'> {\n <T>(...args: Parameters<(AxiosInstance | AxiosInstanceWrapper)[K]>): Promise<SauceResponse<T>>;\n}\n\n/**\n * Обёртка над экземпляром axios.\n * Все методы возвращают promise, который никогда переходят в состояние rejected.\n */\nexport interface Sauce {\n readonly request: SauceMethod<'request'>;\n readonly get: SauceMethod<'get'>;\n readonly delete: SauceMethod<'delete'>;\n readonly head: SauceMethod<'head'>;\n readonly options: SauceMethod<'options'>;\n readonly post: SauceMethod<'post'>;\n readonly put: SauceMethod<'put'>;\n readonly patch: SauceMethod<'patch'>;\n}\n\n/**\n * Оборачивает экземпляр axios. Все методы обертки возвращают promise, которые никогда не попадают в состояние rejected.\n * @param instance Экземпляр axios или AxiosInstanceWrapper.\n * @return Обертка.\n */\nexport function sauce(instance: AxiosInstance | AxiosInstanceWrapper): Sauce {\n return {\n request: safetyAsync(instance.request, formatResultInfo),\n get: safetyAsync(instance.get, formatResultInfo),\n delete: safetyAsync(instance.delete, formatResultInfo),\n head: safetyAsync(instance.head, formatResultInfo),\n options: safetyAsync(instance.options, formatResultInfo),\n post: safetyAsync(instance.post, formatResultInfo),\n put: safetyAsync(instance.put, formatResultInfo),\n patch: safetyAsync(instance.patch, formatResultInfo),\n };\n}\n\n/**\n * Функция форматирования результата, используемая в sauce.\n * @param info Результат вызова метода экземпляра axios.\n * @return Отформатированный ответ.\n */\nexport function formatResultInfo<T>(info: SafetyInfo<AxiosResponse<T>>): SauceResponse<T> {\n if (info.ok) {\n return {\n ok: true,\n data: info.result.data,\n status: info.result.status,\n };\n } else {\n return {\n ok: false,\n data: axios.isAxiosError(info.error) ? info.error.response?.data : undefined,\n status: axios.isAxiosError(info.error) ? info.error.response?.status : undefined,\n error: info.error,\n };\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,CAAA,GAAAD,OAAA;AAAgD,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGhD;;AAkBA;AACA;AACA;AACA;;AAYA;AACA;AACA;AACA;AACA;AACO,SAASG,KAAKA,CAACC,QAA8C,EAAS;EAC3E,OAAO;IACLC,OAAO,EAAE,IAAAC,aAAW,EAACF,QAAQ,CAACC,OAAO,EAAEE,gBAAgB,CAAC;IACxDC,GAAG,EAAE,IAAAF,aAAW,EAACF,QAAQ,CAACI,GAAG,EAAED,gBAAgB,CAAC;IAChDE,MAAM,EAAE,IAAAH,aAAW,EAACF,QAAQ,CAACK,MAAM,EAAEF,gBAAgB,CAAC;IACtDG,IAAI,EAAE,IAAAJ,aAAW,EAACF,QAAQ,CAACM,IAAI,EAAEH,gBAAgB,CAAC;IAClDI,OAAO,EAAE,IAAAL,aAAW,EAACF,QAAQ,CAACO,OAAO,EAAEJ,gBAAgB,CAAC;IACxDK,IAAI,EAAE,IAAAN,aAAW,EAACF,QAAQ,CAACQ,IAAI,EAAEL,gBAAgB,CAAC;IAClDM,GAAG,EAAE,IAAAP,aAAW,EAACF,QAAQ,CAACS,GAAG,EAAEN,gBAAgB,CAAC;IAChDO,KAAK,EAAE,IAAAR,aAAW,EAACF,QAAQ,CAACU,KAAK,EAAEP,gBAAgB;EACrD,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASA,gBAAgBA,CAAIQ,IAAkC,EAAoB;EACxF,IAAIA,IAAI,CAACC,EAAE,EAAE;IACX,OAAO;MACLA,EAAE,EAAE,IAAI;MACRC,IAAI,EAAEF,IAAI,CAACG,MAAM,CAACD,IAAI;MACtBE,MAAM,EAAEJ,IAAI,CAACG,MAAM,CAACC;IACtB,CAAC;EACH,CAAC,MAAM;IACL,OAAO;MACLH,EAAE,EAAE,KAAK;MACTC,IAAI,EAAEG,cAAK,CAACC,YAAY,CAACN,IAAI,CAACO,KAAK,CAAC,GAAGP,IAAI,CAACO,KAAK,CAACC,QAAQ,EAAEN,IAAI,GAAGO,SAAS;MAC5EL,MAAM,EAAEC,cAAK,CAACC,YAAY,CAACN,IAAI,CAACO,KAAK,CAAC,GAAGP,IAAI,CAACO,KAAK,CAACC,QAAQ,EAAEJ,MAAM,GAAGK,SAAS;MAChFF,KAAK,EAAEP,IAAI,CAACO;IACd,CAAC;EACH;AACF"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_axios","_interopRequireDefault","require","_","e","__esModule","default","sauce","instance","request","safetyAsync","formatResultInfo","get","delete","head","options","post","put","patch","info","ok","data","result","status","axios","isAxiosError","error","response","undefined"],"sources":["../../../../../src/utils/axios/sauce/index.ts"],"sourcesContent":["import axios, { AxiosInstance, AxiosResponse } from 'axios';\nimport { safetyAsync, SafetyInfo } from '../..';\nimport type { AxiosInstanceWrapper, MethodName } from 'middleware-axios';\n\n// @todo передавать заголовки ответа\nexport type SauceResponse<T = any> =\n | {\n ok: true;\n status: number;\n data: T;\n }\n | {\n ok: false;\n status?: unknown; // unknown так как не факт что упали именно по статусу, например может быть exception\n data?: unknown; // иногда хочется узнать, что прислал сервер вместе с ошибкой (например 422)\n error: any;\n };\n\nexport interface SauceMethod<K extends MethodName | 'request'> {\n <T>(...args: Parameters<(AxiosInstance | AxiosInstanceWrapper)[K]>): Promise<SauceResponse<T>>;\n}\n\n/**\n * Обёртка над экземпляром axios.\n * Все методы возвращают promise, который никогда переходят в состояние rejected.\n */\nexport interface Sauce {\n readonly request: SauceMethod<'request'>;\n readonly get: SauceMethod<'get'>;\n readonly delete: SauceMethod<'delete'>;\n readonly head: SauceMethod<'head'>;\n readonly options: SauceMethod<'options'>;\n readonly post: SauceMethod<'post'>;\n readonly put: SauceMethod<'put'>;\n readonly patch: SauceMethod<'patch'>;\n}\n\n/**\n * Оборачивает экземпляр axios. Все методы обертки возвращают promise, которые никогда не попадают в состояние rejected.\n * @param instance Экземпляр axios или AxiosInstanceWrapper.\n * @return Обертка.\n */\nexport function sauce(instance: AxiosInstance | AxiosInstanceWrapper): Sauce {\n return {\n request: safetyAsync(instance.request, formatResultInfo),\n get: safetyAsync(instance.get, formatResultInfo),\n delete: safetyAsync(instance.delete, formatResultInfo),\n head: safetyAsync(instance.head, formatResultInfo),\n options: safetyAsync(instance.options, formatResultInfo),\n post: safetyAsync(instance.post, formatResultInfo),\n put: safetyAsync(instance.put, formatResultInfo),\n patch: safetyAsync(instance.patch, formatResultInfo),\n };\n}\n\n/**\n * Функция форматирования результата, используемая в sauce.\n * @param info Результат вызова метода экземпляра axios.\n * @return Отформатированный ответ.\n */\nexport function formatResultInfo<T>(info: SafetyInfo<AxiosResponse<T>>): SauceResponse<T> {\n if (info.ok) {\n return {\n ok: true,\n data: info.result.data,\n status: info.result.status,\n };\n } else {\n return {\n ok: false,\n data: axios.isAxiosError(info.error) ? info.error.response?.data : undefined,\n status: axios.isAxiosError(info.error) ? info.error.response?.status : undefined,\n error: info.error,\n };\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,CAAA,GAAAD,OAAA;AAAgD,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGhD;;AAkBA;AACA;AACA;AACA;;AAYA;AACA;AACA;AACA;AACA;AACO,SAASG,KAAKA,CAACC,QAA8C,EAAS;EAC3E,OAAO;IACLC,OAAO,EAAE,IAAAC,aAAW,EAACF,QAAQ,CAACC,OAAO,EAAEE,gBAAgB,CAAC;IACxDC,GAAG,EAAE,IAAAF,aAAW,EAACF,QAAQ,CAACI,GAAG,EAAED,gBAAgB,CAAC;IAChDE,MAAM,EAAE,IAAAH,aAAW,EAACF,QAAQ,CAACK,MAAM,EAAEF,gBAAgB,CAAC;IACtDG,IAAI,EAAE,IAAAJ,aAAW,EAACF,QAAQ,CAACM,IAAI,EAAEH,gBAAgB,CAAC;IAClDI,OAAO,EAAE,IAAAL,aAAW,EAACF,QAAQ,CAACO,OAAO,EAAEJ,gBAAgB,CAAC;IACxDK,IAAI,EAAE,IAAAN,aAAW,EAACF,QAAQ,CAACQ,IAAI,EAAEL,gBAAgB,CAAC;IAClDM,GAAG,EAAE,IAAAP,aAAW,EAACF,QAAQ,CAACS,GAAG,EAAEN,gBAAgB,CAAC;IAChDO,KAAK,EAAE,IAAAR,aAAW,EAACF,QAAQ,CAACU,KAAK,EAAEP,gBAAgB;EACrD,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASA,gBAAgBA,CAAIQ,IAAkC,EAAoB;EACxF,IAAIA,IAAI,CAACC,EAAE,EAAE;IACX,OAAO;MACLA,EAAE,EAAE,IAAI;MACRC,IAAI,EAAEF,IAAI,CAACG,MAAM,CAACD,IAAI;MACtBE,MAAM,EAAEJ,IAAI,CAACG,MAAM,CAACC;IACtB,CAAC;EACH,CAAC,MAAM;IACL,OAAO;MACLH,EAAE,EAAE,KAAK;MACTC,IAAI,EAAEG,cAAK,CAACC,YAAY,CAACN,IAAI,CAACO,KAAK,CAAC,GAAGP,IAAI,CAACO,KAAK,CAACC,QAAQ,EAAEN,IAAI,GAAGO,SAAS;MAC5EL,MAAM,EAAEC,cAAK,CAACC,YAAY,CAACN,IAAI,CAACO,KAAK,CAAC,GAAGP,IAAI,CAACO,KAAK,CAACC,QAAQ,EAAEJ,MAAM,GAAGK,SAAS;MAChFF,KAAK,EAAEP,IAAI,CAACO;IACd,CAAC;EACH;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["applyAxiosDefaults","config","defaults","headers","headersDefaults","restDefaults","method","toLowerCase"],"sources":["../../../../../src/utils/axios/utils/index.ts"],"sourcesContent":["import type { AxiosDefaults, AxiosRequestConfig } from 'axios';\n\n/**\n * Сливает в один объект конфиг и настройки по умолчанию.\n * @param config Конфигурация запроса.\n * @param defaults Настройки по умолчанию для экземпляра axios.\n * @return Уточненная итоговая конфигурация.\n * @todo Было бы круто заменить на axios/core/mergeConfig (https://github.com/axios/axios/blob/v1.x/lib/core/mergeConfig.js).\n */\nexport function applyAxiosDefaults(\n config: AxiosRequestConfig,\n defaults: AxiosDefaults,\n): Omit<AxiosRequestConfig, 'method'> & Pick<Required<AxiosRequestConfig>, 'method'> {\n const { headers: headersDefaults, ...restDefaults } = defaults;\n const method = config.method || defaults.method || 'get';\n\n return {\n method,\n ...restDefaults,\n ...config,\n headers: {\n ...headersDefaults[method.toLowerCase() as keyof typeof defaults.headers],\n ...config.headers,\n },\n };\n}\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,kBAAkBA,CAChCC,MAA0B,EAC1BC,QAAuB,EAC4D;EACnF,MAAM;IAAEC,OAAO,EAAEC,eAAe;IAAE,GAAGC;EAAa,CAAC,GAAGH,QAAQ;EAC9D,MAAMI,MAAM,GAAGL,MAAM,CAACK,MAAM,IAAIJ,QAAQ,CAACI,MAAM,IAAI,KAAK;EAExD,OAAO;IACLA,MAAM;IACN,GAAGD,YAAY;IACf,GAAGJ,MAAM;IACTE,OAAO,EAAE;MACP,GAAGC,eAAe,CAACE,MAAM,CAACC,WAAW,CAAC,CAAC,CAAkC;MACzE,GAAGN,MAAM,CAACE;IACZ;EACF,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["applyAxiosDefaults","config","defaults","headers","headersDefaults","restDefaults","method","toLowerCase"],"sources":["../../../../../src/utils/axios/utils/index.ts"],"sourcesContent":["import type { AxiosDefaults, AxiosRequestConfig } from 'axios';\n\n/**\n * Сливает в один объект конфиг и настройки по умолчанию.\n * @param config Конфигурация запроса.\n * @param defaults Настройки по умолчанию для экземпляра axios.\n * @return Уточненная итоговая конфигурация.\n * @todo Было бы круто заменить на axios/core/mergeConfig (https://github.com/axios/axios/blob/v1.x/lib/core/mergeConfig.js).\n */\nexport function applyAxiosDefaults(\n config: AxiosRequestConfig,\n defaults: AxiosDefaults,\n): Omit<AxiosRequestConfig, 'method'> & Pick<Required<AxiosRequestConfig>, 'method'> {\n const { headers: headersDefaults, ...restDefaults } = defaults;\n const method = config.method || defaults.method || 'get';\n\n return {\n method,\n ...restDefaults,\n ...config,\n headers: {\n ...headersDefaults[method.toLowerCase() as keyof typeof defaults.headers],\n ...config.headers,\n },\n };\n}\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,kBAAkBA,CAChCC,MAA0B,EAC1BC,QAAuB,EAC4D;EACnF,MAAM;IAAEC,OAAO,EAAEC,eAAe;IAAE,GAAGC;EAAa,CAAC,GAAGH,QAAQ;EAC9D,MAAMI,MAAM,GAAGL,MAAM,CAACK,MAAM,IAAIJ,QAAQ,CAACI,MAAM,IAAI,KAAK;EAExD,OAAO;IACLA,MAAM;IACN,GAAGD,YAAY;IACf,GAAGJ,MAAM;IACTE,OAAO,EAAE;MACP,GAAGC,eAAe,CAACE,MAAM,CAACC,WAAW,CAAC,CAAC,CAAkC;MACzE,GAAGN,MAAM,CAACE;IACZ;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health-check.js","names":["healthCheck","startTime","Date","now","req","res","json","uptime"],"sources":["../../../../../src/utils/express/handler/health-check.ts"],"sourcesContent":["import type express from 'express';\n\n/**\n * Возвращает обработчик, отвечающий данными о времени работы приложения.\n * @return Обработчик http-запроса.\n */\nexport function healthCheck(): express.Handler {\n const startTime = Date.now();\n\n return (req, res) => {\n res.json({ uptime: Date.now() - startTime });\n };\n}\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACO,SAASA,WAAWA,CAAA,EAAoB;EAC7C,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;EAE5B,OAAO,CAACC,GAAG,EAAEC,GAAG,KAAK;IACnBA,GAAG,CAACC,IAAI,CAAC;MAAEC,MAAM,EAAEL,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGF;IAAU,CAAC,CAAC;EAC9C,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"health-check.js","names":["healthCheck","startTime","Date","now","req","res","json","uptime"],"sources":["../../../../../src/utils/express/handler/health-check.ts"],"sourcesContent":["import type express from 'express';\n\n/**\n * Возвращает обработчик, отвечающий данными о времени работы приложения.\n * @return Обработчик http-запроса.\n */\nexport function healthCheck(): express.Handler {\n const startTime = Date.now();\n\n return (req, res) => {\n res.json({ uptime: Date.now() - startTime });\n };\n}\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACO,SAASA,WAAWA,CAAA,EAAoB;EAC7C,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;EAE5B,OAAO,CAACC,GAAG,EAAEC,GAAG,KAAK;IACnBA,GAAG,CAACC,IAAI,CAAC;MAAEC,MAAM,EAAEL,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGF;IAAU,CAAC,CAAC;EAC9C,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_healthCheck","require","_utils"],"sources":["../../../../src/utils/express/index.ts"],"sourcesContent":["export { healthCheck } from './handler/health-check';\nexport { composeMiddleware } from './utils';\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_healthCheck","require","_utils"],"sources":["../../../../src/utils/express/index.ts"],"sourcesContent":["export { healthCheck } from './handler/health-check';\nexport { composeMiddleware } from './utils';\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["composeMiddleware","list","reduce","a","b","req","res","next","err"],"sources":["../../../../../src/utils/express/utils/index.ts"],"sourcesContent":["import type express from 'express';\n\n/**\n * Объединяет промежуточные слои в один.\n * @param list Промежуточные слои.\n * @return Промежуточный слой.\n */\nexport function composeMiddleware(list: express.Handler[]): express.Handler {\n return list.reduce((a, b) => (req, res, next) => {\n a(req, res, err => {\n if (err) {\n return next(err);\n }\n\n b(req, res, next);\n });\n });\n}\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASA,iBAAiBA,CAACC,IAAuB,EAAmB;EAC1E,OAAOA,IAAI,CAACC,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK,CAACC,GAAG,EAAEC,GAAG,EAAEC,IAAI,KAAK;IAC/CJ,CAAC,CAACE,GAAG,EAAEC,GAAG,EAAEE,GAAG,IAAI;MACjB,IAAIA,GAAG,EAAE;QACP,OAAOD,IAAI,CAACC,GAAG,CAAC;MAClB;MAEAJ,CAAC,CAACC,GAAG,EAAEC,GAAG,EAAEC,IAAI,CAAC;IACnB,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["composeMiddleware","list","reduce","a","b","req","res","next","err"],"sources":["../../../../../src/utils/express/utils/index.ts"],"sourcesContent":["import type express from 'express';\n\n/**\n * Объединяет промежуточные слои в один.\n * @param list Промежуточные слои.\n * @return Промежуточный слой.\n */\nexport function composeMiddleware(list: express.Handler[]): express.Handler {\n return list.reduce((a, b) => (req, res, next) => {\n a(req, res, err => {\n if (err) {\n return next(err);\n }\n\n b(req, res, next);\n });\n });\n}\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASA,iBAAiBA,CAACC,IAAuB,EAAmB;EAC1E,OAAOA,IAAI,CAACC,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK,CAACC,GAAG,EAAEC,GAAG,EAAEC,IAAI,KAAK;IAC/CJ,CAAC,CAACE,GAAG,EAAEC,GAAG,EAAEE,GAAG,IAAI;MACjB,IAAIA,GAAG,EAAE;QACP,OAAOD,IAAI,CAACC,GAAG,CAAC;MAClB;MAEAJ,CAAC,CAACC,GAAG,EAAEC,GAAG,EAAEC,IAAI,CAAC;IACnB,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function.js","names":["safetyAsync","fn","format","value","safetyWrapper","args","ok","result","error"],"sources":["../../../src/utils/function.ts"],"sourcesContent":["interface SafetyDoneInfo<T> {\n ok: true;\n result: T;\n}\n\ninterface SafetyFailInfo {\n ok: false;\n error: unknown;\n}\n\nexport type SafetyInfo<T> = SafetyDoneInfo<T> | SafetyFailInfo;\n\ninterface SafetyFormatter<T, F> {\n (info: SafetyInfo<T>): F | Promise<F>;\n}\n\n/**\n * Возвращает функцию, результатом которой является promise, который никогда не переходит в состояние rejected.\n * При перехвате исключения результат будет содержать ошибку.\n * @param fn Оборачиваемая функция.\n * @return Функция.\n */\nexport function safetyAsync<T, P extends any[]>(\n fn: (...args: P) => Promise<T>,\n): (...args: P) => Promise<SafetyInfo<T>>;\n\n/**\n * Возвращает функцию, результатом которой является promise, который никогда не переходит в состояние rejected.\n * При перехвате исключения результат будет содержать ошибку.\n * @param fn Оборачиваемая функция.\n * @param format Получив базовую информацию об ответе должна вернуть отформатированную информацию.\n * @return Функция.\n */\nexport function safetyAsync<T, P extends any[], F>(\n fn: (...args: P) => Promise<T>,\n format: SafetyFormatter<T, F>,\n): (...args: P) => Promise<F>;\n\n/**\n * Возвращает функцию, результатом которой является promise, который никогда не переходит в состояние rejected.\n * При перехвате исключения результат будет содержать ошибку.\n * @param fn Оборачиваемая функция.\n * @param format Получив базовую информацию об ответе должна вернуть отформатированную информацию.\n * @return Функция.\n */\nexport function safetyAsync<T, P extends any[], F>(\n fn: (...args: P) => Promise<T>,\n format: SafetyFormatter<T, F> = value => value as F,\n): (...args: P) => Promise<F> {\n return async function safetyWrapper(...args: P) {\n try {\n return format({ ok: true, result: await fn(...args) });\n } catch (error) {\n return format({ ok: false, error });\n }\n };\n}\n"],"mappings":";;;;;;AAgBA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,WAAWA,CACzBC,EAA8B,EAC9BC,MAA6B,GAAGC,KAAK,IAAIA,KAAU,EACvB;EAC5B,OAAO,eAAeC,aAAaA,CAAC,GAAGC,IAAO,EAAE;IAC9C,IAAI;MACF,OAAOH,MAAM,CAAC;QAAEI,EAAE,EAAE,IAAI;QAAEC,MAAM,EAAE,MAAMN,EAAE,CAAC,GAAGI,IAAI;MAAE,CAAC,CAAC;IACxD,CAAC,CAAC,OAAOG,KAAK,EAAE;MACd,OAAON,MAAM,CAAC;QAAEI,EAAE,EAAE,KAAK;QAAEE;MAAM,CAAC,CAAC;IACrC;EACF,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"function.js","names":["safetyAsync","fn","format","value","safetyWrapper","args","ok","result","error"],"sources":["../../../src/utils/function.ts"],"sourcesContent":["interface SafetyDoneInfo<T> {\n ok: true;\n result: T;\n}\n\ninterface SafetyFailInfo {\n ok: false;\n error: unknown;\n}\n\nexport type SafetyInfo<T> = SafetyDoneInfo<T> | SafetyFailInfo;\n\ninterface SafetyFormatter<T, F> {\n (info: SafetyInfo<T>): F | Promise<F>;\n}\n\n/**\n * Возвращает функцию, результатом которой является promise, который никогда не переходит в состояние rejected.\n * При перехвате исключения результат будет содержать ошибку.\n * @param fn Оборачиваемая функция.\n * @return Функция.\n */\nexport function safetyAsync<T, P extends any[]>(\n fn: (...args: P) => Promise<T>,\n): (...args: P) => Promise<SafetyInfo<T>>;\n\n/**\n * Возвращает функцию, результатом которой является promise, который никогда не переходит в состояние rejected.\n * При перехвате исключения результат будет содержать ошибку.\n * @param fn Оборачиваемая функция.\n * @param format Получив базовую информацию об ответе должна вернуть отформатированную информацию.\n * @return Функция.\n */\nexport function safetyAsync<T, P extends any[], F>(\n fn: (...args: P) => Promise<T>,\n format: SafetyFormatter<T, F>,\n): (...args: P) => Promise<F>;\n\n/**\n * Возвращает функцию, результатом которой является promise, который никогда не переходит в состояние rejected.\n * При перехвате исключения результат будет содержать ошибку.\n * @param fn Оборачиваемая функция.\n * @param format Получив базовую информацию об ответе должна вернуть отформатированную информацию.\n * @return Функция.\n */\nexport function safetyAsync<T, P extends any[], F>(\n fn: (...args: P) => Promise<T>,\n format: SafetyFormatter<T, F> = value => value as F,\n): (...args: P) => Promise<F> {\n return async function safetyWrapper(...args: P) {\n try {\n return format({ ok: true, result: await fn(...args) });\n } catch (error) {\n return format({ ok: false, error });\n }\n };\n}\n"],"mappings":";;;;;;AAgBA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,WAAWA,CACzBC,EAA8B,EAC9BC,MAA6B,GAAGC,KAAK,IAAIA,KAAU,EACvB;EAC5B,OAAO,eAAeC,aAAaA,CAAC,GAAGC,IAAO,EAAE;IAC9C,IAAI;MACF,OAAOH,MAAM,CAAC;QAAEI,EAAE,EAAE,IAAI;QAAEC,MAAM,EAAE,MAAMN,EAAE,CAAC,GAAGI,IAAI;MAAE,CAAC,CAAC;IACxD,CAAC,CAAC,OAAOG,KAAK,EAAE;MACd,OAAON,MAAM,CAAC;QAAEI,EAAE,EAAE,KAAK;QAAEE;MAAM,CAAC,CAAC;IACrC;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_function","require","_math","_createCurriedSelector"],"sources":["../../../src/utils/index.ts"],"sourcesContent":["export { safetyAsync, type SafetyInfo } from './function';\nexport { toMilliseconds } from './math';\nexport { createCurriedSelector } from './selectors/create-curried-selector'
|
|
1
|
+
{"version":3,"file":"index.js","names":["_function","require","_math","_createCurriedSelector"],"sources":["../../../src/utils/index.ts"],"sourcesContent":["export { safetyAsync, type SafetyInfo } from './function';\nexport { toMilliseconds } from './math';\nexport { createCurriedSelector } from './selectors/create-curried-selector';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math.js","names":["toMilliseconds","nanoseconds","Number"],"sources":["../../../src/utils/math.ts"],"sourcesContent":["/**\n * Переводит наносекунды в миллисекунды.\n * @param nanoseconds Наносекунды.\n * @return Миллисекунды.\n */\nexport function toMilliseconds(nanoseconds: bigint): number {\n return Number(nanoseconds / 1000000n);\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACO,SAASA,cAAcA,CAACC,WAAmB,EAAU;EAC1D,OAAOC,MAAM,CAACD,WAAW,GAAG,QAAQ,CAAC;AACvC"}
|
|
1
|
+
{"version":3,"file":"math.js","names":["toMilliseconds","nanoseconds","Number"],"sources":["../../../src/utils/math.ts"],"sourcesContent":["/**\n * Переводит наносекунды в миллисекунды.\n * @param nanoseconds Наносекунды.\n * @return Миллисекунды.\n */\nexport function toMilliseconds(nanoseconds: bigint): number {\n return Number(nanoseconds / 1000000n);\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACO,SAASA,cAAcA,CAACC,WAAmB,EAAU;EAC1D,OAAOC,MAAM,CAACD,WAAW,GAAG,QAAQ,CAAC;AACvC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","require","_jsxRuntime","ErrorBoundary","Component","constructor","props","state","hasError","getDerivedStateFromError","componentDidCatch","error","errorInfo","onError","render","children","fallback","jsx","Fragment","exports","SafeSuspense","Suspense"],"sources":["../../../../../src/utils/react/error-handlers/index.tsx"],"sourcesContent":["import { Component, ErrorInfo, ReactNode, Suspense } from 'react';\n\n/**\n * Опции компонентов ErrorBoundary и SafeSuspense.\n */\nexport interface Props {\n /** Дочерний элемент. */\n children: NonNullable<ReactNode> | null;\n\n /** Содержимое, которое будет выведено если возникла ошибка. */\n fallback: NonNullable<ReactNode> | null;\n\n /** Функция для логирования ошибок. */\n onError?: (error: Error, errorInfo: ErrorInfo) => void;\n}\n\n/**\n * Компонент-предохранитель. Обработчик ошибок в React-компонентах.\n */\nexport class ErrorBoundary extends Component<Props, { hasError: boolean }> {\n /**\n * @param props Свойства.\n */\n constructor(props: Props) {\n super(props);\n\n this.state = { hasError: false };\n }\n\n /** @inheritDoc */\n static getDerivedStateFromError() {\n return { hasError: true };\n }\n\n /** @inheritDoc */\n componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n // @todo добавить возможность брать onError из специального контекста (это упростит передачу из di-контейнера)\n const { onError } = this.props;\n\n onError?.(error, errorInfo);\n }\n\n /**\n * Рендер.\n * @return Дочерний элемент либо запасное значение.\n */\n render() {\n const { children, fallback } = this.props;\n\n return <>{this.state.hasError ? fallback : children}</>;\n }\n}\n\n/**\n * Обертка над Suspense c перехватом ошибок.\n * @todo Возможно этот компонент не нужен...\n * @param props Свойства.\n * @return Элемент.\n */\nexport function SafeSuspense({ children, fallback, onError }: Props) {\n return (\n <Suspense fallback={fallback}>\n <ErrorBoundary fallback={fallback} onError={onError}>\n {children}\n </ErrorBoundary>\n </Suspense>\n );\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAAkE,IAAAC,WAAA,GAAAD,OAAA;AAElE;AACA;AACA;;AAYA;AACA;AACA;AACO,MAAME,aAAa,SAASC,gBAAS,CAA+B;EACzE;AACF;AACA;EACEC,WAAWA,CAACC,KAAY,EAAE;IACxB,KAAK,CAACA,KAAK,CAAC;IAEZ,IAAI,CAACC,KAAK,GAAG;MAAEC,QAAQ,EAAE;IAAM,CAAC;EAClC;;EAEA;EACA,OAAOC,wBAAwBA,CAAA,EAAG;IAChC,OAAO;MAAED,QAAQ,EAAE;IAAK,CAAC;EAC3B;;EAEA;EACAE,iBAAiBA,CAACC,KAAY,EAAEC,SAAoB,EAAE;IACpD;IACA,MAAM;MAAEC;IAAQ,CAAC,GAAG,IAAI,CAACP,KAAK;IAE9BO,OAAO,GAAGF,KAAK,EAAEC,SAAS,CAAC;EAC7B;;EAEA;AACF;AACA;AACA;EACEE,MAAMA,CAAA,EAAG;IACP,MAAM;MAAEC,QAAQ;MAAEC;IAAS,CAAC,GAAG,IAAI,CAACV,KAAK;IAEzC,oBAAO,IAAAJ,WAAA,CAAAe,GAAA,EAAAf,WAAA,CAAAgB,QAAA;MAAAH,QAAA,EAAG,IAAI,CAACR,KAAK,CAACC,QAAQ,GAAGQ,QAAQ,GAAGD;IAAQ,CAAG,CAAC;EACzD;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AALAI,OAAA,CAAAhB,aAAA,GAAAA,aAAA;AAMO,SAASiB,YAAYA,CAAC;EAAEL,QAAQ;EAAEC,QAAQ;EAAEH;AAAe,CAAC,EAAE;EACnE,oBACE,IAAAX,WAAA,CAAAe,GAAA,EAACjB,MAAA,CAAAqB,QAAQ;IAACL,QAAQ,EAAEA,QAAS;IAAAD,QAAA,eAC3B,IAAAb,WAAA,CAAAe,GAAA,EAACd,aAAa;MAACa,QAAQ,EAAEA,QAAS;MAACH,OAAO,EAAEA,OAAQ;MAAAE,QAAA,EACjDA;IAAQ,CACI;EAAC,CACR,CAAC;AAEf"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","require","_jsxRuntime","ErrorBoundary","Component","constructor","props","state","hasError","getDerivedStateFromError","componentDidCatch","error","errorInfo","onError","render","children","fallback","jsx","Fragment","exports","SafeSuspense","Suspense"],"sources":["../../../../../src/utils/react/error-handlers/index.tsx"],"sourcesContent":["import { Component, ErrorInfo, ReactNode, Suspense } from 'react';\n\n/**\n * Опции компонентов ErrorBoundary и SafeSuspense.\n */\nexport interface Props {\n /** Дочерний элемент. */\n children: NonNullable<ReactNode> | null;\n\n /** Содержимое, которое будет выведено если возникла ошибка. */\n fallback: NonNullable<ReactNode> | null;\n\n /** Функция для логирования ошибок. */\n onError?: (error: Error, errorInfo: ErrorInfo) => void;\n}\n\n/**\n * Компонент-предохранитель. Обработчик ошибок в React-компонентах.\n */\nexport class ErrorBoundary extends Component<Props, { hasError: boolean }> {\n /**\n * @param props Свойства.\n */\n constructor(props: Props) {\n super(props);\n\n this.state = { hasError: false };\n }\n\n /** @inheritDoc */\n static getDerivedStateFromError() {\n return { hasError: true };\n }\n\n /** @inheritDoc */\n componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n // @todo добавить возможность брать onError из специального контекста (это упростит передачу из di-контейнера)\n const { onError } = this.props;\n\n onError?.(error, errorInfo);\n }\n\n /**\n * Рендер.\n * @return Дочерний элемент либо запасное значение.\n */\n render() {\n const { children, fallback } = this.props;\n\n return <>{this.state.hasError ? fallback : children}</>;\n }\n}\n\n/**\n * Обертка над Suspense c перехватом ошибок.\n * @todo Возможно этот компонент не нужен...\n * @param props Свойства.\n * @return Элемент.\n */\nexport function SafeSuspense({ children, fallback, onError }: Props) {\n return (\n <Suspense fallback={fallback}>\n <ErrorBoundary fallback={fallback} onError={onError}>\n {children}\n </ErrorBoundary>\n </Suspense>\n );\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAAkE,IAAAC,WAAA,GAAAD,OAAA;AAElE;AACA;AACA;;AAYA;AACA;AACA;AACO,MAAME,aAAa,SAASC,gBAAS,CAA+B;EACzE;AACF;AACA;EACEC,WAAWA,CAACC,KAAY,EAAE;IACxB,KAAK,CAACA,KAAK,CAAC;IAEZ,IAAI,CAACC,KAAK,GAAG;MAAEC,QAAQ,EAAE;IAAM,CAAC;EAClC;;EAEA;EACA,OAAOC,wBAAwBA,CAAA,EAAG;IAChC,OAAO;MAAED,QAAQ,EAAE;IAAK,CAAC;EAC3B;;EAEA;EACAE,iBAAiBA,CAACC,KAAY,EAAEC,SAAoB,EAAE;IACpD;IACA,MAAM;MAAEC;IAAQ,CAAC,GAAG,IAAI,CAACP,KAAK;IAE9BO,OAAO,GAAGF,KAAK,EAAEC,SAAS,CAAC;EAC7B;;EAEA;AACF;AACA;AACA;EACEE,MAAMA,CAAA,EAAG;IACP,MAAM;MAAEC,QAAQ;MAAEC;IAAS,CAAC,GAAG,IAAI,CAACV,KAAK;IAEzC,oBAAO,IAAAJ,WAAA,CAAAe,GAAA,EAAAf,WAAA,CAAAgB,QAAA;MAAAH,QAAA,EAAG,IAAI,CAACR,KAAK,CAACC,QAAQ,GAAGQ,QAAQ,GAAGD;IAAQ,CAAG,CAAC;EACzD;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AALAI,OAAA,CAAAhB,aAAA,GAAAA,aAAA;AAMO,SAASiB,YAAYA,CAAC;EAAEL,QAAQ;EAAEC,QAAQ;EAAEH;AAAe,CAAC,EAAE;EACnE,oBACE,IAAAX,WAAA,CAAAe,GAAA,EAACjB,MAAA,CAAAqB,QAAQ;IAACL,QAAQ,EAAEA,QAAS;IAAAD,QAAA,eAC3B,IAAAb,WAAA,CAAAe,GAAA,EAACd,aAAa;MAACa,QAAQ,EAAEA,QAAS;MAACH,OAAO,EAAEA,OAAQ;MAAAE,QAAA,EACjDA;IAAQ,CACI;EAAC,CACR,CAAC;AAEf","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_errorHandlers","require"],"sources":["../../../../src/utils/react/index.ts"],"sourcesContent":["import { ErrorBoundary, SafeSuspense } from './error-handlers';\n\nexport { ErrorBoundary, SafeSuspense };\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_errorHandlers","require"],"sources":["../../../../src/utils/react/index.ts"],"sourcesContent":["import { ErrorBoundary, SafeSuspense } from './error-handlers';\n\nexport { ErrorBoundary, SafeSuspense };\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_remoteData","require"],"sources":["../../../../src/utils/redux/index.ts"],"sourcesContent":["import { Status, RemoteDataState, STATUS, RemoteData } from './remote-data';\n\nexport type { Status, RemoteDataState };\nexport { STATUS, RemoteData };\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_remoteData","require"],"sources":["../../../../src/utils/redux/index.ts"],"sourcesContent":["import { Status, RemoteDataState, STATUS, RemoteData } from './remote-data';\n\nexport type { Status, RemoteDataState };\nexport { STATUS, RemoteData };\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-data.js","names":["redux","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","createAction","createSelector","STATUS","exports","initial","fetching","success","failure","RemoteData","createActions","name","request","createHandlers","state","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
|
|
1
|
+
{"version":3,"file":"remote-data.js","names":["redux","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","createAction","createSelector","STATUS","exports","initial","fetching","success","failure","RemoteData","createActions","name","request","createHandlers","state","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 >() {\n // ВАЖНО: не используем возможности immer здесь чтобы набор можно было использовать без immer.\n return {\n request(state: S | redux.Draft<S>): 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>>(\n actions: RemoteDataActions<TData, TError, any | never>,\n builder: Pick<redux.ActionReducerMapBuilder<S>, 'addCase'>,\n ): void {\n const handlers = RemoteData.createHandlers<TData, TError, S>();\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":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_takeChain","require","_middleware"],"sources":["../../../../src/utils/redux-saga/index.ts"],"sourcesContent":["export type { SagaExtendedMiddleware, SagaMiddlewareHandler } from './types';\nexport { takeChain } from './take-chain';\nexport { createSagaMiddleware } from './middleware';\n"],"mappings":";;;;;;;;;;;;;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_takeChain","require","_middleware"],"sources":["../../../../src/utils/redux-saga/index.ts"],"sourcesContent":["export type { SagaExtendedMiddleware, SagaMiddlewareHandler } from './types';\nexport { takeChain } from './take-chain';\nexport { createSagaMiddleware } from './middleware';\n"],"mappings":";;;;;;;;;;;;;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","names":["_reduxSaga","_interopRequireWildcard","require","_effects","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","createSagaExtendedMiddleware","handler","MiddlewareControl","toMiddleware","constructor","sagaMiddleware","createSagaMiddleware","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","END","race","task","fork","needCancel","taskResult","delay","cancel","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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"}
|
|
1
|
+
{"version":3,"file":"middleware.js","names":["_reduxSaga","_interopRequireWildcard","require","_effects","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","createSagaExtendedMiddleware","handler","MiddlewareControl","toMiddleware","constructor","sagaMiddleware","createSagaMiddleware","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","END","race","task","fork","needCancel","taskResult","delay","cancel","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":[]}
|