@sima-land/isomorph 10.1.0 → 11.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/dist/cache/types.d.ts +7 -0
- package/dist/cache/types.js +3 -0
- package/dist/cache/types.js.map +1 -0
- package/dist/config/browser.d.ts +6 -0
- package/dist/config/browser.js +13 -0
- package/dist/config/browser.js.map +1 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.js +20 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/node.d.ts +6 -0
- package/dist/config/node.js +19 -0
- package/dist/config/node.js.map +1 -0
- package/dist/config/types.d.ts +7 -0
- package/dist/config/types.js +3 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/utils.d.ts +5 -0
- package/dist/config/utils.js +12 -0
- package/dist/config/utils.js.map +1 -0
- package/dist/container/application.d.ts +25 -0
- package/dist/container/application.js +63 -0
- package/dist/container/application.js.map +1 -0
- package/dist/container/index.d.ts +18 -0
- package/dist/container/index.js +74 -0
- package/dist/container/index.js.map +1 -0
- package/dist/container/types.d.ts +14 -0
- package/dist/container/types.js +3 -0
- package/dist/container/types.js.map +1 -0
- package/dist/error-tracker/browser.d.ts +8 -0
- package/dist/error-tracker/browser.js +40 -0
- package/dist/error-tracker/browser.js.map +1 -0
- package/dist/error-tracker/node.d.ts +8 -0
- package/dist/error-tracker/node.js +40 -0
- package/dist/error-tracker/node.js.map +1 -0
- package/dist/error-tracker/types.d.ts +18 -0
- package/dist/error-tracker/types.js +3 -0
- package/dist/error-tracker/types.js.map +1 -0
- package/dist/error-tracker/utils.d.ts +12 -0
- package/dist/error-tracker/utils.js +19 -0
- package/dist/error-tracker/utils.js.map +1 -0
- package/dist/http-client/middleware/cookie.d.ts +19 -0
- package/dist/http-client/middleware/cookie.js +62 -0
- package/dist/http-client/middleware/cookie.js.map +1 -0
- package/dist/http-client/middleware/tracing.d.ts +32 -0
- package/dist/http-client/middleware/tracing.js +67 -0
- package/dist/http-client/middleware/tracing.js.map +1 -0
- package/dist/http-client/types.d.ts +6 -0
- package/dist/http-client/types.js +3 -0
- package/dist/http-client/types.js.map +1 -0
- package/dist/http-client/utils.d.ts +36 -0
- package/dist/http-client/utils.js +49 -0
- package/dist/http-client/utils.js.map +1 -0
- package/dist/http-server/constants.d.ts +4 -0
- package/dist/http-server/constants.js +8 -0
- package/dist/http-server/constants.js.map +1 -0
- package/dist/http-server/handler/health-check.d.ts +6 -0
- package/dist/http-server/handler/health-check.js +15 -0
- package/dist/http-server/handler/health-check.js.map +1 -0
- package/dist/http-server/middleware/logging.d.ts +10 -0
- package/dist/http-server/middleware/logging.js +31 -0
- package/dist/http-server/middleware/logging.js.map +1 -0
- package/dist/http-server/middleware/metrics.d.ts +23 -0
- package/dist/http-server/middleware/metrics.js +60 -0
- package/dist/http-server/middleware/metrics.js.map +1 -0
- package/dist/http-server/middleware/tracing.d.ts +8 -0
- package/dist/http-server/middleware/tracing.js +32 -0
- package/dist/http-server/middleware/tracing.js.map +1 -0
- package/dist/http-server/types.d.ts +25 -0
- package/dist/http-server/types.js +3 -0
- package/dist/http-server/types.js.map +1 -0
- package/dist/http-server/utils.d.ts +26 -0
- package/dist/http-server/utils.js +88 -0
- package/dist/http-server/utils.js.map +1 -0
- package/dist/logger/handler/console.d.ts +8 -0
- package/dist/logger/handler/console.js +36 -0
- package/dist/logger/handler/console.js.map +1 -0
- package/dist/logger/handler/sentry.d.ts +8 -0
- package/dist/logger/handler/sentry.js +36 -0
- package/dist/logger/handler/sentry.js.map +1 -0
- package/dist/logger/index.d.ts +6 -0
- package/dist/logger/index.js +31 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/logger/types.d.ts +24 -0
- package/dist/logger/types.js +3 -0
- package/dist/logger/types.js.map +1 -0
- package/dist/metrics/constants.d.ts +4 -0
- package/dist/metrics/constants.js +8 -0
- package/dist/metrics/constants.js.map +1 -0
- package/dist/metrics/node.d.ts +18 -0
- package/dist/metrics/node.js +74 -0
- package/dist/metrics/node.js.map +1 -0
- package/dist/preset/index.d.ts +7 -0
- package/dist/preset/index.js +23 -0
- package/dist/preset/index.js.map +1 -0
- package/dist/preset/node/index.d.ts +15 -0
- package/dist/preset/node/index.js +90 -0
- package/dist/preset/node/index.js.map +1 -0
- package/dist/preset/node/response.d.ts +12 -0
- package/dist/preset/node/response.js +52 -0
- package/dist/preset/node/response.js.map +1 -0
- package/dist/preset/types.d.ts +7 -0
- package/dist/preset/types.js +3 -0
- package/dist/preset/types.js.map +1 -0
- package/dist/saga-runner/index.d.ts +8 -0
- package/dist/saga-runner/index.js +77 -0
- package/dist/saga-runner/index.js.map +1 -0
- package/dist/saga-runner/types.d.ts +10 -0
- package/dist/saga-runner/types.js +3 -0
- package/dist/saga-runner/types.js.map +1 -0
- package/dist/tokens.d.ts +40 -0
- package/dist/tokens.js +43 -0
- package/dist/tokens.js.map +1 -0
- package/dist/tracer/node.d.ts +10 -0
- package/dist/tracer/node.js +38 -0
- package/dist/tracer/node.js.map +1 -0
- package/dist/tracer/types.d.ts +2 -0
- package/dist/tracer/types.js +3 -0
- package/dist/tracer/types.js.map +1 -0
- package/{browser → dist/utils/browser}/analytics/data-layer.d.ts +0 -0
- package/{browser → dist/utils/browser}/analytics/data-layer.js +1 -2
- package/dist/utils/browser/analytics/data-layer.js.map +1 -0
- package/{browser → dist/utils/browser}/analytics/oko.d.ts +0 -0
- package/{browser → dist/utils/browser}/analytics/oko.js +6 -7
- package/dist/utils/browser/analytics/oko.js.map +1 -0
- package/dist/utils/browser/storage/index.d.ts +4 -0
- package/dist/utils/browser/storage/index.js +63 -0
- package/dist/utils/browser/storage/index.js.map +1 -0
- package/dist/utils/number.d.ts +6 -0
- package/dist/utils/number.js +13 -0
- package/dist/utils/number.js.map +1 -0
- package/dist/utils/react/error-handlers/index.d.ts +38 -0
- package/dist/utils/react/error-handlers/index.js +47 -0
- package/dist/utils/react/error-handlers/index.js.map +1 -0
- package/dist/utils/redux/remote-data.d.ts +23 -0
- package/dist/utils/redux/remote-data.js +28 -0
- package/dist/utils/redux/remote-data.js.map +1 -0
- package/dist/utils/redux-saga/take-chain.d.ts +24 -0
- package/dist/utils/redux-saga/take-chain.js +56 -0
- package/dist/utils/redux-saga/take-chain.js.map +1 -0
- package/dist/utils/webpack/module-federation/index.d.ts +21 -0
- package/dist/utils/webpack/module-federation/index.js +74 -0
- package/dist/utils/webpack/module-federation/index.js.map +1 -0
- package/dist/utils/webpack/module-federation/types.d.ts +26 -0
- package/dist/utils/webpack/module-federation/types.js +3 -0
- package/dist/utils/webpack/module-federation/types.js.map +1 -0
- package/dist/utils/webpack/module-federation/utils.d.ts +15 -0
- package/dist/utils/webpack/module-federation/utils.js +36 -0
- package/dist/utils/webpack/module-federation/utils.js.map +1 -0
- package/package.json +49 -63
- package/readme.md +23 -0
- package/src/cache/types.ts +7 -0
- package/src/config/browser.ts +10 -0
- package/src/config/index.ts +18 -0
- package/src/config/node.ts +18 -0
- package/src/config/types.ts +9 -0
- package/src/config/utils.ts +7 -0
- package/src/container/application.ts +91 -0
- package/src/container/index.ts +79 -0
- package/src/container/types.ts +17 -0
- package/src/error-tracker/browser.ts +14 -0
- package/src/error-tracker/node.ts +14 -0
- package/src/error-tracker/types.ts +22 -0
- package/src/error-tracker/utils.ts +18 -0
- package/src/http-client/middleware/cookie.ts +73 -0
- package/src/{helpers/api/middlewares/trace-request-middleware.ts → http-client/middleware/tracing.ts} +28 -35
- package/src/http-client/types.ts +8 -0
- package/src/http-client/utils.ts +76 -0
- package/src/http-server/constants.ts +4 -0
- package/src/http-server/handler/health-check.ts +13 -0
- package/src/http-server/middleware/logging.ts +34 -0
- package/src/http-server/middleware/metrics.ts +87 -0
- package/src/http-server/middleware/tracing.ts +35 -0
- package/src/http-server/types.ts +29 -0
- package/src/http-server/utils.ts +105 -0
- package/src/logger/handler/console.ts +35 -0
- package/src/logger/handler/sentry.ts +38 -0
- package/src/logger/index.ts +31 -0
- package/src/logger/types.ts +28 -0
- package/src/metrics/constants.ts +4 -0
- package/src/metrics/node.ts +54 -0
- package/src/preset/index.ts +24 -0
- package/src/preset/node/index.ts +101 -0
- package/src/preset/node/response.ts +57 -0
- package/src/preset/types.ts +9 -0
- package/src/saga-runner/index.ts +59 -0
- package/src/saga-runner/types.ts +13 -0
- package/src/tokens.ts +54 -0
- package/src/tracer/node.ts +40 -0
- package/src/tracer/types.ts +3 -0
- package/src/utils/browser/analytics/__test__/data-layer.test.ts +50 -0
- package/src/utils/browser/analytics/__test__/oko.test.tsx +143 -0
- package/src/{browser → utils/browser}/analytics/data-layer.ts +0 -0
- package/src/{browser → utils/browser}/analytics/oko.ts +6 -4
- package/src/utils/browser/storage/index.ts +75 -0
- package/src/utils/number.ts +8 -0
- package/src/utils/react/error-handlers/__test__/__snapshots__/index.test.tsx.snap +27 -0
- package/src/utils/react/error-handlers/__test__/index.test.tsx +64 -0
- package/src/utils/react/error-handlers/index.tsx +62 -0
- package/src/utils/redux/__test__/remote-data.test.ts +50 -0
- package/src/utils/redux/remote-data.ts +34 -0
- package/src/utils/redux-saga/__test__/take-chain.test.ts +141 -0
- package/src/utils/redux-saga/take-chain.ts +65 -0
- package/src/utils/webpack/module-federation/__test__/index.test.ts +246 -0
- package/src/utils/webpack/module-federation/index.ts +92 -0
- package/src/utils/webpack/module-federation/types.ts +44 -0
- package/src/utils/webpack/module-federation/utils.ts +43 -0
- package/browser/analytics/data-layer.js.map +0 -1
- package/browser/analytics/oko.js.map +0 -1
- package/cache/helpers.d.ts +0 -4
- package/cache/helpers.js +0 -39
- package/cache/helpers.js.map +0 -1
- package/cache/local-storage.d.ts +0 -34
- package/cache/local-storage.js +0 -90
- package/cache/local-storage.js.map +0 -1
- package/cache/redis.d.ts +0 -10
- package/cache/redis.js +0 -54
- package/cache/redis.js.map +0 -1
- package/cache/wrap-in-trace.d.ts +0 -8
- package/cache/wrap-in-trace.js +0 -68
- package/cache/wrap-in-trace.js.map +0 -1
- package/config/create.d.ts +0 -8
- package/config/create.js +0 -32
- package/config/create.js.map +0 -1
- package/config/helpers.d.ts +0 -11
- package/config/helpers.js +0 -71
- package/config/helpers.js.map +0 -1
- package/config/validate.d.ts +0 -18
- package/config/validate.js +0 -107
- package/config/validate.js.map +0 -1
- package/container/create-inject.d.ts +0 -7
- package/container/create-inject.js +0 -36
- package/container/create-inject.js.map +0 -1
- package/container/get-dependencies.d.ts +0 -13
- package/container/get-dependencies.js +0 -54
- package/container/get-dependencies.js.map +0 -1
- package/container/index.d.ts +0 -15
- package/container/index.js +0 -175
- package/container/index.js.map +0 -1
- package/container/is-container.d.ts +0 -7
- package/container/is-container.js +0 -17
- package/container/is-container.js.map +0 -1
- package/container/service-not-found-error.d.ts +0 -10
- package/container/service-not-found-error.js +0 -18
- package/container/service-not-found-error.js.map +0 -1
- package/create-proxy/create-proxy-middleware/index.d.ts +0 -16
- package/create-proxy/create-proxy-middleware/index.js +0 -47
- package/create-proxy/create-proxy-middleware/index.js.map +0 -1
- package/create-proxy/index.d.ts +0 -12
- package/create-proxy/index.js +0 -25
- package/create-proxy/index.js.map +0 -1
- package/create-response-sender/index.d.ts +0 -8
- package/create-response-sender/index.js +0 -42
- package/create-response-sender/index.js.map +0 -1
- package/get-dynamic-data/index.d.ts +0 -8
- package/get-dynamic-data/index.js +0 -23
- package/get-dynamic-data/index.js.map +0 -1
- package/graceful-shutdown/index.d.ts +0 -26
- package/graceful-shutdown/index.js +0 -87
- package/graceful-shutdown/index.js.map +0 -1
- package/helpers/add-error-handling/index.d.ts +0 -1
- package/helpers/add-error-handling/index.js +0 -42
- package/helpers/add-error-handling/index.js.map +0 -1
- package/helpers/api/create-enhancer.d.ts +0 -12
- package/helpers/api/create-enhancer.js +0 -52
- package/helpers/api/create-enhancer.js.map +0 -1
- package/helpers/api/create-instance.d.ts +0 -11
- package/helpers/api/create-instance.js +0 -39
- package/helpers/api/create-instance.js.map +0 -1
- package/helpers/api/middlewares/collect-cookie-middleware.d.ts +0 -10
- package/helpers/api/middlewares/collect-cookie-middleware.js +0 -39
- package/helpers/api/middlewares/collect-cookie-middleware.js.map +0 -1
- package/helpers/api/middlewares/count-api-response-time.d.ts +0 -12
- package/helpers/api/middlewares/count-api-response-time.js +0 -39
- package/helpers/api/middlewares/count-api-response-time.js.map +0 -1
- package/helpers/api/middlewares/error-handlers-middlewares.d.ts +0 -5
- package/helpers/api/middlewares/error-handlers-middlewares.js +0 -114
- package/helpers/api/middlewares/error-handlers-middlewares.js.map +0 -1
- package/helpers/api/middlewares/helpers.d.ts +0 -11
- package/helpers/api/middlewares/helpers.js +0 -27
- package/helpers/api/middlewares/helpers.js.map +0 -1
- package/helpers/api/middlewares/pass-headers-middleware.d.ts +0 -3
- package/helpers/api/middlewares/pass-headers-middleware.js +0 -27
- package/helpers/api/middlewares/pass-headers-middleware.js.map +0 -1
- package/helpers/api/middlewares/prepare-request-headers.d.ts +0 -5
- package/helpers/api/middlewares/prepare-request-headers.js +0 -20
- package/helpers/api/middlewares/prepare-request-headers.js.map +0 -1
- package/helpers/api/middlewares/set-http-agents-middleware.d.ts +0 -15
- package/helpers/api/middlewares/set-http-agents-middleware.js +0 -34
- package/helpers/api/middlewares/set-http-agents-middleware.js.map +0 -1
- package/helpers/api/middlewares/stages-trace-middleware.d.ts +0 -17
- package/helpers/api/middlewares/stages-trace-middleware.js +0 -57
- package/helpers/api/middlewares/stages-trace-middleware.js.map +0 -1
- package/helpers/api/middlewares/trace-request-middleware.d.ts +0 -24
- package/helpers/api/middlewares/trace-request-middleware.js +0 -69
- package/helpers/api/middlewares/trace-request-middleware.js.map +0 -1
- package/helpers/api/server-adapter/__fixtures__/fake-keys.d.ts +0 -10
- package/helpers/api/server-adapter/__fixtures__/fake-keys.js +0 -61
- package/helpers/api/server-adapter/__fixtures__/fake-keys.js.map +0 -1
- package/helpers/api/server-adapter/constants.d.ts +0 -5
- package/helpers/api/server-adapter/constants.js +0 -16
- package/helpers/api/server-adapter/constants.js.map +0 -1
- package/helpers/api/server-adapter/helpers.d.ts +0 -26
- package/helpers/api/server-adapter/helpers.js +0 -208
- package/helpers/api/server-adapter/helpers.js.map +0 -1
- package/helpers/api/server-adapter/index.d.ts +0 -10
- package/helpers/api/server-adapter/index.js +0 -118
- package/helpers/api/server-adapter/index.js.map +0 -1
- package/helpers/development/use-dot-env.d.ts +0 -6
- package/helpers/development/use-dot-env.js +0 -11
- package/helpers/development/use-dot-env.js.map +0 -1
- package/helpers/get-params/index.d.ts +0 -4
- package/helpers/get-params/index.js +0 -51
- package/helpers/get-params/index.js.map +0 -1
- package/helpers/http/request-getters.d.ts +0 -5
- package/helpers/http/request-getters.js +0 -49
- package/helpers/http/request-getters.js.map +0 -1
- package/helpers/http/statuses-validator.d.ts +0 -3
- package/helpers/http/statuses-validator.js +0 -25
- package/helpers/http/statuses-validator.js.map +0 -1
- package/helpers/logger/create-pino-instance/index.d.ts +0 -6
- package/helpers/logger/create-pino-instance/index.js +0 -39
- package/helpers/logger/create-pino-instance/index.js.map +0 -1
- package/helpers/logger/format-time/index.d.ts +0 -6
- package/helpers/logger/format-time/index.js +0 -9
- package/helpers/logger/format-time/index.js.map +0 -1
- package/helpers/metrics/index.d.ts +0 -23
- package/helpers/metrics/index.js +0 -42
- package/helpers/metrics/index.js.map +0 -1
- package/helpers/prometheus/index.d.ts +0 -4
- package/helpers/prometheus/index.js +0 -13
- package/helpers/prometheus/index.js.map +0 -1
- package/helpers/prometheus/measure-middleware.d.ts +0 -5
- package/helpers/prometheus/measure-middleware.js +0 -69
- package/helpers/prometheus/measure-middleware.js.map +0 -1
- package/helpers/prometheus/metric-adapter.d.ts +0 -36
- package/helpers/prometheus/metric-adapter.js +0 -98
- package/helpers/prometheus/metric-adapter.js.map +0 -1
- package/helpers/react/error-handlers/index.d.ts +0 -40
- package/helpers/react/error-handlers/index.js +0 -52
- package/helpers/react/error-handlers/index.js.map +0 -1
- package/helpers/redux/constants.d.ts +0 -5
- package/helpers/redux/constants.js +0 -14
- package/helpers/redux/constants.js.map +0 -1
- package/helpers/redux/create-compose-middleware.d.ts +0 -15
- package/helpers/redux/create-compose-middleware.js +0 -23
- package/helpers/redux/create-compose-middleware.js.map +0 -1
- package/helpers/redux/get-dev-compose-creator.d.ts +0 -6
- package/helpers/redux/get-dev-compose-creator.js +0 -13
- package/helpers/redux/get-dev-compose-creator.js.map +0 -1
- package/helpers/redux/prepare-on-ready.d.ts +0 -9
- package/helpers/redux/prepare-on-ready.js +0 -16
- package/helpers/redux/prepare-on-ready.js.map +0 -1
- package/helpers/redux/remote-data.d.ts +0 -40
- package/helpers/redux/remote-data.js +0 -91
- package/helpers/redux/remote-data.js.map +0 -1
- package/helpers/redux/selector/statuses.d.ts +0 -23
- package/helpers/redux/selector/statuses.js +0 -34
- package/helpers/redux/selector/statuses.js.map +0 -1
- package/helpers/redux/wait-on-store-readiness.d.ts +0 -11
- package/helpers/redux/wait-on-store-readiness.js +0 -29
- package/helpers/redux/wait-on-store-readiness.js.map +0 -1
- package/helpers/render/get-react-markup-data.d.ts +0 -14
- package/helpers/render/get-react-markup-data.js +0 -20
- package/helpers/render/get-react-markup-data.js.map +0 -1
- package/helpers/render/index.d.ts +0 -21
- package/helpers/render/index.js +0 -72
- package/helpers/render/index.js.map +0 -1
- package/helpers/render/render-app.d.ts +0 -12
- package/helpers/render/render-app.js +0 -12
- package/helpers/render/render-app.js.map +0 -1
- package/helpers/saga/__fixtures__/do-safe-request.d.ts +0 -43
- package/helpers/saga/__fixtures__/do-safe-request.js +0 -50
- package/helpers/saga/__fixtures__/do-safe-request.js.map +0 -1
- package/helpers/saga/cache-result.d.ts +0 -46
- package/helpers/saga/cache-result.js +0 -71
- package/helpers/saga/cache-result.js.map +0 -1
- package/helpers/saga/create-store.d.ts +0 -20
- package/helpers/saga/create-store.js +0 -106
- package/helpers/saga/create-store.js.map +0 -1
- package/helpers/saga/do-safe-request.d.ts +0 -38
- package/helpers/saga/do-safe-request.js +0 -45
- package/helpers/saga/do-safe-request.js.map +0 -1
- package/helpers/saga/safe-request.d.ts +0 -7
- package/helpers/saga/safe-request.js +0 -15
- package/helpers/saga/safe-request.js.map +0 -1
- package/helpers/saga/take-chain.d.ts +0 -20
- package/helpers/saga/take-chain.js +0 -56
- package/helpers/saga/take-chain.js.map +0 -1
- package/helpers/tracer/create-child-tracing-middleware.d.ts +0 -7
- package/helpers/tracer/create-child-tracing-middleware.js +0 -40
- package/helpers/tracer/create-child-tracing-middleware.js.map +0 -1
- package/helpers/tracer/index.d.ts +0 -24
- package/helpers/tracer/index.js +0 -144
- package/helpers/tracer/index.js.map +0 -1
- package/helpers/utils/check-feature-by-segment.d.ts +0 -2
- package/helpers/utils/check-feature-by-segment.js +0 -31
- package/helpers/utils/check-feature-by-segment.js.map +0 -1
- package/helpers/utils/format-object-keys.d.ts +0 -6
- package/helpers/utils/format-object-keys.js +0 -27
- package/helpers/utils/format-object-keys.js.map +0 -1
- package/helpers/utils/get-ms-from-hrt.d.ts +0 -2
- package/helpers/utils/get-ms-from-hrt.js +0 -22
- package/helpers/utils/get-ms-from-hrt.js.map +0 -1
- package/helpers/utils/is-match-pattern-list.d.ts +0 -8
- package/helpers/utils/is-match-pattern-list.js +0 -16
- package/helpers/utils/is-match-pattern-list.js.map +0 -1
- package/helpers/utils/is-not-empty-array.d.ts +0 -2
- package/helpers/utils/is-not-empty-array.js +0 -12
- package/helpers/utils/is-not-empty-array.js.map +0 -1
- package/helpers/utils/is-not-empty-string.d.ts +0 -2
- package/helpers/utils/is-not-empty-string.js +0 -15
- package/helpers/utils/is-not-empty-string.js.map +0 -1
- package/helpers/utils/is-numeric.d.ts +0 -7
- package/helpers/utils/is-numeric.js +0 -16
- package/helpers/utils/is-numeric.js.map +0 -1
- package/helpers/utils/wrap-in-measure-event.d.ts +0 -9
- package/helpers/utils/wrap-in-measure-event.js +0 -50
- package/helpers/utils/wrap-in-measure-event.js.map +0 -1
- package/logger/create-logger-middleware/index.d.ts +0 -14
- package/logger/create-logger-middleware/index.js +0 -41
- package/logger/create-logger-middleware/index.js.map +0 -1
- package/logger/create-sentry-instance/index.d.ts +0 -29
- package/logger/create-sentry-instance/index.js +0 -63
- package/logger/create-sentry-instance/index.js.map +0 -1
- package/logger/create-sentry-middleware/index.d.ts +0 -14
- package/logger/create-sentry-middleware/index.js +0 -19
- package/logger/create-sentry-middleware/index.js.map +0 -1
- package/logger/handler-creators/index.d.ts +0 -5
- package/logger/handler-creators/index.js +0 -41
- package/logger/handler-creators/index.js.map +0 -1
- package/logger/initialize-sentry-creator/index.d.ts +0 -17
- package/logger/initialize-sentry-creator/index.js +0 -35
- package/logger/initialize-sentry-creator/index.js.map +0 -1
- package/logger/sentry-logger/index.d.ts +0 -9
- package/logger/sentry-logger/index.js +0 -36
- package/logger/sentry-logger/index.js.map +0 -1
- package/module-federation/__example__/webpack-config.example.d.ts +0 -366
- package/module-federation/__example__/webpack-config.example.js +0 -58
- package/module-federation/__example__/webpack-config.example.js.map +0 -1
- package/module-federation/enhanced-module-federation-plugin.d.ts +0 -69
- package/module-federation/enhanced-module-federation-plugin.js +0 -97
- package/module-federation/enhanced-module-federation-plugin.js.map +0 -1
- package/module-federation/utils/index.d.ts +0 -16
- package/module-federation/utils/index.js +0 -33
- package/module-federation/utils/index.js.map +0 -1
- package/observe-middleware/index.d.ts +0 -9
- package/observe-middleware/index.js +0 -67
- package/observe-middleware/index.js.map +0 -1
- package/set-header-middleware/create.d.ts +0 -10
- package/set-header-middleware/create.js +0 -16
- package/set-header-middleware/create.js.map +0 -1
- package/src/cache/helpers.js +0 -32
- package/src/cache/local-storage.ts +0 -92
- package/src/cache/redis.js +0 -79
- package/src/cache/wrap-in-trace.js +0 -57
- package/src/config/create.js +0 -33
- package/src/config/helpers.js +0 -71
- package/src/config/validate.js +0 -114
- package/src/container/create-inject.js +0 -32
- package/src/container/get-dependencies.js +0 -46
- package/src/container/index.js +0 -188
- package/src/container/is-container.js +0 -14
- package/src/container/service-not-found-error.js +0 -14
- package/src/create-proxy/create-proxy-middleware/index.js +0 -47
- package/src/create-proxy/index.js +0 -27
- package/src/create-response-sender/index.js +0 -48
- package/src/get-dynamic-data/index.js +0 -26
- package/src/graceful-shutdown/index.js +0 -97
- package/src/helpers/add-error-handling/index.js +0 -24
- package/src/helpers/api/create-enhancer.js +0 -52
- package/src/helpers/api/create-instance.js +0 -42
- package/src/helpers/api/middlewares/collect-cookie-middleware.js +0 -27
- package/src/helpers/api/middlewares/count-api-response-time.js +0 -31
- package/src/helpers/api/middlewares/error-handlers-middlewares.js +0 -124
- package/src/helpers/api/middlewares/helpers.js +0 -26
- package/src/helpers/api/middlewares/pass-headers-middleware.js +0 -19
- package/src/helpers/api/middlewares/prepare-request-headers.js +0 -18
- package/src/helpers/api/middlewares/set-http-agents-middleware.js +0 -22
- package/src/helpers/api/middlewares/stages-trace-middleware.js +0 -46
- package/src/helpers/api/server-adapter/__fixtures__/fake-keys.js +0 -58
- package/src/helpers/api/server-adapter/constants.js +0 -12
- package/src/helpers/api/server-adapter/helpers.js +0 -244
- package/src/helpers/api/server-adapter/index.js +0 -155
- package/src/helpers/development/use-dot-env.js +0 -9
- package/src/helpers/get-params/index.js +0 -59
- package/src/helpers/http/request-getters.js +0 -42
- package/src/helpers/http/statuses-validator.js +0 -20
- package/src/helpers/logger/create-pino-instance/index.js +0 -41
- package/src/helpers/logger/format-time/index.js +0 -6
- package/src/helpers/metrics/index.js +0 -40
- package/src/helpers/prometheus/index.js +0 -9
- package/src/helpers/prometheus/measure-middleware.js +0 -73
- package/src/helpers/prometheus/metric-adapter.js +0 -99
- package/src/helpers/react/error-handlers/index.tsx +0 -68
- package/src/helpers/redux/constants.js +0 -10
- package/src/helpers/redux/create-compose-middleware.js +0 -24
- package/src/helpers/redux/get-dev-compose-creator.js +0 -9
- package/src/helpers/redux/prepare-on-ready.js +0 -16
- package/src/helpers/redux/remote-data.js +0 -124
- package/src/helpers/redux/selector/statuses.js +0 -30
- package/src/helpers/redux/wait-on-store-readiness.js +0 -40
- package/src/helpers/render/get-react-markup-data.js +0 -18
- package/src/helpers/render/index.js +0 -69
- package/src/helpers/render/render-app.js +0 -15
- package/src/helpers/saga/__fixtures__/do-safe-request.js +0 -49
- package/src/helpers/saga/cache-result.js +0 -77
- package/src/helpers/saga/create-store.js +0 -102
- package/src/helpers/saga/do-safe-request.js +0 -47
- package/src/helpers/saga/safe-request.js +0 -11
- package/src/helpers/saga/take-chain.js +0 -53
- package/src/helpers/tracer/create-child-tracing-middleware.js +0 -42
- package/src/helpers/tracer/index.js +0 -171
- package/src/helpers/utils/check-feature-by-segment.js +0 -32
- package/src/helpers/utils/format-object-keys.js +0 -23
- package/src/helpers/utils/get-ms-from-hrt.js +0 -16
- package/src/helpers/utils/is-match-pattern-list.js +0 -13
- package/src/helpers/utils/is-not-empty-array.js +0 -8
- package/src/helpers/utils/is-not-empty-string.js +0 -11
- package/src/helpers/utils/is-numeric.ts +0 -12
- package/src/helpers/utils/wrap-in-measure-event.js +0 -35
- package/src/logger/create-logger-middleware/index.js +0 -46
- package/src/logger/create-sentry-instance/index.js +0 -74
- package/src/logger/create-sentry-middleware/index.js +0 -16
- package/src/logger/handler-creators/index.js +0 -38
- package/src/logger/initialize-sentry-creator/index.js +0 -43
- package/src/logger/sentry-logger/index.js +0 -33
- package/src/module-federation/__example__/webpack-config.example.js +0 -64
- package/src/module-federation/enhanced-module-federation-plugin.js +0 -119
- package/src/module-federation/utils/index.js +0 -39
- package/src/observe-middleware/index.js +0 -70
- package/src/set-header-middleware/create.js +0 -17
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
import isArrayBuffer from 'lodash/isArrayBuffer';
|
|
2
|
-
import isFunction from 'lodash/isFunction';
|
|
3
|
-
import isString from 'lodash/isString';
|
|
4
|
-
import pipe from 'lodash/fp/pipe';
|
|
5
|
-
import get from 'lodash/fp/get';
|
|
6
|
-
import eq from 'lodash/fp/eq';
|
|
7
|
-
|
|
8
|
-
import { http as httpFollow, https as httpsFollow } from 'follow-redirects';
|
|
9
|
-
import http from 'http';
|
|
10
|
-
import https from 'https';
|
|
11
|
-
import zlib from 'zlib';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Проверяет, что переданный аргумент поддерживает метод экземпляра Stream.
|
|
15
|
-
*/
|
|
16
|
-
export const isStream = pipe(
|
|
17
|
-
get('pipe'),
|
|
18
|
-
isFunction
|
|
19
|
-
);
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Проверяет, что переданный аргумент поддерживает метод экземпляра EventEmitter.
|
|
23
|
-
*/
|
|
24
|
-
export const isEventEmitter = pipe(
|
|
25
|
-
get('emit'),
|
|
26
|
-
isFunction
|
|
27
|
-
);
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Проверяет, что переданный аргумент соответствует протоколу `https`.
|
|
31
|
-
*/
|
|
32
|
-
export const isHttps = eq('https:');
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Возвращает экземпляр Buffer созданный из переданных данных.
|
|
36
|
-
* @param {Buffer|ArrayBuffer|string} data Данные.
|
|
37
|
-
* @return {Buffer|undefined} Данные.
|
|
38
|
-
*/
|
|
39
|
-
export const prepareDataBuffer = data => {
|
|
40
|
-
let result;
|
|
41
|
-
if (isString(data)) {
|
|
42
|
-
result = Buffer.from(data, 'utf-8');
|
|
43
|
-
} else if (Buffer.isBuffer(data)) {
|
|
44
|
-
result = data;
|
|
45
|
-
} else if (isArrayBuffer(data)) {
|
|
46
|
-
result = Buffer.from(new Uint8Array(data));
|
|
47
|
-
}
|
|
48
|
-
return result;
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Создает экземпляр URL из объединенного пути с базой. Если путь абсолютный - использует только его.
|
|
53
|
-
* @param {string} input Путь для объединения.
|
|
54
|
-
* @param {string} base База.
|
|
55
|
-
* @return {URL} Объект URL.
|
|
56
|
-
*/
|
|
57
|
-
export const createConcatURL = (input, base) => {
|
|
58
|
-
const cleanInput = input ? input.replace(/^\/(?!\/)/, '') : '';
|
|
59
|
-
const cleanBase = base ? base.replace(/\/?$/, '/') : undefined;
|
|
60
|
-
return new URL(cleanInput, cleanBase);
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Возвращает подходящий интерфейс транспорта в зависимости от конфигурации.
|
|
65
|
-
* @param {Object} config Конфигурация.
|
|
66
|
-
* @param {string} config.url Относительный URL запроса.
|
|
67
|
-
* @param {string} config.baseURL Базовый URL.
|
|
68
|
-
* @param {Object} config.transport Кастомный транспорт, переданный в конфигурации.
|
|
69
|
-
* @param {number} config.maxRedirects Максимальное количество редиректов.
|
|
70
|
-
* @return {Object} Транспорт.
|
|
71
|
-
*/
|
|
72
|
-
export const createTransport = ({
|
|
73
|
-
url,
|
|
74
|
-
baseURL,
|
|
75
|
-
transport,
|
|
76
|
-
maxRedirects,
|
|
77
|
-
}) => {
|
|
78
|
-
const { protocol } = createConcatURL(url, baseURL);
|
|
79
|
-
const isHttpsRequest = isHttps(protocol);
|
|
80
|
-
|
|
81
|
-
let result;
|
|
82
|
-
if (transport) {
|
|
83
|
-
result = transport;
|
|
84
|
-
} else if (maxRedirects === 0) {
|
|
85
|
-
result = isHttpsRequest ? https : http;
|
|
86
|
-
} else {
|
|
87
|
-
result = isHttpsRequest ? httpsFollow : httpFollow;
|
|
88
|
-
}
|
|
89
|
-
return result;
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Объединяет имеющиеся параметры запроса с переданными и возвращает сериализованный путь с параметрами запроса.
|
|
94
|
-
* @param {URL} url Экземпляр URL.
|
|
95
|
-
* @param {Object|string|URLSearchParams} [params] Параметры запроса.
|
|
96
|
-
* @param {Function} [paramsSerializer] Функция для сериализации переданных параметров.
|
|
97
|
-
* @return {string} Путь с параметрами.
|
|
98
|
-
*/
|
|
99
|
-
export const buildRequestPath = (url, params, paramsSerializer) => {
|
|
100
|
-
const outlineSearchParams = new URLSearchParams(
|
|
101
|
-
isFunction(paramsSerializer)
|
|
102
|
-
? paramsSerializer(params)
|
|
103
|
-
: params
|
|
104
|
-
);
|
|
105
|
-
outlineSearchParams.forEach((value, name) => url.searchParams.append(name, value));
|
|
106
|
-
return url.href.replace(url.origin, '');
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* Формирует объект опций для запроса на основании переданной конфигурации.
|
|
111
|
-
* @param {Object} config Конфигурация.
|
|
112
|
-
* @return {Object} Опции.
|
|
113
|
-
*/
|
|
114
|
-
export const createOptions = ({
|
|
115
|
-
url,
|
|
116
|
-
baseURL,
|
|
117
|
-
method,
|
|
118
|
-
headers,
|
|
119
|
-
httpAgent,
|
|
120
|
-
httpsAgent,
|
|
121
|
-
params,
|
|
122
|
-
paramsSerializer,
|
|
123
|
-
maxRedirects,
|
|
124
|
-
maxContentLength,
|
|
125
|
-
}) => {
|
|
126
|
-
const fullURL = createConcatURL(url, baseURL);
|
|
127
|
-
const {
|
|
128
|
-
protocol,
|
|
129
|
-
hostname,
|
|
130
|
-
port,
|
|
131
|
-
} = fullURL;
|
|
132
|
-
|
|
133
|
-
const agent = isHttps(protocol) ? httpsAgent : httpAgent;
|
|
134
|
-
|
|
135
|
-
const result = {
|
|
136
|
-
path: buildRequestPath(fullURL, params, paramsSerializer),
|
|
137
|
-
method: method.toUpperCase(),
|
|
138
|
-
agents: { http: httpAgent, https: httpsAgent },
|
|
139
|
-
headers,
|
|
140
|
-
agent,
|
|
141
|
-
hostname,
|
|
142
|
-
port: Number(port) || undefined,
|
|
143
|
-
};
|
|
144
|
-
|
|
145
|
-
if (maxRedirects) {
|
|
146
|
-
result.maxRedirects = maxRedirects;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
if (maxContentLength && maxContentLength > -1) {
|
|
150
|
-
result.maxBodyLength = maxContentLength;
|
|
151
|
-
}
|
|
152
|
-
return result;
|
|
153
|
-
};
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* Возвращает декомпресированный запрос либо исходный запрос, если не было заголовка о компрессии.
|
|
157
|
-
* @param {import('stream').Readable} response Запрос.
|
|
158
|
-
* @return {import('stream').Readable} Обработанный запрос.
|
|
159
|
-
*/
|
|
160
|
-
export const uncompressResponse = response => {
|
|
161
|
-
const isCompress = [
|
|
162
|
-
'gzip',
|
|
163
|
-
'compress',
|
|
164
|
-
'deflate',
|
|
165
|
-
].includes(response.headers['content-encoding']);
|
|
166
|
-
|
|
167
|
-
return isCompress && response.statusCode !== 204
|
|
168
|
-
? response.pipe(zlib.createUnzip())
|
|
169
|
-
: response;
|
|
170
|
-
};
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* Возвращает ошибку, дополненную свойствами из запроса.
|
|
174
|
-
* @param {Error} error Ошибка.
|
|
175
|
-
* @param {Object} config Конфиг.
|
|
176
|
-
* @param {string} code Код ошибки.
|
|
177
|
-
* @param {import('http').ClientRequest} request Запрос.
|
|
178
|
-
* @param {import('http').IncomingMessage} response Ответ.
|
|
179
|
-
* @return {Error} Расширенная ошибка.
|
|
180
|
-
*/
|
|
181
|
-
export const enhanceError = (error, config, code, request, response) => {
|
|
182
|
-
const enhance = {
|
|
183
|
-
config,
|
|
184
|
-
request,
|
|
185
|
-
response,
|
|
186
|
-
isAxiosError: true,
|
|
187
|
-
|
|
188
|
-
/**
|
|
189
|
-
* Возвращает объект для передачи в JSON.stringify().
|
|
190
|
-
* @return {Object} Объект.
|
|
191
|
-
*/
|
|
192
|
-
toJSON () {
|
|
193
|
-
return {
|
|
194
|
-
message: this.message,
|
|
195
|
-
name: this.name,
|
|
196
|
-
description: this.description,
|
|
197
|
-
number: this.number,
|
|
198
|
-
fileName: this.fileName,
|
|
199
|
-
lineNumber: this.lineNumber,
|
|
200
|
-
columnNumber: this.columnNumber,
|
|
201
|
-
stack: this.stack,
|
|
202
|
-
config: this.config,
|
|
203
|
-
code: this.code,
|
|
204
|
-
};
|
|
205
|
-
},
|
|
206
|
-
};
|
|
207
|
-
|
|
208
|
-
if (code) {
|
|
209
|
-
enhance.code = code;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
return Object.assign(error, enhance);
|
|
213
|
-
};
|
|
214
|
-
|
|
215
|
-
/**
|
|
216
|
-
* Создает расширенную ошибку из текста и параметров запроса.
|
|
217
|
-
* @param {string} message Текст ошибки.
|
|
218
|
-
* @param {Array} rest Параметры запроса.
|
|
219
|
-
* @return {Error} Ошибка.
|
|
220
|
-
*/
|
|
221
|
-
export const createError = (message, ...rest) => enhanceError(new Error(message), ...rest);
|
|
222
|
-
|
|
223
|
-
/**
|
|
224
|
-
* Валидирует код ответа и разрешает промис.
|
|
225
|
-
* @param {Function} resolve Разрешает промис.
|
|
226
|
-
* @param {Function} reject Отклоняет промис.
|
|
227
|
-
* @param {import('http').IncomingMessage} response Ответ на запрос.
|
|
228
|
-
*/
|
|
229
|
-
export const settle = (resolve, reject, response) => {
|
|
230
|
-
const { status, config, request } = response;
|
|
231
|
-
const { validateStatus } = config || {};
|
|
232
|
-
|
|
233
|
-
if (!validateStatus || validateStatus(status)) {
|
|
234
|
-
resolve(response);
|
|
235
|
-
} else {
|
|
236
|
-
reject(createError(
|
|
237
|
-
`Request failed with status code ${status}`,
|
|
238
|
-
config,
|
|
239
|
-
null,
|
|
240
|
-
request,
|
|
241
|
-
response
|
|
242
|
-
));
|
|
243
|
-
}
|
|
244
|
-
};
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
isStream,
|
|
3
|
-
isEventEmitter,
|
|
4
|
-
prepareDataBuffer,
|
|
5
|
-
createOptions,
|
|
6
|
-
createTransport,
|
|
7
|
-
uncompressResponse,
|
|
8
|
-
enhanceError,
|
|
9
|
-
createError,
|
|
10
|
-
settle,
|
|
11
|
-
} from './helpers';
|
|
12
|
-
|
|
13
|
-
import { REQUEST_STAGES } from './constants';
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Адаптер для Axios, создающий события на основных этапах запроса к API.
|
|
17
|
-
* За образец использован дефолтный адаптер 'axios/lib/adapters/http.js',
|
|
18
|
-
* но без поддержки proxy, socketPath и cancelToken за ненадобностью.
|
|
19
|
-
* Только для NodeJS, на клиенте не использовать.
|
|
20
|
-
* @param {Object} config Конфигурация инстанса Axios.
|
|
21
|
-
* @return {Promise} Разрешится после запроса к API.
|
|
22
|
-
*/
|
|
23
|
-
const serverAdapter = config => new Promise((resolve, reject) => {
|
|
24
|
-
const {
|
|
25
|
-
headers,
|
|
26
|
-
data: pureData,
|
|
27
|
-
timeout,
|
|
28
|
-
responseType,
|
|
29
|
-
maxContentLength,
|
|
30
|
-
responseEncoding,
|
|
31
|
-
emitter,
|
|
32
|
-
} = config;
|
|
33
|
-
|
|
34
|
-
const needEmit = isEventEmitter(emitter);
|
|
35
|
-
|
|
36
|
-
// Регистрируем обработчик начала запроса.
|
|
37
|
-
needEmit && emitter.emit(REQUEST_STAGES.start);
|
|
38
|
-
|
|
39
|
-
// Подготовка данных запроса.
|
|
40
|
-
let data;
|
|
41
|
-
|
|
42
|
-
if (pureData && !isStream(pureData)) {
|
|
43
|
-
data = prepareDataBuffer(pureData);
|
|
44
|
-
if (data) {
|
|
45
|
-
headers['Content-Length'] = data.length;
|
|
46
|
-
} else {
|
|
47
|
-
reject(createError(
|
|
48
|
-
'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',
|
|
49
|
-
config
|
|
50
|
-
));
|
|
51
|
-
}
|
|
52
|
-
} else {
|
|
53
|
-
data = pureData;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const options = createOptions({ ...config, headers });
|
|
57
|
-
const transport = createTransport(config);
|
|
58
|
-
|
|
59
|
-
// Создаем запрос и коллбэк, обрабатывающий ответ.
|
|
60
|
-
const req = transport.request(options, res => {
|
|
61
|
-
// Регистрируем обработчик получения ответа.
|
|
62
|
-
res.once('readable', () => needEmit && emitter.emit(REQUEST_STAGES.firstByteReceived));
|
|
63
|
-
|
|
64
|
-
const stream = uncompressResponse(res);
|
|
65
|
-
|
|
66
|
-
if (stream !== res) {
|
|
67
|
-
delete res.headers['content-encoding'];
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
const response = {
|
|
71
|
-
status: res.statusCode,
|
|
72
|
-
statusText: res.statusMessage,
|
|
73
|
-
headers: res.headers,
|
|
74
|
-
config,
|
|
75
|
-
request: res.req,
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
const resBuffer = [];
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Обработчик получения порции данных.
|
|
82
|
-
* @param {Buffer} chunk Порция данных.
|
|
83
|
-
*/
|
|
84
|
-
const chunksHandler = chunk => {
|
|
85
|
-
resBuffer.push(chunk);
|
|
86
|
-
if (
|
|
87
|
-
maxContentLength > -1
|
|
88
|
-
&& Buffer.concat(resBuffer).length > maxContentLength
|
|
89
|
-
) {
|
|
90
|
-
stream.destroy();
|
|
91
|
-
reject(createError(`maxContentLength size of ${maxContentLength} exceeded`, config, null, res.req));
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Обработчик завершения получения данных.
|
|
97
|
-
*/
|
|
98
|
-
const finishHandler = () => {
|
|
99
|
-
const concatBuffer = Buffer.concat(resBuffer);
|
|
100
|
-
response.data = responseType === 'arraybuffer'
|
|
101
|
-
? concatBuffer
|
|
102
|
-
: concatBuffer.toString(responseEncoding);
|
|
103
|
-
|
|
104
|
-
settle(resolve, reject, response);
|
|
105
|
-
|
|
106
|
-
// Регистрируем обработчик завершения запроса.
|
|
107
|
-
needEmit && emitter.emit(REQUEST_STAGES.end);
|
|
108
|
-
};
|
|
109
|
-
if (responseType === 'stream') {
|
|
110
|
-
response.data = stream;
|
|
111
|
-
settle(resolve, reject, response);
|
|
112
|
-
} else {
|
|
113
|
-
stream
|
|
114
|
-
.on('data', chunksHandler)
|
|
115
|
-
.on('error', err => {
|
|
116
|
-
!req.aborted && reject(enhanceError(err, config, null, res.req));
|
|
117
|
-
})
|
|
118
|
-
.on('end', finishHandler);
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
// Регистрируем обработчики событий сокета.
|
|
123
|
-
if (needEmit) {
|
|
124
|
-
req.on('socket', socket => {
|
|
125
|
-
socket.connecting && socket
|
|
126
|
-
.on('lookup', () => emitter.emit(REQUEST_STAGES.dnsLookupFinish))
|
|
127
|
-
.on('connect', () => emitter.emit(REQUEST_STAGES.tcpConnectionConnect))
|
|
128
|
-
.on('secureConnect', () => emitter.emit(REQUEST_STAGES.tlsHandshakeFinish));
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
req.on('error', err => {
|
|
133
|
-
!req.aborted && reject(enhanceError(err, config, null, req));
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
if (timeout) {
|
|
137
|
-
req.setTimeout(timeout, () => {
|
|
138
|
-
req.abort();
|
|
139
|
-
reject(createError(`timeout of ${config.timeout} ms exceeded`, config, 'ECONNABORTED', req));
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
// Отправка данных запроса.
|
|
144
|
-
if (isStream(data)) {
|
|
145
|
-
data
|
|
146
|
-
.on('error', err => {
|
|
147
|
-
reject(enhanceError(err, config, null, req));
|
|
148
|
-
})
|
|
149
|
-
.pipe(req);
|
|
150
|
-
} else {
|
|
151
|
-
req.end(data);
|
|
152
|
-
}
|
|
153
|
-
});
|
|
154
|
-
|
|
155
|
-
export default serverAdapter;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Определяет, необходимо ли подключать dotenv и если необходимо, подключает его.
|
|
3
|
-
* @param {string} environment Значение переменной среды NODE_ENV.
|
|
4
|
-
*/
|
|
5
|
-
const useDotEnv = environment => {
|
|
6
|
-
['development', 'test'].includes(environment) && require('dotenv').config();
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
export default useDotEnv;
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import get from 'lodash/get';
|
|
2
|
-
import isFunction from 'lodash/isFunction';
|
|
3
|
-
import { createService } from '../../container';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Генерирует параметры приложения.
|
|
7
|
-
* @param {Object} request Запрос.
|
|
8
|
-
* @param {Object} config Конфиг приложения.
|
|
9
|
-
* @param {Function} getValue Генератор значения.
|
|
10
|
-
* @param {Function} modify Модификатор Значения.
|
|
11
|
-
* @param {Object} defaultValue Значение поумолчанию.
|
|
12
|
-
* @return {Object} Параметры приложения.
|
|
13
|
-
*/
|
|
14
|
-
export const getParams = (request, config, getValue = () => {}, modify, defaultValue) => {
|
|
15
|
-
let result = getValue(request);
|
|
16
|
-
if (!result) {
|
|
17
|
-
result = defaultValue;
|
|
18
|
-
}
|
|
19
|
-
if (isFunction(modify)) {
|
|
20
|
-
result = modify(result, request, config);
|
|
21
|
-
}
|
|
22
|
-
return result;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Парсит заголовок запроса.
|
|
27
|
-
* @param {Object} request Запрос.
|
|
28
|
-
* @return {Object} Параметры.
|
|
29
|
-
*/
|
|
30
|
-
export const parseHttpHeaders = request => {
|
|
31
|
-
/**
|
|
32
|
-
* Node.js переводит в ASCII.
|
|
33
|
-
* @see {https://github.com/nodejs/node/issues/17390}
|
|
34
|
-
*/
|
|
35
|
-
const params = Buffer.from(
|
|
36
|
-
get(request, 'headers[simaland-params]', ''),
|
|
37
|
-
'binary'
|
|
38
|
-
).toString('utf8');
|
|
39
|
-
return params ? JSON.parse(params) : null;
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
export default createService(
|
|
43
|
-
getParams,
|
|
44
|
-
(
|
|
45
|
-
{
|
|
46
|
-
request,
|
|
47
|
-
config,
|
|
48
|
-
getValue,
|
|
49
|
-
modify,
|
|
50
|
-
defaultValue,
|
|
51
|
-
}
|
|
52
|
-
) => [
|
|
53
|
-
request,
|
|
54
|
-
config,
|
|
55
|
-
getValue,
|
|
56
|
-
modify,
|
|
57
|
-
defaultValue,
|
|
58
|
-
]
|
|
59
|
-
);
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { isIP } from 'net';
|
|
2
|
-
import isFunction from 'lodash/isFunction';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Получает IP пользователя из заголовков запроса.
|
|
6
|
-
* @param {Object} request Запрос.
|
|
7
|
-
* @return {string} IP пользователя.
|
|
8
|
-
*/
|
|
9
|
-
export const getXClientIp = ({ request }) => {
|
|
10
|
-
const ip = request.headers['x-client-ip']
|
|
11
|
-
|| request.headers['x-forwarded-for']
|
|
12
|
-
|| request.connection.remoteAddress;
|
|
13
|
-
return isIP(ip) ? ip : '';
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Получает метод запроса из объекта запроса.
|
|
18
|
-
* @param {Object} request Запрос.
|
|
19
|
-
* @return {string} Метод запроса.
|
|
20
|
-
*/
|
|
21
|
-
export const getMethod = ({ request }) => request.method;
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Получает статус ответа из объекта ответа.
|
|
25
|
-
* @param {Object} response Ответ.
|
|
26
|
-
* @return {number} Статус ответа.
|
|
27
|
-
*/
|
|
28
|
-
export const getStatus = ({ response }) => response.statusCode;
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Получает оригинальный url из объекта запроса.
|
|
32
|
-
* @param {Object} request Запрос.
|
|
33
|
-
* @return {number} Url запроса.
|
|
34
|
-
*/
|
|
35
|
-
export const getOriginalUrl = ({ request }) => request.originalUrl;
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Получает куки из запроса.
|
|
39
|
-
* @param {Object} request Запрос.
|
|
40
|
-
* @return {string} Куки.
|
|
41
|
-
*/
|
|
42
|
-
export const getCookie = request => (request && isFunction(request.get) && request.get('cookie')) || '';
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Валидация http статуса ответа на POST запрос.
|
|
3
|
-
* @param {number} status Статус http ответа.
|
|
4
|
-
* @return {boolean} Валидность.
|
|
5
|
-
*/
|
|
6
|
-
export const validatePostStatus = status => status === 201;
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Валидация http статуса ответа на DELETE запрос.
|
|
10
|
-
* @param {number} status Статус http ответа.
|
|
11
|
-
* @return {boolean} Валидность.
|
|
12
|
-
*/
|
|
13
|
-
export const validateDeleteStatus = status => status === 204 || status === 200;
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Валидация http статуса 200.
|
|
17
|
-
* @param {number} status Статус http ответа.
|
|
18
|
-
* @return {boolean} Валидность.
|
|
19
|
-
*/
|
|
20
|
-
export const isOkStatus = status => status === 200;
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import pino from 'pino';
|
|
2
|
-
import formatTime from '../format-time';
|
|
3
|
-
import isPlainObject from 'lodash/isPlainObject';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Модуль создающий экземпляр логгера.
|
|
7
|
-
* @param {Object} options Зависимости модуля.
|
|
8
|
-
* @return {Function} Функция, которая создает логгер.
|
|
9
|
-
*/
|
|
10
|
-
export default function createPinoInstance ({ config } = {}) {
|
|
11
|
-
/**
|
|
12
|
-
* Функция, которая создает экземпляр логгера.
|
|
13
|
-
* @param {Object} param Параметры.
|
|
14
|
-
* @param {string|number} param.timestamp Время.
|
|
15
|
-
* @param {boolean} param.isProduction Является ли production-сборкой.
|
|
16
|
-
* @param {boolean} param.hasColorize Нужно ли выделять цветом.
|
|
17
|
-
* @return {Function} Экземпляр логгера.
|
|
18
|
-
*/
|
|
19
|
-
const loggerCreator = (
|
|
20
|
-
{
|
|
21
|
-
timestamp,
|
|
22
|
-
isProduction,
|
|
23
|
-
hasColorize,
|
|
24
|
-
}
|
|
25
|
-
) => {
|
|
26
|
-
const logger = pino({
|
|
27
|
-
timestamp,
|
|
28
|
-
prettyPrint: hasColorize && { colorize: true },
|
|
29
|
-
useLevelLabels: true,
|
|
30
|
-
});
|
|
31
|
-
logger.extreme = isProduction;
|
|
32
|
-
|
|
33
|
-
return logger;
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
return loggerCreator({
|
|
37
|
-
timestamp: formatTime,
|
|
38
|
-
isProduction: isPlainObject(config) ? config.isProduction : true,
|
|
39
|
-
hasColorize: isPlainObject(config) ? config.isDevelopment : false,
|
|
40
|
-
});
|
|
41
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Формирует данные метрики из данных приложения, запроса и ответа.
|
|
3
|
-
* @param {Object} options Опции приложения.
|
|
4
|
-
* @param {Object} options.dependencies Зависимости сервиса сбора метрик.
|
|
5
|
-
* @param {Object} options.dependencies.config Конфигурация приложения.
|
|
6
|
-
* @param {import('http').IncomingMessage} options.request Запрос.
|
|
7
|
-
* @param {import('http').ServerResponse} options.response Ответ.
|
|
8
|
-
* @return {{route: string, place: string, statusCode: number}} Данные для отправки в метрику.
|
|
9
|
-
*/
|
|
10
|
-
export const labelsResolver = ({ dependencies: { config }, request, response }) => ({
|
|
11
|
-
version: config.version || 'development',
|
|
12
|
-
route: request.baseUrl + request.path,
|
|
13
|
-
code: response.statusCode,
|
|
14
|
-
method: request.method,
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Создаёт функцию, подписывающую обработчик на определённое событие ответа сервера.
|
|
19
|
-
* @param {string} eventName Название события.
|
|
20
|
-
* @return {function({response: import('http').ServerResponse, callback: Function}): import('http').ServerResponse}
|
|
21
|
-
* Функция-подписчик.
|
|
22
|
-
*/
|
|
23
|
-
export const createResponseEventSubscriber = eventName =>
|
|
24
|
-
({ response, callback }) => response.once(eventName, callback);
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Подписывает функцию-обработчик на событие начала рендеринга.
|
|
28
|
-
* @param {import('http').ServerResponse} response Ответ.
|
|
29
|
-
* @param {Function} callback Обработчик.
|
|
30
|
-
* @return {import('http').ServerResponse} Ответ.
|
|
31
|
-
*/
|
|
32
|
-
export const renderStartSubscriber = createResponseEventSubscriber('render:start');
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Подписывает функцию-обработчик на событие конца рендеринга.
|
|
36
|
-
* @param {import('http').ServerResponse} response Ответ.
|
|
37
|
-
* @param {Function} callback Обработчик.
|
|
38
|
-
* @return {import('http').ServerResponse} Ответ.
|
|
39
|
-
*/
|
|
40
|
-
export const renderFinishSubscriber = createResponseEventSubscriber('render:finish');
|