@sima-land/isomorph 11.0.0-alpha.4 → 11.0.0-alpha.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +25 -0
- package/cache/package.json +6 -0
- package/config/package.json +6 -0
- package/di/package.json +6 -0
- package/dist/cjs/cache/index.js +6 -0
- package/dist/cjs/cache/index.js.map +1 -0
- package/dist/cjs/cache/types.js +6 -0
- package/dist/cjs/cache/types.js.map +1 -0
- package/dist/cjs/config/base.js +22 -0
- package/dist/cjs/config/base.js.map +1 -0
- package/dist/cjs/config/index.js +20 -0
- package/dist/cjs/config/index.js.map +1 -0
- package/dist/cjs/config/source.js +25 -0
- package/dist/cjs/config/source.js.map +1 -0
- package/dist/cjs/config/types.js +6 -0
- package/dist/cjs/config/types.js.map +1 -0
- package/dist/cjs/di/application.js +106 -0
- package/dist/cjs/di/application.js.map +1 -0
- package/dist/cjs/di/container.js +55 -0
- package/dist/cjs/di/container.js.map +1 -0
- package/dist/cjs/di/errors.js +65 -0
- package/dist/cjs/di/errors.js.map +1 -0
- package/dist/cjs/di/index.js +59 -0
- package/dist/cjs/di/index.js.map +1 -0
- package/dist/cjs/di/preset.js +32 -0
- package/dist/cjs/di/preset.js.map +1 -0
- package/dist/cjs/di/token.js +44 -0
- package/dist/cjs/di/token.js.map +1 -0
- package/dist/cjs/di/types.js +6 -0
- package/dist/cjs/di/types.js.map +1 -0
- package/dist/cjs/http/errors.js +47 -0
- package/dist/cjs/http/errors.js.map +1 -0
- package/dist/cjs/http/index.js +63 -0
- package/dist/cjs/http/index.js.map +1 -0
- package/dist/cjs/http/types.js +6 -0
- package/dist/cjs/http/types.js.map +1 -0
- package/dist/cjs/log/errors.js +35 -0
- package/dist/cjs/log/errors.js.map +1 -0
- package/dist/cjs/log/handler/pino.js +31 -0
- package/dist/cjs/log/handler/pino.js.map +1 -0
- package/dist/cjs/log/handler/sentry.js +57 -0
- package/dist/cjs/log/handler/sentry.js.map +1 -0
- package/dist/cjs/log/index.js +26 -0
- package/dist/cjs/log/index.js.map +1 -0
- package/dist/cjs/log/logger.js +35 -0
- package/dist/cjs/log/logger.js.map +1 -0
- package/dist/cjs/log/types.js +6 -0
- package/dist/cjs/log/types.js.map +1 -0
- package/dist/cjs/package.json +5 -0
- package/dist/cjs/preset/isomorphic/constants.js +14 -0
- package/dist/cjs/preset/isomorphic/constants.js.map +1 -0
- package/dist/cjs/preset/isomorphic/index.js +6 -0
- package/dist/cjs/preset/isomorphic/index.js.map +1 -0
- package/dist/cjs/preset/isomorphic/providers/index.js +42 -0
- package/dist/cjs/preset/isomorphic/providers/index.js.map +1 -0
- package/dist/cjs/preset/isomorphic/types.js +6 -0
- package/dist/cjs/preset/isomorphic/types.js.map +1 -0
- package/dist/cjs/preset/isomorphic/utils/index.js +322 -0
- package/dist/cjs/preset/isomorphic/utils/index.js.map +1 -0
- package/dist/cjs/preset/node/handler/index.js +52 -0
- package/dist/cjs/preset/node/handler/index.js.map +1 -0
- package/dist/cjs/preset/node/handler/providers/index.js +212 -0
- package/dist/cjs/preset/node/handler/providers/index.js.map +1 -0
- package/dist/cjs/preset/node/handler/utils/index.js +132 -0
- package/dist/cjs/preset/node/handler/utils/index.js.map +1 -0
- package/dist/cjs/preset/node/index.js +26 -0
- package/dist/cjs/preset/node/index.js.map +1 -0
- package/dist/cjs/preset/node/node/index.js +61 -0
- package/dist/cjs/preset/node/node/index.js.map +1 -0
- package/dist/cjs/preset/node/node/providers/index.js +403 -0
- package/dist/cjs/preset/node/node/providers/index.js.map +1 -0
- package/dist/cjs/preset/node/node/utils/http-client/index.js +122 -0
- package/dist/cjs/preset/node/node/utils/http-client/index.js.map +1 -0
- package/dist/cjs/preset/node/node/utils/http-server/index.js +18 -0
- package/dist/cjs/preset/node/node/utils/http-server/index.js.map +1 -0
- package/dist/cjs/preset/node/node/utils/index.js +20 -0
- package/dist/cjs/preset/node/node/utils/index.js.map +1 -0
- package/dist/cjs/preset/node/types.js +6 -0
- package/dist/cjs/preset/node/types.js.map +1 -0
- package/dist/cjs/preset/web/index.js +34 -0
- package/dist/cjs/preset/web/index.js.map +1 -0
- package/dist/cjs/preset/web/providers/index.js +94 -0
- package/dist/cjs/preset/web/providers/index.js.map +1 -0
- package/dist/cjs/tokens.js +86 -0
- package/dist/cjs/tokens.js.map +1 -0
- package/dist/cjs/utils/axios/index.js +40 -0
- package/dist/cjs/utils/axios/index.js.map +1 -0
- package/dist/cjs/utils/axios/middleware/cookie.js +28 -0
- package/dist/cjs/utils/axios/middleware/cookie.js.map +1 -0
- package/dist/cjs/utils/axios/middleware/log.js +37 -0
- package/dist/cjs/utils/axios/middleware/log.js.map +1 -0
- package/dist/cjs/utils/axios/sauce/index.js +57 -0
- package/dist/cjs/utils/axios/sauce/index.js.map +1 -0
- package/dist/cjs/utils/axios/utils/index.js +30 -0
- package/dist/cjs/utils/axios/utils/index.js.map +1 -0
- package/dist/cjs/utils/express/handler/health-check.js +19 -0
- package/dist/cjs/utils/express/handler/health-check.js.map +1 -0
- package/dist/cjs/utils/express/index.js +20 -0
- package/dist/cjs/utils/express/index.js.map +1 -0
- package/dist/cjs/utils/express/utils/index.js +22 -0
- package/dist/cjs/utils/express/utils/index.js.map +1 -0
- package/dist/cjs/utils/function.js +44 -0
- package/dist/cjs/utils/function.js.map +1 -0
- package/dist/cjs/utils/index.js +20 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/{utils/number.js → dist/cjs/utils/math.js} +7 -5
- package/dist/cjs/utils/math.js.map +1 -0
- package/dist/cjs/utils/react/error-handlers/index.js +80 -0
- package/dist/cjs/utils/react/error-handlers/index.js.map +1 -0
- package/dist/cjs/utils/react/index.js +19 -0
- package/dist/cjs/utils/react/index.js.map +1 -0
- package/dist/cjs/utils/redux/index.js +19 -0
- package/dist/cjs/utils/redux/index.js.map +1 -0
- package/dist/cjs/utils/redux/remote-data.js +118 -0
- package/dist/cjs/utils/redux/remote-data.js.map +1 -0
- package/dist/cjs/utils/redux-saga/index.js +20 -0
- package/dist/cjs/utils/redux-saga/index.js.map +1 -0
- package/dist/cjs/utils/redux-saga/middleware.js +149 -0
- package/dist/cjs/utils/redux-saga/middleware.js.map +1 -0
- package/dist/cjs/utils/redux-saga/take-chain.js +66 -0
- package/dist/cjs/utils/redux-saga/take-chain.js.map +1 -0
- package/dist/cjs/utils/redux-saga/types.js +6 -0
- package/dist/cjs/utils/redux-saga/types.js.map +1 -0
- package/dist/cjs/utils/ssr/index.js +73 -0
- package/dist/cjs/utils/ssr/index.js.map +1 -0
- package/dist/cjs/utils/web/analytics/data-layer.js +20 -0
- package/dist/cjs/utils/web/analytics/data-layer.js.map +1 -0
- package/dist/cjs/utils/web/analytics/index.js +20 -0
- package/dist/cjs/utils/web/analytics/index.js.map +1 -0
- package/dist/cjs/utils/web/analytics/oko.js +20 -0
- package/dist/cjs/utils/web/analytics/oko.js.map +1 -0
- package/dist/cjs/utils/web/storage/index.js +75 -0
- package/dist/cjs/utils/web/storage/index.js.map +1 -0
- package/dist/cjs/utils/webpack/env/index.js +96 -0
- package/dist/cjs/utils/webpack/env/index.js.map +1 -0
- package/dist/cjs/utils/webpack/env/types.js +6 -0
- package/dist/cjs/utils/webpack/env/types.js.map +1 -0
- package/dist/cjs/utils/webpack/env/utils.js +55 -0
- package/dist/cjs/utils/webpack/env/utils.js.map +1 -0
- package/dist/cjs/utils/webpack/index.js +20 -0
- package/dist/cjs/utils/webpack/index.js.map +1 -0
- package/dist/cjs/utils/webpack/module-federation/index.js +110 -0
- package/dist/cjs/utils/webpack/module-federation/index.js.map +1 -0
- package/dist/cjs/utils/webpack/module-federation/types.js +6 -0
- package/dist/cjs/utils/webpack/module-federation/types.js.map +1 -0
- package/dist/cjs/utils/webpack/module-federation/utils.js +87 -0
- package/dist/cjs/utils/webpack/module-federation/utils.js.map +1 -0
- package/dist/esm/cache/index.js +2 -0
- package/dist/esm/cache/index.js.map +1 -0
- package/dist/esm/cache/types.js +2 -0
- package/dist/esm/cache/types.js.map +1 -0
- package/dist/esm/config/base.js +16 -0
- package/dist/esm/config/base.js.map +1 -0
- package/dist/esm/config/index.js +3 -0
- package/dist/esm/config/index.js.map +1 -0
- package/dist/esm/config/source.js +19 -0
- package/dist/esm/config/source.js.map +1 -0
- package/dist/esm/config/types.js +2 -0
- package/dist/esm/config/types.js.map +1 -0
- package/dist/esm/di/application.js +100 -0
- package/dist/esm/di/application.js.map +1 -0
- package/dist/esm/di/container.js +49 -0
- package/dist/esm/di/container.js.map +1 -0
- package/dist/esm/di/errors.js +56 -0
- package/dist/esm/di/errors.js.map +1 -0
- package/dist/esm/di/index.js +6 -0
- package/dist/esm/di/index.js.map +1 -0
- package/dist/esm/di/preset.js +26 -0
- package/dist/esm/di/preset.js.map +1 -0
- package/dist/esm/di/token.js +38 -0
- package/dist/esm/di/token.js.map +1 -0
- package/dist/esm/di/types.js +2 -0
- package/dist/esm/di/types.js.map +1 -0
- package/dist/esm/http/errors.js +39 -0
- package/dist/esm/http/errors.js.map +1 -0
- package/dist/esm/http/index.js +4 -0
- package/dist/esm/http/index.js.map +1 -0
- package/dist/esm/http/types.js +2 -0
- package/dist/esm/http/types.js.map +1 -0
- package/dist/esm/log/errors.js +27 -0
- package/dist/esm/log/errors.js.map +1 -0
- package/dist/esm/log/handler/pino.js +25 -0
- package/dist/esm/log/handler/pino.js.map +1 -0
- package/dist/esm/log/handler/sentry.js +52 -0
- package/dist/esm/log/handler/sentry.js.map +1 -0
- package/dist/esm/log/index.js +3 -0
- package/dist/esm/log/index.js.map +1 -0
- package/dist/esm/log/logger.js +29 -0
- package/dist/esm/log/logger.js.map +1 -0
- package/dist/esm/log/types.js +2 -0
- package/dist/esm/log/types.js.map +1 -0
- package/dist/esm/package.json +5 -0
- package/dist/esm/preset/isomorphic/constants.js +8 -0
- package/dist/esm/preset/isomorphic/constants.js.map +1 -0
- package/dist/esm/preset/isomorphic/index.js +2 -0
- package/dist/esm/preset/isomorphic/index.js.map +1 -0
- package/dist/esm/preset/isomorphic/providers/index.js +35 -0
- package/dist/esm/preset/isomorphic/providers/index.js.map +1 -0
- package/dist/esm/preset/isomorphic/types.js +2 -0
- package/dist/esm/preset/isomorphic/types.js.map +1 -0
- package/dist/esm/preset/isomorphic/utils/index.js +309 -0
- package/dist/esm/preset/isomorphic/utils/index.js.map +1 -0
- package/dist/esm/preset/node/handler/index.js +42 -0
- package/dist/esm/preset/node/handler/index.js.map +1 -0
- package/dist/esm/preset/node/handler/providers/index.js +194 -0
- package/dist/esm/preset/node/handler/providers/index.js.map +1 -0
- package/dist/esm/preset/node/handler/utils/index.js +113 -0
- package/dist/esm/preset/node/handler/utils/index.js.map +1 -0
- package/dist/esm/preset/node/index.js +3 -0
- package/dist/esm/preset/node/index.js.map +1 -0
- package/dist/esm/preset/node/node/index.js +56 -0
- package/dist/esm/preset/node/node/index.js.map +1 -0
- package/dist/esm/preset/node/node/providers/index.js +378 -0
- package/dist/esm/preset/node/node/providers/index.js.map +1 -0
- package/dist/esm/preset/node/node/utils/http-client/index.js +114 -0
- package/dist/esm/preset/node/node/utils/http-client/index.js.map +1 -0
- package/dist/esm/preset/node/node/utils/http-server/index.js +12 -0
- package/dist/esm/preset/node/node/utils/http-server/index.js.map +1 -0
- package/dist/esm/preset/node/node/utils/index.js +3 -0
- package/dist/esm/preset/node/node/utils/index.js.map +1 -0
- package/dist/esm/preset/node/types.js +2 -0
- package/dist/esm/preset/node/types.js.map +1 -0
- package/dist/esm/preset/web/index.js +29 -0
- package/dist/esm/preset/web/index.js.map +1 -0
- package/dist/esm/preset/web/providers/index.js +85 -0
- package/dist/esm/preset/web/providers/index.js.map +1 -0
- package/dist/esm/tokens.js +81 -0
- package/dist/esm/tokens.js.map +1 -0
- package/dist/esm/utils/axios/index.js +5 -0
- package/dist/esm/utils/axios/index.js.map +1 -0
- package/dist/esm/utils/axios/middleware/cookie.js +22 -0
- package/dist/esm/utils/axios/middleware/cookie.js.map +1 -0
- package/dist/esm/utils/axios/middleware/log.js +31 -0
- package/dist/esm/utils/axios/middleware/log.js.map +1 -0
- package/dist/esm/utils/axios/sauce/index.js +50 -0
- package/dist/esm/utils/axios/sauce/index.js.map +1 -0
- package/dist/esm/utils/axios/utils/index.js +24 -0
- package/dist/esm/utils/axios/utils/index.js.map +1 -0
- package/dist/esm/utils/express/handler/health-check.js +13 -0
- package/dist/esm/utils/express/handler/health-check.js.map +1 -0
- package/dist/esm/utils/express/index.js +3 -0
- package/dist/esm/utils/express/index.js.map +1 -0
- package/dist/esm/utils/express/utils/index.js +16 -0
- package/dist/esm/utils/express/utils/index.js.map +1 -0
- package/dist/esm/utils/function.js +38 -0
- package/dist/esm/utils/function.js.map +1 -0
- package/dist/esm/utils/index.js +3 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/math.js +9 -0
- package/dist/esm/utils/math.js.map +1 -0
- package/dist/esm/utils/react/error-handlers/index.js +69 -0
- package/dist/esm/utils/react/error-handlers/index.js.map +1 -0
- package/dist/esm/utils/react/index.js +3 -0
- package/dist/esm/utils/react/index.js.map +1 -0
- package/dist/esm/utils/redux/index.js +3 -0
- package/dist/esm/utils/redux/index.js.map +1 -0
- package/dist/esm/utils/redux/remote-data.js +108 -0
- package/dist/esm/utils/redux/remote-data.js.map +1 -0
- package/dist/esm/utils/redux-saga/index.js +3 -0
- package/dist/esm/utils/redux-saga/index.js.map +1 -0
- package/dist/esm/utils/redux-saga/middleware.js +143 -0
- package/dist/esm/utils/redux-saga/middleware.js.map +1 -0
- package/dist/esm/utils/redux-saga/take-chain.js +59 -0
- package/dist/esm/utils/redux-saga/take-chain.js.map +1 -0
- package/dist/esm/utils/redux-saga/types.js +2 -0
- package/dist/esm/utils/redux-saga/types.js.map +1 -0
- package/dist/esm/utils/ssr/index.js +66 -0
- package/dist/esm/utils/ssr/index.js.map +1 -0
- package/dist/esm/utils/web/analytics/data-layer.js +14 -0
- package/dist/esm/utils/web/analytics/data-layer.js.map +1 -0
- package/dist/esm/utils/web/analytics/index.js +3 -0
- package/dist/esm/utils/web/analytics/index.js.map +1 -0
- package/dist/esm/utils/web/analytics/oko.js +14 -0
- package/dist/esm/utils/web/analytics/oko.js.map +1 -0
- package/dist/esm/utils/web/storage/index.js +69 -0
- package/dist/esm/utils/web/storage/index.js.map +1 -0
- package/dist/esm/utils/webpack/env/index.js +89 -0
- package/dist/esm/utils/webpack/env/index.js.map +1 -0
- package/dist/esm/utils/webpack/env/types.js +2 -0
- package/dist/esm/utils/webpack/env/types.js.map +1 -0
- package/dist/esm/utils/webpack/env/utils.js +48 -0
- package/dist/esm/utils/webpack/env/utils.js.map +1 -0
- package/dist/esm/utils/webpack/index.js +4 -0
- package/dist/esm/utils/webpack/index.js.map +1 -0
- package/dist/esm/utils/webpack/module-federation/index.js +96 -0
- package/dist/esm/utils/webpack/module-federation/index.js.map +1 -0
- package/dist/esm/utils/webpack/module-federation/types.js +2 -0
- package/dist/esm/utils/webpack/module-federation/types.js.map +1 -0
- package/dist/esm/utils/webpack/module-federation/utils.js +80 -0
- package/dist/esm/utils/webpack/module-federation/utils.js.map +1 -0
- package/dist/types/cache/index.d.ts +2 -0
- package/dist/types/cache/index.d.ts.map +1 -0
- package/dist/types/cache/types.d.ts +31 -0
- package/dist/types/cache/types.d.ts.map +1 -0
- package/{config → dist/types/config}/base.d.ts +3 -2
- package/dist/types/config/base.d.ts.map +1 -0
- package/dist/types/config/index.d.ts +4 -0
- package/dist/types/config/index.d.ts.map +1 -0
- package/dist/types/config/source.d.ts +8 -0
- package/dist/types/config/source.d.ts.map +1 -0
- package/dist/types/config/types.d.ts +21 -0
- package/dist/types/config/types.d.ts.map +1 -0
- package/{di → dist/types/di}/application.d.ts +6 -1
- package/dist/types/di/application.d.ts.map +1 -0
- package/{di → dist/types/di}/container.d.ts +1 -0
- package/dist/types/di/container.d.ts.map +1 -0
- package/dist/types/di/errors.d.ts +36 -0
- package/dist/types/di/errors.d.ts.map +1 -0
- package/dist/types/di/index.d.ts +7 -0
- package/dist/types/di/index.d.ts.map +1 -0
- package/dist/types/di/preset.d.ts +10 -0
- package/dist/types/di/preset.d.ts.map +1 -0
- package/{di → dist/types/di}/token.d.ts +1 -0
- package/dist/types/di/token.d.ts.map +1 -0
- package/dist/types/di/types.d.ts +87 -0
- package/dist/types/di/types.d.ts.map +1 -0
- package/dist/types/http/errors.d.ts +29 -0
- package/dist/types/http/errors.d.ts.map +1 -0
- package/dist/types/http/index.d.ts +5 -0
- package/dist/types/http/index.d.ts.map +1 -0
- package/dist/types/http/types.d.ts +3 -0
- package/dist/types/http/types.d.ts.map +1 -0
- package/dist/types/log/errors.d.ts +24 -0
- package/dist/types/log/errors.d.ts.map +1 -0
- package/dist/types/log/handler/pino.d.ts +9 -0
- package/dist/types/log/handler/pino.d.ts.map +1 -0
- package/dist/types/log/handler/sentry.d.ts +9 -0
- package/dist/types/log/handler/sentry.d.ts.map +1 -0
- package/dist/types/log/index.d.ts +4 -0
- package/dist/types/log/index.d.ts.map +1 -0
- package/{logger/index.d.ts → dist/types/log/logger.d.ts} +1 -0
- package/dist/types/log/logger.d.ts.map +1 -0
- package/dist/types/log/types.d.ts +65 -0
- package/dist/types/log/types.d.ts.map +1 -0
- package/dist/types/preset/isomorphic/constants.d.ts +8 -0
- package/dist/types/preset/isomorphic/constants.d.ts.map +1 -0
- package/dist/types/preset/isomorphic/index.d.ts +2 -0
- package/dist/types/preset/isomorphic/index.d.ts.map +1 -0
- package/dist/types/preset/isomorphic/providers/index.d.ts +23 -0
- package/dist/types/preset/isomorphic/providers/index.d.ts.map +1 -0
- package/dist/types/preset/isomorphic/types.d.ts +35 -0
- package/dist/types/preset/isomorphic/types.d.ts.map +1 -0
- package/dist/types/preset/isomorphic/utils/index.d.ts +119 -0
- package/dist/types/preset/isomorphic/utils/index.d.ts.map +1 -0
- package/dist/types/preset/node/handler/index.d.ts +11 -0
- package/dist/types/preset/node/handler/index.d.ts.map +1 -0
- package/dist/types/preset/node/handler/providers/index.d.ts +36 -0
- package/dist/types/preset/node/handler/providers/index.d.ts.map +1 -0
- package/dist/types/preset/node/handler/utils/index.d.ts +47 -0
- package/dist/types/preset/node/handler/utils/index.d.ts.map +1 -0
- package/dist/types/preset/node/index.d.ts +4 -0
- package/dist/types/preset/node/index.d.ts.map +1 -0
- package/dist/types/preset/node/node/index.d.ts +9 -0
- package/dist/types/preset/node/node/index.d.ts.map +1 -0
- package/dist/types/preset/node/node/providers/index.d.ts +113 -0
- package/dist/types/preset/node/node/providers/index.d.ts.map +1 -0
- package/{http-client/middleware/tracing.d.ts → dist/types/preset/node/node/utils/http-client/index.d.ts} +13 -3
- package/dist/types/preset/node/node/utils/http-client/index.d.ts.map +1 -0
- package/dist/types/preset/node/node/utils/http-server/index.d.ts +8 -0
- package/dist/types/preset/node/node/utils/http-server/index.d.ts.map +1 -0
- package/dist/types/preset/node/node/utils/index.d.ts +3 -0
- package/dist/types/preset/node/node/utils/index.d.ts.map +1 -0
- package/dist/types/preset/node/types.d.ts +10 -0
- package/dist/types/preset/node/types.d.ts.map +1 -0
- package/dist/types/preset/web/index.d.ts +9 -0
- package/dist/types/preset/web/index.d.ts.map +1 -0
- package/dist/types/preset/web/providers/index.d.ts +36 -0
- package/dist/types/preset/web/providers/index.d.ts.map +1 -0
- package/dist/types/tokens.d.ts +83 -0
- package/dist/types/tokens.d.ts.map +1 -0
- package/dist/types/utils/axios/index.d.ts +5 -0
- package/dist/types/utils/axios/index.d.ts.map +1 -0
- package/dist/types/utils/axios/middleware/cookie.d.ts +9 -0
- package/dist/types/utils/axios/middleware/cookie.d.ts.map +1 -0
- package/dist/types/utils/axios/middleware/log.d.ts +28 -0
- package/dist/types/utils/axios/middleware/log.d.ts.map +1 -0
- package/dist/types/utils/axios/sauce/index.d.ts +43 -0
- package/dist/types/utils/axios/sauce/index.d.ts.map +1 -0
- package/dist/types/utils/axios/utils/index.d.ts +10 -0
- package/dist/types/utils/axios/utils/index.d.ts.map +1 -0
- package/dist/types/utils/express/handler/health-check.d.ts +7 -0
- package/dist/types/utils/express/handler/health-check.d.ts.map +1 -0
- package/dist/types/utils/express/index.d.ts +3 -0
- package/dist/types/utils/express/index.d.ts.map +1 -0
- package/dist/types/utils/express/utils/index.d.ts +8 -0
- package/dist/types/utils/express/utils/index.d.ts.map +1 -0
- package/dist/types/utils/function.d.ts +29 -0
- package/dist/types/utils/function.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +3 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/{utils/number.d.ts → dist/types/utils/math.d.ts} +1 -0
- package/dist/types/utils/math.d.ts.map +1 -0
- package/dist/types/utils/react/error-handlers/index.d.ts +42 -0
- package/dist/types/utils/react/error-handlers/index.d.ts.map +1 -0
- package/dist/types/utils/react/index.d.ts +3 -0
- package/dist/types/utils/react/index.d.ts.map +1 -0
- package/dist/types/utils/redux/index.d.ts +4 -0
- package/dist/types/utils/redux/index.d.ts.map +1 -0
- package/dist/types/utils/redux/remote-data.d.ts +86 -0
- package/dist/types/utils/redux/remote-data.d.ts.map +1 -0
- package/dist/types/utils/redux-saga/index.d.ts +4 -0
- package/dist/types/utils/redux-saga/index.d.ts.map +1 -0
- package/dist/types/utils/redux-saga/middleware.d.ts +9 -0
- package/dist/types/utils/redux-saga/middleware.d.ts.map +1 -0
- package/{utils → dist/types/utils}/redux-saga/take-chain.d.ts +3 -0
- package/dist/types/utils/redux-saga/take-chain.d.ts.map +1 -0
- package/dist/types/utils/redux-saga/types.d.ts +37 -0
- package/dist/types/utils/redux-saga/types.d.ts.map +1 -0
- package/dist/types/utils/ssr/index.d.ts +42 -0
- package/dist/types/utils/ssr/index.d.ts.map +1 -0
- package/dist/types/utils/web/analytics/data-layer.d.ts +6 -0
- package/dist/types/utils/web/analytics/data-layer.d.ts.map +1 -0
- package/dist/types/utils/web/analytics/index.d.ts +3 -0
- package/dist/types/utils/web/analytics/index.d.ts.map +1 -0
- package/dist/types/utils/web/analytics/oko.d.ts +7 -0
- package/dist/types/utils/web/analytics/oko.d.ts.map +1 -0
- package/dist/types/utils/web/storage/index.d.ts +14 -0
- package/dist/types/utils/web/storage/index.d.ts.map +1 -0
- package/dist/types/utils/webpack/env/index.d.ts +19 -0
- package/dist/types/utils/webpack/env/index.d.ts.map +1 -0
- package/dist/types/utils/webpack/env/types.d.ts +12 -0
- package/dist/types/utils/webpack/env/types.d.ts.map +1 -0
- package/dist/types/utils/webpack/env/utils.d.ts +16 -0
- package/dist/types/utils/webpack/env/utils.d.ts.map +1 -0
- package/dist/types/utils/webpack/index.d.ts +7 -0
- package/dist/types/utils/webpack/index.d.ts.map +1 -0
- package/{utils → dist/types/utils}/webpack/module-federation/index.d.ts +10 -3
- package/dist/types/utils/webpack/module-federation/index.d.ts.map +1 -0
- package/{utils → dist/types/utils}/webpack/module-federation/types.d.ts +12 -3
- package/dist/types/utils/webpack/module-federation/types.d.ts.map +1 -0
- package/{utils → dist/types/utils}/webpack/module-federation/utils.d.ts +7 -0
- package/dist/types/utils/webpack/module-federation/utils.d.ts.map +1 -0
- package/http/package.json +6 -0
- package/log/package.json +6 -0
- package/package.json +232 -48
- package/preset/isomorphic/package.json +6 -0
- package/preset/isomorphic/providers/package.json +6 -0
- package/preset/isomorphic/utils/package.json +6 -0
- package/preset/node/handler/providers/package.json +6 -0
- package/preset/node/handler/utils/package.json +6 -0
- package/preset/node/node/providers/package.json +6 -0
- package/preset/node/node/utils/package.json +6 -0
- package/preset/node/package.json +6 -0
- package/preset/web/package.json +6 -0
- package/preset/web/providers/package.json +6 -0
- package/src/cache/index.ts +1 -0
- package/src/cache/types.ts +34 -0
- package/src/config/base.ts +18 -0
- package/src/config/index.ts +3 -0
- package/src/config/source.ts +23 -0
- package/src/config/types.ts +25 -0
- package/src/di/__test__/application.test.ts +258 -0
- package/src/di/__test__/container.test.ts +103 -0
- package/src/di/__test__/errors.test.ts +56 -0
- package/src/di/__test__/preset.test.ts +23 -0
- package/src/di/__test__/token.test.ts +25 -0
- package/src/di/application.ts +126 -0
- package/src/di/container.ts +60 -0
- package/src/di/errors.ts +59 -0
- package/{di/index.d.ts → src/di/index.ts} +2 -2
- package/src/di/preset.ts +32 -0
- package/src/di/token.ts +41 -0
- package/src/di/types.ts +105 -0
- package/src/http/__test__/errors.test.ts +35 -0
- package/src/http/errors.ts +42 -0
- package/src/http/index.ts +14 -0
- package/src/http/types.ts +8 -0
- package/src/log/__test__/errors.test.ts +13 -0
- package/src/log/__test__/logger.test.ts +24 -0
- package/src/log/errors.ts +33 -0
- package/src/log/handler/pino.ts +27 -0
- package/src/log/handler/sentry.ts +57 -0
- package/src/log/index.ts +12 -0
- package/src/log/logger.ts +30 -0
- package/src/log/types.ts +76 -0
- package/src/preset/isomorphic/constants.ts +7 -0
- package/src/preset/isomorphic/index.ts +7 -0
- package/src/preset/isomorphic/providers/index.ts +40 -0
- package/src/preset/isomorphic/types.ts +37 -0
- package/src/preset/isomorphic/utils/__test__/index.test.ts +541 -0
- package/src/preset/isomorphic/utils/index.ts +349 -0
- package/src/preset/node/handler/index.ts +46 -0
- package/src/preset/node/handler/providers/index.tsx +214 -0
- package/src/preset/node/handler/utils/index.tsx +110 -0
- package/src/preset/node/index.ts +3 -0
- package/src/preset/node/node/index.ts +73 -0
- package/src/preset/node/node/providers/index.ts +434 -0
- package/src/preset/node/node/utils/http-client/__test__/index.test.ts +232 -0
- package/src/preset/node/node/utils/http-client/index.ts +129 -0
- package/src/preset/node/node/utils/http-server/index.ts +17 -0
- package/src/preset/node/node/utils/index.ts +2 -0
- package/src/preset/node/types.ts +10 -0
- package/src/preset/web/index.ts +40 -0
- package/src/preset/web/providers/index.ts +108 -0
- package/src/tokens.ts +108 -0
- package/src/utils/axios/index.ts +12 -0
- package/src/utils/axios/middleware/__test__/cookie.test.ts +94 -0
- package/src/utils/axios/middleware/__test__/log.test.ts +121 -0
- package/src/utils/axios/middleware/cookie.ts +26 -0
- package/src/utils/axios/middleware/log.ts +52 -0
- package/src/utils/axios/sauce/index.ts +76 -0
- package/src/utils/axios/utils/__test__/index.test.ts +89 -0
- package/src/utils/axios/utils/index.ts +26 -0
- package/src/utils/express/handler/health-check.ts +13 -0
- package/src/utils/express/index.ts +2 -0
- package/src/utils/express/utils/index.ts +18 -0
- package/src/utils/function.ts +57 -0
- package/src/utils/index.ts +2 -0
- package/src/utils/math.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 +63 -0
- package/src/utils/react/error-handlers/index.tsx +68 -0
- package/src/utils/react/index.ts +3 -0
- package/src/utils/redux/__test__/remote-data.test.ts +172 -0
- package/src/utils/redux/index.ts +4 -0
- package/src/utils/redux/remote-data.ts +138 -0
- package/src/utils/redux-saga/__test__/take-chain.test.ts +141 -0
- package/src/utils/redux-saga/index.ts +3 -0
- package/src/utils/redux-saga/middleware.ts +168 -0
- package/src/utils/redux-saga/take-chain.ts +67 -0
- package/src/utils/redux-saga/types.ts +43 -0
- package/src/utils/ssr/index.tsx +78 -0
- package/src/utils/web/analytics/__test__/data-layer.test.ts +50 -0
- package/src/utils/web/analytics/__test__/oko.test.ts +50 -0
- package/src/utils/web/analytics/data-layer.ts +12 -0
- package/src/utils/web/analytics/index.ts +2 -0
- package/src/utils/web/analytics/oko.ts +14 -0
- package/src/utils/web/storage/index.ts +84 -0
- package/src/utils/webpack/env/index.ts +91 -0
- package/src/utils/webpack/env/types.ts +14 -0
- package/src/utils/webpack/env/utils.ts +53 -0
- package/src/utils/webpack/index.ts +7 -0
- package/src/utils/webpack/module-federation/__test__/__snapshots__/utils.test.ts.snap +124 -0
- package/src/utils/webpack/module-federation/__test__/index.test.ts +311 -0
- package/src/utils/webpack/module-federation/__test__/utils.test.ts +28 -0
- package/src/utils/webpack/module-federation/index.ts +102 -0
- package/src/utils/webpack/module-federation/types.ts +54 -0
- package/src/utils/webpack/module-federation/utils.ts +104 -0
- package/utils/axios/package.json +6 -0
- package/utils/express/package.json +6 -0
- package/utils/package.json +6 -0
- package/utils/react/package.json +6 -0
- package/utils/redux/package.json +6 -0
- package/utils/redux-saga/package.json +6 -0
- package/utils/ssr/package.json +6 -0
- package/utils/web/analytics/package.json +6 -0
- package/utils/webpack/package.json +6 -0
- package/cache/types.d.ts +0 -7
- package/cache/types.js +0 -3
- package/cache/types.js.map +0 -1
- package/config/base.js +0 -20
- package/config/base.js.map +0 -1
- package/config/browser.d.ts +0 -6
- package/config/browser.js +0 -13
- package/config/browser.js.map +0 -1
- package/config/node.d.ts +0 -6
- package/config/node.js +0 -19
- package/config/node.js.map +0 -1
- package/config/types.d.ts +0 -7
- package/config/types.js +0 -3
- package/config/types.js.map +0 -1
- package/config/utils.d.ts +0 -5
- package/config/utils.js +0 -12
- package/config/utils.js.map +0 -1
- package/di/application.js +0 -71
- package/di/application.js.map +0 -1
- package/di/container.js +0 -49
- package/di/container.js.map +0 -1
- package/di/errors.d.ts +0 -21
- package/di/errors.js +0 -33
- package/di/errors.js.map +0 -1
- package/di/index.js +0 -16
- package/di/index.js.map +0 -1
- package/di/preset.d.ts +0 -9
- package/di/preset.js +0 -25
- package/di/preset.js.map +0 -1
- package/di/token.js +0 -17
- package/di/token.js.map +0 -1
- package/di/types.d.ts +0 -32
- package/di/types.js +0 -3
- package/di/types.js.map +0 -1
- package/error-tracker/browser.d.ts +0 -8
- package/error-tracker/browser.js +0 -40
- package/error-tracker/browser.js.map +0 -1
- package/error-tracker/node.d.ts +0 -8
- package/error-tracker/node.js +0 -40
- package/error-tracker/node.js.map +0 -1
- package/error-tracker/types.d.ts +0 -18
- package/error-tracker/types.js +0 -3
- package/error-tracker/types.js.map +0 -1
- package/error-tracker/utils.d.ts +0 -12
- package/error-tracker/utils.js +0 -19
- package/error-tracker/utils.js.map +0 -1
- package/http-client/middleware/cookie.d.ts +0 -19
- package/http-client/middleware/cookie.js +0 -62
- package/http-client/middleware/cookie.js.map +0 -1
- package/http-client/middleware/tracing.js +0 -67
- package/http-client/middleware/tracing.js.map +0 -1
- package/http-client/sauce/index.d.ts +0 -27
- package/http-client/sauce/index.js +0 -33
- package/http-client/sauce/index.js.map +0 -1
- package/http-client/types.d.ts +0 -6
- package/http-client/types.js +0 -3
- package/http-client/types.js.map +0 -1
- package/http-client/utils.d.ts +0 -9
- package/http-client/utils.js +0 -20
- package/http-client/utils.js.map +0 -1
- package/http-server/constants.d.ts +0 -4
- package/http-server/constants.js +0 -8
- package/http-server/constants.js.map +0 -1
- package/http-server/handler/health-check.d.ts +0 -6
- package/http-server/handler/health-check.js +0 -15
- package/http-server/handler/health-check.js.map +0 -1
- package/http-server/middleware/logging.d.ts +0 -10
- package/http-server/middleware/logging.js +0 -31
- package/http-server/middleware/logging.js.map +0 -1
- package/http-server/middleware/metrics.d.ts +0 -23
- package/http-server/middleware/metrics.js +0 -60
- package/http-server/middleware/metrics.js.map +0 -1
- package/http-server/middleware/tracing.d.ts +0 -14
- package/http-server/middleware/tracing.js +0 -51
- package/http-server/middleware/tracing.js.map +0 -1
- package/http-server/template/index.d.ts +0 -1
- package/http-server/template/index.js +0 -36
- package/http-server/template/index.js.map +0 -1
- package/http-server/types.d.ts +0 -33
- package/http-server/types.js +0 -3
- package/http-server/types.js.map +0 -1
- package/http-server/utils.d.ts +0 -30
- package/http-server/utils.js +0 -100
- package/http-server/utils.js.map +0 -1
- package/logger/handler/console.d.ts +0 -8
- package/logger/handler/console.js +0 -36
- package/logger/handler/console.js.map +0 -1
- package/logger/handler/sentry.d.ts +0 -8
- package/logger/handler/sentry.js +0 -36
- package/logger/handler/sentry.js.map +0 -1
- package/logger/index.js +0 -31
- package/logger/index.js.map +0 -1
- package/logger/types.d.ts +0 -24
- package/logger/types.js +0 -3
- package/logger/types.js.map +0 -1
- package/metrics/constants.d.ts +0 -4
- package/metrics/constants.js +0 -8
- package/metrics/constants.js.map +0 -1
- package/metrics/node.d.ts +0 -18
- package/metrics/node.js +0 -74
- package/metrics/node.js.map +0 -1
- package/preset/node/index.d.ts +0 -19
- package/preset/node/index.js +0 -121
- package/preset/node/index.js.map +0 -1
- package/preset/node/response.d.ts +0 -15
- package/preset/node/response.js +0 -77
- package/preset/node/response.js.map +0 -1
- package/saga-runner/index.d.ts +0 -8
- package/saga-runner/index.js +0 -79
- package/saga-runner/index.js.map +0 -1
- package/saga-runner/types.d.ts +0 -10
- package/saga-runner/types.js +0 -3
- package/saga-runner/types.js.map +0 -1
- package/tokens.d.ts +0 -48
- package/tokens.js +0 -49
- package/tokens.js.map +0 -1
- package/tracing/utils.d.ts +0 -9
- package/tracing/utils.js +0 -22
- package/tracing/utils.js.map +0 -1
- package/utils/browser/analytics/data-layer.d.ts +0 -5
- package/utils/browser/analytics/data-layer.js +0 -15
- package/utils/browser/analytics/data-layer.js.map +0 -1
- package/utils/browser/analytics/oko.d.ts +0 -12
- package/utils/browser/analytics/oko.js +0 -39
- package/utils/browser/analytics/oko.js.map +0 -1
- package/utils/browser/storage/index.d.ts +0 -4
- package/utils/browser/storage/index.js +0 -63
- package/utils/browser/storage/index.js.map +0 -1
- package/utils/number.js.map +0 -1
- package/utils/react/error-handlers/index.d.ts +0 -38
- package/utils/react/error-handlers/index.js +0 -47
- package/utils/react/error-handlers/index.js.map +0 -1
- package/utils/redux/remote-data.d.ts +0 -23
- package/utils/redux/remote-data.js +0 -28
- package/utils/redux/remote-data.js.map +0 -1
- package/utils/redux-saga/take-chain.js +0 -56
- package/utils/redux-saga/take-chain.js.map +0 -1
- package/utils/webpack/module-federation/index.js +0 -74
- package/utils/webpack/module-federation/index.js.map +0 -1
- package/utils/webpack/module-federation/types.js +0 -3
- package/utils/webpack/module-federation/types.js.map +0 -1
- package/utils/webpack/module-federation/utils.js +0 -36
- package/utils/webpack/module-federation/utils.js.map +0 -1
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { BrowserClient, Hub, defaultIntegrations, defaultStackParser, makeFetchTransport } from '@sentry/browser';
|
|
2
|
+
import { createConfigSource } from "./../../../config/index.js";
|
|
3
|
+
import { createLogger } from "./../../../log/index.js";
|
|
4
|
+
import { KnownToken } from "../../../tokens.js";
|
|
5
|
+
import { createSentryHandler } from "../../../log/handler/sentry.js";
|
|
6
|
+
import { SsrBridge } from "./../../../utils/ssr/index.js";
|
|
7
|
+
import { HttpApiHostPool, HttpStatus } from "./../../isomorphic/utils/index.js";
|
|
8
|
+
import { create } from 'middleware-axios';
|
|
9
|
+
import { logMiddleware } from "./../../../utils/axios/index.js";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Провайдер источника конфигурации.
|
|
13
|
+
* @return Источник конфигурации.
|
|
14
|
+
*/
|
|
15
|
+
export function provideConfigSource() {
|
|
16
|
+
// ВАЖНО: по умолчанию рассчитываем на process.env который предоставляется сборщиком (например webpack)
|
|
17
|
+
if (typeof process !== 'undefined' && process.env) {
|
|
18
|
+
return createConfigSource(process.env);
|
|
19
|
+
}
|
|
20
|
+
return createConfigSource({});
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Провайдер Logger'а.
|
|
25
|
+
* @param resolve Функция для получения зависимости по токену.
|
|
26
|
+
* @return Logger.
|
|
27
|
+
*/
|
|
28
|
+
export function provideLogger(resolve) {
|
|
29
|
+
const source = resolve(KnownToken.Config.source);
|
|
30
|
+
const client = new BrowserClient({
|
|
31
|
+
transport: makeFetchTransport,
|
|
32
|
+
stackParser: defaultStackParser,
|
|
33
|
+
dsn: source.require('PUBLIC_SENTRY_DSN'),
|
|
34
|
+
release: source.require('SENTRY_RELEASE'),
|
|
35
|
+
environment: source.require('PUBLIC_SENTRY_ENVIRONMENT'),
|
|
36
|
+
integrations: [...defaultIntegrations]
|
|
37
|
+
});
|
|
38
|
+
const hub = new Hub(client);
|
|
39
|
+
hub.setTag('url', window.location.href);
|
|
40
|
+
const logger = createLogger();
|
|
41
|
+
logger.subscribe(createSentryHandler(hub));
|
|
42
|
+
return logger;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Провайдер клиентской части "моста" для передачи данных между сервером и клиентом.
|
|
47
|
+
* @param resolve Функция для получения зависимости по токену.
|
|
48
|
+
* @return Клиентская часть "моста".
|
|
49
|
+
*/
|
|
50
|
+
export function provideBridgeClientSide(resolve) {
|
|
51
|
+
const config = resolve(KnownToken.Config.base);
|
|
52
|
+
return SsrBridge.resolve(config.appName);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Провайдер известных http-хостов.
|
|
57
|
+
* @param resolve Функция для получения зависимости по токену.
|
|
58
|
+
* @return Пул известных http-хостов.
|
|
59
|
+
*/
|
|
60
|
+
export function provideKnownHttpApiHosts(resolve) {
|
|
61
|
+
const source = resolve(KnownToken.Config.source);
|
|
62
|
+
return new HttpApiHostPool({
|
|
63
|
+
ilium: 'PUBLIC_API_URL_ILIUM',
|
|
64
|
+
simaV3: 'PUBLIC_API_URL_SIMALAND_V3',
|
|
65
|
+
simaV4: 'PUBLIC_API_URL_SIMALAND_V4',
|
|
66
|
+
simaV6: 'PUBLIC_API_URL_SIMALAND_V6'
|
|
67
|
+
}, source);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Провайдер фабрики http-клиентов.
|
|
72
|
+
* @param resolve Функция для получения зависимости по токену.
|
|
73
|
+
* @return Фабрика.
|
|
74
|
+
*/
|
|
75
|
+
export function provideHttpClientFactory(resolve) {
|
|
76
|
+
const logHandler = resolve(KnownToken.Http.Client.Middleware.Log.handler);
|
|
77
|
+
return (config = {}) => {
|
|
78
|
+
// @todo убрать as any
|
|
79
|
+
const client = create(config);
|
|
80
|
+
client.use(HttpStatus.axiosMiddleware());
|
|
81
|
+
client.use(logMiddleware(logHandler));
|
|
82
|
+
return client;
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["BrowserClient","Hub","defaultIntegrations","defaultStackParser","makeFetchTransport","createConfigSource","createLogger","KnownToken","createSentryHandler","SsrBridge","HttpApiHostPool","HttpStatus","create","logMiddleware","provideConfigSource","process","env","provideLogger","resolve","source","Config","client","transport","stackParser","dsn","require","release","environment","integrations","hub","setTag","window","location","href","logger","subscribe","provideBridgeClientSide","config","base","appName","provideKnownHttpApiHosts","ilium","simaV3","simaV4","simaV6","provideHttpClientFactory","logHandler","Http","Client","Middleware","Log","handler","use","axiosMiddleware"],"sources":["../../../../../src/preset/web/providers/index.ts"],"sourcesContent":["import {\n BrowserClient,\n Hub,\n defaultIntegrations,\n defaultStackParser,\n makeFetchTransport,\n} from '@sentry/browser';\nimport { ConfigSource, createConfigSource } from '../../../config';\nimport { Resolve } from '../../../di';\nimport { Logger, createLogger } from '../../../log';\nimport { KnownToken } from '../../../tokens';\nimport { createSentryHandler } from '../../../log/handler/sentry';\nimport { BridgeClientSide, SsrBridge } from '../../../utils/ssr';\nimport { KnownHttpApiKey, StrictMap } from '../../isomorphic/types';\nimport { HttpApiHostPool, HttpStatus } from '../../isomorphic/utils';\nimport { CreateAxiosDefaults } from 'axios';\nimport { create } from 'middleware-axios';\nimport { logMiddleware } from '../../../utils/axios';\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\n/**\n * Провайдер Logger'а.\n * @param resolve Функция для получения зависимости по токену.\n * @return Logger.\n */\nexport function provideLogger(resolve: Resolve): Logger {\n const source = resolve(KnownToken.Config.source);\n\n const client = new BrowserClient({\n transport: makeFetchTransport,\n stackParser: defaultStackParser,\n dsn: source.require('PUBLIC_SENTRY_DSN'),\n release: source.require('SENTRY_RELEASE'),\n environment: source.require('PUBLIC_SENTRY_ENVIRONMENT'),\n integrations: [...defaultIntegrations],\n });\n\n const hub = new Hub(client);\n\n hub.setTag('url', window.location.href);\n\n const logger = createLogger();\n\n logger.subscribe(createSentryHandler(hub));\n\n return logger;\n}\n\n/**\n * Провайдер клиентской части \"моста\" для передачи данных между сервером и клиентом.\n * @param resolve Функция для получения зависимости по токену.\n * @return Клиентская часть \"моста\".\n */\nexport function provideBridgeClientSide(resolve: Resolve): BridgeClientSide<unknown> {\n const config = resolve(KnownToken.Config.base);\n\n return SsrBridge.resolve(config.appName);\n}\n\n/**\n * Провайдер известных http-хостов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Пул известных http-хостов.\n */\nexport function provideKnownHttpApiHosts(resolve: Resolve): StrictMap<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 },\n source,\n );\n}\n\n/**\n * Провайдер фабрики http-клиентов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Фабрика.\n */\nexport function provideHttpClientFactory(resolve: Resolve) {\n const logHandler = resolve(KnownToken.Http.Client.Middleware.Log.handler);\n\n return (config: CreateAxiosDefaults = {}) => {\n // @todo убрать as any\n const client = create(config as any);\n\n client.use(HttpStatus.axiosMiddleware());\n client.use(logMiddleware(logHandler));\n\n return client;\n };\n}\n"],"mappings":"AAAA,SACEA,aAAa,EACbC,GAAG,EACHC,mBAAmB,EACnBC,kBAAkB,EAClBC,kBAAkB,QACb,iBAAiB;AACxB,SAAuBC,kBAAkB,QAAQ,4BAAiB;AAElE,SAAiBC,YAAY,QAAQ,yBAAc;AACnD,SAASC,UAAU,QAAQ,oBAAiB;AAC5C,SAASC,mBAAmB,QAAQ,gCAA6B;AACjE,SAA2BC,SAAS,QAAQ,+BAAoB;AAEhE,SAASC,eAAe,EAAEC,UAAU,QAAQ,mCAAwB;AAEpE,SAASC,MAAM,QAAQ,kBAAkB;AACzC,SAASC,aAAa,QAAQ,iCAAsB;;AAEpD;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAAA,EAAiB;EAClD;EACA,IAAI,OAAOC,OAAO,KAAK,WAAW,IAAIA,OAAO,CAACC,GAAG,EAAE;IACjD,OAAOX,kBAAkB,CAACU,OAAO,CAACC,GAAG,CAAC;EACxC;EAEA,OAAOX,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASY,aAAaA,CAACC,OAAgB,EAAU;EACtD,MAAMC,MAAM,GAAGD,OAAO,CAACX,UAAU,CAACa,MAAM,CAACD,MAAM,CAAC;EAEhD,MAAME,MAAM,GAAG,IAAIrB,aAAa,CAAC;IAC/BsB,SAAS,EAAElB,kBAAkB;IAC7BmB,WAAW,EAAEpB,kBAAkB;IAC/BqB,GAAG,EAAEL,MAAM,CAACM,OAAO,CAAC,mBAAmB,CAAC;IACxCC,OAAO,EAAEP,MAAM,CAACM,OAAO,CAAC,gBAAgB,CAAC;IACzCE,WAAW,EAAER,MAAM,CAACM,OAAO,CAAC,2BAA2B,CAAC;IACxDG,YAAY,EAAE,CAAC,GAAG1B,mBAAmB;EACvC,CAAC,CAAC;EAEF,MAAM2B,GAAG,GAAG,IAAI5B,GAAG,CAACoB,MAAM,CAAC;EAE3BQ,GAAG,CAACC,MAAM,CAAC,KAAK,EAAEC,MAAM,CAACC,QAAQ,CAACC,IAAI,CAAC;EAEvC,MAAMC,MAAM,GAAG5B,YAAY,CAAC,CAAC;EAE7B4B,MAAM,CAACC,SAAS,CAAC3B,mBAAmB,CAACqB,GAAG,CAAC,CAAC;EAE1C,OAAOK,MAAM;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,uBAAuBA,CAAClB,OAAgB,EAA6B;EACnF,MAAMmB,MAAM,GAAGnB,OAAO,CAACX,UAAU,CAACa,MAAM,CAACkB,IAAI,CAAC;EAE9C,OAAO7B,SAAS,CAACS,OAAO,CAACmB,MAAM,CAACE,OAAO,CAAC;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,wBAAwBA,CAACtB,OAAgB,EAA8B;EACrF,MAAMC,MAAM,GAAGD,OAAO,CAACX,UAAU,CAACa,MAAM,CAACD,MAAM,CAAC;EAEhD,OAAO,IAAIT,eAAe,CACxB;IACE+B,KAAK,EAAE,sBAAsB;IAC7BC,MAAM,EAAE,4BAA4B;IACpCC,MAAM,EAAE,4BAA4B;IACpCC,MAAM,EAAE;EACV,CAAC,EACDzB,MACF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS0B,wBAAwBA,CAAC3B,OAAgB,EAAE;EACzD,MAAM4B,UAAU,GAAG5B,OAAO,CAACX,UAAU,CAACwC,IAAI,CAACC,MAAM,CAACC,UAAU,CAACC,GAAG,CAACC,OAAO,CAAC;EAEzE,OAAO,CAACd,MAA2B,GAAG,CAAC,CAAC,KAAK;IAC3C;IACA,MAAMhB,MAAM,GAAGT,MAAM,CAACyB,MAAa,CAAC;IAEpChB,MAAM,CAAC+B,GAAG,CAACzC,UAAU,CAAC0C,eAAe,CAAC,CAAC,CAAC;IACxChC,MAAM,CAAC+B,GAAG,CAACvC,aAAa,CAACiC,UAAU,CAAC,CAAC;IAErC,OAAOzB,MAAM;EACf,CAAC;AACH"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { createToken } from "./di/index.js";
|
|
2
|
+
|
|
3
|
+
// ВАЖНО: чтобы токенами можно было пользоваться независимо от среды исполнения - импортировать надо только типы
|
|
4
|
+
|
|
5
|
+
export const KnownToken = {
|
|
6
|
+
// config
|
|
7
|
+
Config: {
|
|
8
|
+
source: createToken('config/source'),
|
|
9
|
+
base: createToken('config/base')
|
|
10
|
+
},
|
|
11
|
+
// cache
|
|
12
|
+
cache: createToken('cache'),
|
|
13
|
+
// log
|
|
14
|
+
logger: createToken('logger'),
|
|
15
|
+
// saga runner
|
|
16
|
+
// @todo переименовать в Redux.Middleware.saga?
|
|
17
|
+
sagaMiddleware: createToken('saga-middleware'),
|
|
18
|
+
// tracing
|
|
19
|
+
Tracing: {
|
|
20
|
+
tracer: createToken('tracing/tracer'),
|
|
21
|
+
spanExporter: createToken('tracing/span-exporter'),
|
|
22
|
+
tracerProvider: createToken('tracing/tracer-provider'),
|
|
23
|
+
// @todo перенести в KnownToken.Telemetry.Resource?
|
|
24
|
+
tracerProviderResource: createToken('tracing/resource')
|
|
25
|
+
},
|
|
26
|
+
// metrics
|
|
27
|
+
Metrics: {
|
|
28
|
+
httpApp: createToken('metrics/http-app')
|
|
29
|
+
},
|
|
30
|
+
// http
|
|
31
|
+
Http: {
|
|
32
|
+
Api: {
|
|
33
|
+
knownHosts: createToken('http/api/known-hosts')
|
|
34
|
+
},
|
|
35
|
+
// @todo переименовать в Axios?
|
|
36
|
+
Client: {
|
|
37
|
+
factory: createToken('client/factory'),
|
|
38
|
+
Middleware: {
|
|
39
|
+
Log: {
|
|
40
|
+
handler: createToken('log/handler')
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
// @todo переименовать в Express?
|
|
45
|
+
Server: {
|
|
46
|
+
factory: createToken('server/factory'),
|
|
47
|
+
Handlers: {
|
|
48
|
+
healthCheck: createToken('handler/health-check')
|
|
49
|
+
},
|
|
50
|
+
Middleware: {
|
|
51
|
+
request: createToken('middleware/request'),
|
|
52
|
+
log: createToken('middleware/log'),
|
|
53
|
+
tracing: createToken('middleware/tracing'),
|
|
54
|
+
metrics: createToken('middleware/metrics'),
|
|
55
|
+
error: createToken('middleware/error')
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
// @todo переименовать в ExpressHandler?
|
|
59
|
+
Handler: {
|
|
60
|
+
main: createToken('handler/main'),
|
|
61
|
+
context: createToken('handler/context'),
|
|
62
|
+
Request: {
|
|
63
|
+
specificParams: createToken('request/specific-params')
|
|
64
|
+
},
|
|
65
|
+
Response: {
|
|
66
|
+
specificExtras: createToken('response/specific-extras')
|
|
67
|
+
},
|
|
68
|
+
Page: {
|
|
69
|
+
assets: createToken('page/assets'),
|
|
70
|
+
helmet: createToken('page/helmet'),
|
|
71
|
+
render: createToken('page/render')
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
// SSR
|
|
76
|
+
SsrBridge: {
|
|
77
|
+
clientSide: createToken('ssr-bridge/client-side'),
|
|
78
|
+
serverSide: createToken('ssr-bridge/server-side')
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.js","names":["createToken","KnownToken","Config","source","base","cache","logger","sagaMiddleware","Tracing","tracer","spanExporter","tracerProvider","tracerProviderResource","Metrics","httpApp","Http","Api","knownHosts","Client","factory","Middleware","Log","handler","Server","Handlers","healthCheck","request","log","tracing","metrics","error","Handler","main","context","Request","specificParams","Response","specificExtras","Page","assets","helmet","render","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 { SagaExtendedMiddleware } from './utils/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 } from 'react';\nimport type { KnownHttpApiKey, PageAssets, StrictMap } from './preset/isomorphic/types';\nimport type { HandlerContext } from './preset/node/types';\nimport type { SpecificExtras } from './preset/node/handler/utils';\nimport type { CreateAxiosDefaults } from 'axios';\nimport type { AxiosInstanceWrapper } from 'middleware-axios';\n\nexport const KnownToken = {\n // config\n Config: {\n source: createToken<ConfigSource>('config/source'),\n base: createToken<BaseConfig>('config/base'),\n },\n\n // cache\n cache: createToken<Cache>('cache'),\n\n // log\n logger: createToken<Logger>('logger'),\n\n // saga runner\n // @todo переименовать в Redux.Middleware.saga?\n sagaMiddleware: createToken<SagaExtendedMiddleware>('saga-middleware'),\n\n // tracing\n Tracing: {\n tracer: createToken<Tracer>('tracing/tracer'),\n spanExporter: createToken<SpanExporter>('tracing/span-exporter'),\n tracerProvider: createToken<BasicTracerProvider>('tracing/tracer-provider'),\n\n // @todo перенести в KnownToken.Telemetry.Resource?\n tracerProviderResource: createToken<Resource>('tracing/resource'),\n },\n\n // metrics\n Metrics: {\n httpApp: createToken<express.Application>('metrics/http-app'),\n },\n\n // http\n Http: {\n Api: {\n knownHosts: createToken<StrictMap<KnownHttpApiKey>>('http/api/known-hosts'),\n },\n\n // @todo переименовать в Axios?\n Client: {\n factory:\n createToken<(config?: CreateAxiosDefaults) => AxiosInstanceWrapper>('client/factory'),\n Middleware: {\n Log: {\n handler: createToken<LogMiddlewareHandlerInit>('log/handler'),\n },\n },\n },\n\n // @todo переименовать в Express?\n Server: {\n factory: createToken<() => express.Application>('server/factory'),\n Handlers: {\n healthCheck: createToken<express.Handler>('handler/health-check'),\n },\n Middleware: {\n request: createToken<express.Handler>('middleware/request'),\n log: createToken<express.Handler>('middleware/log'),\n tracing: createToken<express.Handler>('middleware/tracing'),\n metrics: createToken<express.Handler>('middleware/metrics'),\n error: createToken<express.ErrorRequestHandler>('middleware/error'),\n },\n },\n\n // @todo переименовать в ExpressHandler?\n Handler: {\n main: createToken<() => void>('handler/main'),\n context: createToken<HandlerContext>('handler/context'),\n Request: {\n specificParams: createToken<Record<string, unknown>>('request/specific-params'),\n },\n Response: {\n specificExtras: createToken<SpecificExtras>('response/specific-extras'),\n },\n Page: {\n assets: createToken<PageAssets | (() => PageAssets | Promise<PageAssets>)>('page/assets'),\n helmet: createToken<ElementType<{ children: ReactNode }>>('page/helmet'),\n render: createToken<() => JSX.Element | Promise<JSX.Element>>('page/render'),\n },\n },\n },\n\n // SSR\n SsrBridge: {\n clientSide: createToken<BridgeClientSide<unknown>>('ssr-bridge/client-side'),\n serverSide: createToken<BridgeServerSide>('ssr-bridge/server-side'),\n },\n} as const;\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,eAAM;;AAElC;;AAkBA,OAAO,MAAMC,UAAU,GAAG;EACxB;EACAC,MAAM,EAAE;IACNC,MAAM,EAAEH,WAAW,CAAe,eAAe,CAAC;IAClDI,IAAI,EAAEJ,WAAW,CAAa,aAAa;EAC7C,CAAC;EAED;EACAK,KAAK,EAAEL,WAAW,CAAQ,OAAO,CAAC;EAElC;EACAM,MAAM,EAAEN,WAAW,CAAS,QAAQ,CAAC;EAErC;EACA;EACAO,cAAc,EAAEP,WAAW,CAAyB,iBAAiB,CAAC;EAEtE;EACAQ,OAAO,EAAE;IACPC,MAAM,EAAET,WAAW,CAAS,gBAAgB,CAAC;IAC7CU,YAAY,EAAEV,WAAW,CAAe,uBAAuB,CAAC;IAChEW,cAAc,EAAEX,WAAW,CAAsB,yBAAyB,CAAC;IAE3E;IACAY,sBAAsB,EAAEZ,WAAW,CAAW,kBAAkB;EAClE,CAAC;EAED;EACAa,OAAO,EAAE;IACPC,OAAO,EAAEd,WAAW,CAAsB,kBAAkB;EAC9D,CAAC;EAED;EACAe,IAAI,EAAE;IACJC,GAAG,EAAE;MACHC,UAAU,EAAEjB,WAAW,CAA6B,sBAAsB;IAC5E,CAAC;IAED;IACAkB,MAAM,EAAE;MACNC,OAAO,EACLnB,WAAW,CAAyD,gBAAgB,CAAC;MACvFoB,UAAU,EAAE;QACVC,GAAG,EAAE;UACHC,OAAO,EAAEtB,WAAW,CAA2B,aAAa;QAC9D;MACF;IACF,CAAC;IAED;IACAuB,MAAM,EAAE;MACNJ,OAAO,EAAEnB,WAAW,CAA4B,gBAAgB,CAAC;MACjEwB,QAAQ,EAAE;QACRC,WAAW,EAAEzB,WAAW,CAAkB,sBAAsB;MAClE,CAAC;MACDoB,UAAU,EAAE;QACVM,OAAO,EAAE1B,WAAW,CAAkB,oBAAoB,CAAC;QAC3D2B,GAAG,EAAE3B,WAAW,CAAkB,gBAAgB,CAAC;QACnD4B,OAAO,EAAE5B,WAAW,CAAkB,oBAAoB,CAAC;QAC3D6B,OAAO,EAAE7B,WAAW,CAAkB,oBAAoB,CAAC;QAC3D8B,KAAK,EAAE9B,WAAW,CAA8B,kBAAkB;MACpE;IACF,CAAC;IAED;IACA+B,OAAO,EAAE;MACPC,IAAI,EAAEhC,WAAW,CAAa,cAAc,CAAC;MAC7CiC,OAAO,EAAEjC,WAAW,CAAiB,iBAAiB,CAAC;MACvDkC,OAAO,EAAE;QACPC,cAAc,EAAEnC,WAAW,CAA0B,yBAAyB;MAChF,CAAC;MACDoC,QAAQ,EAAE;QACRC,cAAc,EAAErC,WAAW,CAAiB,0BAA0B;MACxE,CAAC;MACDsC,IAAI,EAAE;QACJC,MAAM,EAAEvC,WAAW,CAAwD,aAAa,CAAC;QACzFwC,MAAM,EAAExC,WAAW,CAAuC,aAAa,CAAC;QACxEyC,MAAM,EAAEzC,WAAW,CAA2C,aAAa;MAC7E;IACF;EACF,CAAC;EAED;EACA0C,SAAS,EAAE;IACTC,UAAU,EAAE3C,WAAW,CAA4B,wBAAwB,CAAC;IAC5E4C,UAAU,EAAE5C,WAAW,CAAmB,wBAAwB;EACpE;AACF,CAAU"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["sauce","formatResultInfo","applyAxiosDefaults","logMiddleware","cookieMiddleware"],"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';\nexport { cookieMiddleware } from './middleware/cookie';\n"],"mappings":"AAAA,SAAyCA,KAAK,EAAEC,gBAAgB,QAAQ,kBAAS;AACjF,SAASC,kBAAkB,QAAQ,kBAAS;AAC5C,SAOEC,aAAa,QACR,qBAAkB;AACzB,SAASC,gBAAgB,QAAQ,wBAAqB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Возвращает новый middleware для работы с cookie на сервере.
|
|
3
|
+
* @param store Хранилище.
|
|
4
|
+
* @return Middleware.
|
|
5
|
+
*/
|
|
6
|
+
export function cookieMiddleware(store) {
|
|
7
|
+
return async (config, next) => {
|
|
8
|
+
const result = await next({
|
|
9
|
+
...config,
|
|
10
|
+
headers: {
|
|
11
|
+
...config.headers,
|
|
12
|
+
// @todo учитывать Domain, Path, Expires и тд
|
|
13
|
+
// @todo учитывать редиректы с куками
|
|
14
|
+
Cookie: store.getCookies()
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
if (result.headers['set-cookie']) {
|
|
18
|
+
result.headers['set-cookie'].forEach(item => store.setCookie(item));
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=cookie.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookie.js","names":["cookieMiddleware","store","config","next","result","headers","Cookie","getCookies","forEach","item","setCookie"],"sources":["../../../../../src/utils/axios/middleware/cookie.ts"],"sourcesContent":["import type { Middleware } from 'middleware-axios';\nimport type { CookieStore } from '../../../http';\n\n/**\n * Возвращает новый middleware для работы с cookie на сервере.\n * @param store Хранилище.\n * @return Middleware.\n */\nexport function cookieMiddleware(store: CookieStore): Middleware<any> {\n return async (config, next) => {\n const result = await next({\n ...config,\n headers: {\n ...config.headers,\n\n // @todo учитывать Domain, Path, Expires и тд\n // @todo учитывать редиректы с куками\n Cookie: store.getCookies(),\n },\n });\n\n if (result.headers['set-cookie']) {\n result.headers['set-cookie'].forEach(item => store.setCookie(item));\n }\n };\n}\n"],"mappings":"AAGA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,gBAAgBA,CAACC,KAAkB,EAAmB;EACpE,OAAO,OAAOC,MAAM,EAAEC,IAAI,KAAK;IAC7B,MAAMC,MAAM,GAAG,MAAMD,IAAI,CAAC;MACxB,GAAGD,MAAM;MACTG,OAAO,EAAE;QACP,GAAGH,MAAM,CAACG,OAAO;QAEjB;QACA;QACAC,MAAM,EAAEL,KAAK,CAACM,UAAU,CAAC;MAC3B;IACF,CAAC,CAAC;IAEF,IAAIH,MAAM,CAACC,OAAO,CAAC,YAAY,CAAC,EAAE;MAChCD,MAAM,CAACC,OAAO,CAAC,YAAY,CAAC,CAACG,OAAO,CAACC,IAAI,IAAIR,KAAK,CAACS,SAAS,CAACD,IAAI,CAAC,CAAC;IACrE;EACF,CAAC;AACH"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Возвращает новый middleware для логирования запросов.
|
|
3
|
+
* @param handlerInit Обработчик.
|
|
4
|
+
* @return Middleware.
|
|
5
|
+
*/
|
|
6
|
+
export function logMiddleware(handlerInit) {
|
|
7
|
+
return async function log(config, next, defaults) {
|
|
8
|
+
const shared = {
|
|
9
|
+
config,
|
|
10
|
+
defaults
|
|
11
|
+
};
|
|
12
|
+
const handler = typeof handlerInit === 'function' ? handlerInit(shared) : handlerInit;
|
|
13
|
+
try {
|
|
14
|
+
await handler.beforeRequest(shared);
|
|
15
|
+
const response = await next(config);
|
|
16
|
+
await handler.afterResponse({
|
|
17
|
+
...shared,
|
|
18
|
+
response
|
|
19
|
+
});
|
|
20
|
+
} catch (error) {
|
|
21
|
+
await handler.onCatch({
|
|
22
|
+
...shared,
|
|
23
|
+
error
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
// ВАЖНО: не скрываем ошибку, сообщаем остальному миру про нее
|
|
27
|
+
throw error;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=log.js.map
|
|
@@ -0,0 +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;AACA,OAAO,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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
import { safetyAsync } from "./../../index.js";
|
|
3
|
+
|
|
4
|
+
// @todo передавать заголовки ответа
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Обёртка над экземпляром axios.
|
|
8
|
+
* Все методы возвращают promise, который никогда переходят в состояние rejected.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Оборачивает экземпляр axios. Все методы обертки возвращают promise, которые никогда не попадают в состояние rejected.
|
|
13
|
+
* @param instance Экземпляр axios или AxiosInstanceWrapper.
|
|
14
|
+
* @return Обертка.
|
|
15
|
+
*/
|
|
16
|
+
export function sauce(instance) {
|
|
17
|
+
return {
|
|
18
|
+
request: safetyAsync(instance.request, formatResultInfo),
|
|
19
|
+
get: safetyAsync(instance.get, formatResultInfo),
|
|
20
|
+
delete: safetyAsync(instance.delete, formatResultInfo),
|
|
21
|
+
head: safetyAsync(instance.head, formatResultInfo),
|
|
22
|
+
options: safetyAsync(instance.options, formatResultInfo),
|
|
23
|
+
post: safetyAsync(instance.post, formatResultInfo),
|
|
24
|
+
put: safetyAsync(instance.put, formatResultInfo),
|
|
25
|
+
patch: safetyAsync(instance.patch, formatResultInfo)
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Функция форматирования результата, используемая в sauce.
|
|
31
|
+
* @param info Результат вызова метода экземпляра axios.
|
|
32
|
+
* @return Отформатированный ответ.
|
|
33
|
+
*/
|
|
34
|
+
export function formatResultInfo(info) {
|
|
35
|
+
if (info.ok) {
|
|
36
|
+
return {
|
|
37
|
+
ok: true,
|
|
38
|
+
data: info.result.data,
|
|
39
|
+
status: info.result.status
|
|
40
|
+
};
|
|
41
|
+
} else {
|
|
42
|
+
return {
|
|
43
|
+
ok: false,
|
|
44
|
+
data: axios.isAxiosError(info.error) ? info.error.response?.data : undefined,
|
|
45
|
+
status: axios.isAxiosError(info.error) ? info.error.response?.status : undefined,
|
|
46
|
+
error: info.error
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["axios","safetyAsync","sauce","instance","request","formatResultInfo","get","delete","head","options","post","put","patch","info","ok","data","result","status","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,OAAOA,KAAK,MAAwC,OAAO;AAC3D,SAASC,WAAW,QAAoB,kBAAO;;AAG/C;;AAkBA;AACA;AACA;AACA;;AAYA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,KAAKA,CAACC,QAA8C,EAAS;EAC3E,OAAO;IACLC,OAAO,EAAEH,WAAW,CAACE,QAAQ,CAACC,OAAO,EAAEC,gBAAgB,CAAC;IACxDC,GAAG,EAAEL,WAAW,CAACE,QAAQ,CAACG,GAAG,EAAED,gBAAgB,CAAC;IAChDE,MAAM,EAAEN,WAAW,CAACE,QAAQ,CAACI,MAAM,EAAEF,gBAAgB,CAAC;IACtDG,IAAI,EAAEP,WAAW,CAACE,QAAQ,CAACK,IAAI,EAAEH,gBAAgB,CAAC;IAClDI,OAAO,EAAER,WAAW,CAACE,QAAQ,CAACM,OAAO,EAAEJ,gBAAgB,CAAC;IACxDK,IAAI,EAAET,WAAW,CAACE,QAAQ,CAACO,IAAI,EAAEL,gBAAgB,CAAC;IAClDM,GAAG,EAAEV,WAAW,CAACE,QAAQ,CAACQ,GAAG,EAAEN,gBAAgB,CAAC;IAChDO,KAAK,EAAEX,WAAW,CAACE,QAAQ,CAACS,KAAK,EAAEP,gBAAgB;EACrD,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,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,EAAEf,KAAK,CAACkB,YAAY,CAACL,IAAI,CAACM,KAAK,CAAC,GAAGN,IAAI,CAACM,KAAK,CAACC,QAAQ,EAAEL,IAAI,GAAGM,SAAS;MAC5EJ,MAAM,EAAEjB,KAAK,CAACkB,YAAY,CAACL,IAAI,CAACM,KAAK,CAAC,GAAGN,IAAI,CAACM,KAAK,CAACC,QAAQ,EAAEH,MAAM,GAAGI,SAAS;MAChFF,KAAK,EAAEN,IAAI,CAACM;IACd,CAAC;EACH;AACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Сливает в один объект конфиг и настройки по умолчанию.
|
|
3
|
+
* @param config Конфигурация запроса.
|
|
4
|
+
* @param defaults Настройки по умолчанию для экземпляра axios.
|
|
5
|
+
* @return Уточненная итоговая конфигурация.
|
|
6
|
+
* @todo Было бы круто заменить на axios/core/mergeConfig (https://github.com/axios/axios/blob/v1.x/lib/core/mergeConfig.js).
|
|
7
|
+
*/
|
|
8
|
+
export function applyAxiosDefaults(config, defaults) {
|
|
9
|
+
const {
|
|
10
|
+
headers: headersDefaults,
|
|
11
|
+
...restDefaults
|
|
12
|
+
} = defaults;
|
|
13
|
+
const method = config.method || defaults.method || 'get';
|
|
14
|
+
return {
|
|
15
|
+
method,
|
|
16
|
+
...restDefaults,
|
|
17
|
+
...config,
|
|
18
|
+
headers: {
|
|
19
|
+
...headersDefaults[method.toLowerCase()],
|
|
20
|
+
...config.headers
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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;AACA,OAAO,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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Возвращает обработчик, отвечающий данными о времени работы приложения.
|
|
3
|
+
* @return Обработчик http-запроса.
|
|
4
|
+
*/
|
|
5
|
+
export function healthCheck() {
|
|
6
|
+
const startTime = Date.now();
|
|
7
|
+
return (req, res) => {
|
|
8
|
+
res.json({
|
|
9
|
+
uptime: Date.now() - startTime
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=health-check.js.map
|
|
@@ -0,0 +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 { Handler } from 'express';\n\n/**\n * Возвращает обработчик, отвечающий данными о времени работы приложения.\n * @return Обработчик http-запроса.\n */\nexport function healthCheck(): 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;AACA,OAAO,SAASA,WAAWA,CAAA,EAAY;EACrC,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["healthCheck","composeMiddleware"],"sources":["../../../../src/utils/express/index.ts"],"sourcesContent":["export { healthCheck } from './handler/health-check';\nexport { composeMiddleware } from './utils';\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,2BAAwB;AACpD,SAASC,iBAAiB,QAAQ,kBAAS"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Объединяет промежуточные слои в один.
|
|
3
|
+
* @param list Промежуточные слои.
|
|
4
|
+
* @return Промежуточный слой.
|
|
5
|
+
*/
|
|
6
|
+
export function composeMiddleware(list) {
|
|
7
|
+
return list.reduce((a, b) => (req, res, next) => {
|
|
8
|
+
a(req, res, err => {
|
|
9
|
+
if (err) {
|
|
10
|
+
return next(err);
|
|
11
|
+
}
|
|
12
|
+
b(req, res, next);
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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 { Handler } from 'express';\n\n/**\n * Объединяет промежуточные слои в один.\n * @param list Промежуточные слои.\n * @return Промежуточный слой.\n */\nexport function composeMiddleware(list: 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;AACA,OAAO,SAASA,iBAAiBA,CAACC,IAAe,EAAE;EACjD,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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Возвращает функцию, результатом которой является promise, который никогда не переходит в состояние rejected.
|
|
3
|
+
* При перехвате исключения результат будет содержать ошибку.
|
|
4
|
+
* @param fn Оборачиваемая функция.
|
|
5
|
+
* @return Функция.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Возвращает функцию, результатом которой является promise, который никогда не переходит в состояние rejected.
|
|
10
|
+
* При перехвате исключения результат будет содержать ошибку.
|
|
11
|
+
* @param fn Оборачиваемая функция.
|
|
12
|
+
* @param format Получив базовую информацию об ответе должна вернуть отформатированную информацию.
|
|
13
|
+
* @return Функция.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Возвращает функцию, результатом которой является promise, который никогда не переходит в состояние rejected.
|
|
18
|
+
* При перехвате исключения результат будет содержать ошибку.
|
|
19
|
+
* @param fn Оборачиваемая функция.
|
|
20
|
+
* @param format Получив базовую информацию об ответе должна вернуть отформатированную информацию.
|
|
21
|
+
* @return Функция.
|
|
22
|
+
*/
|
|
23
|
+
export function safetyAsync(fn, format = value => value) {
|
|
24
|
+
return async function safetyWrapper(...args) {
|
|
25
|
+
try {
|
|
26
|
+
return format({
|
|
27
|
+
ok: true,
|
|
28
|
+
result: await fn(...args)
|
|
29
|
+
});
|
|
30
|
+
} catch (error) {
|
|
31
|
+
return format({
|
|
32
|
+
ok: false,
|
|
33
|
+
error
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=function.js.map
|
|
@@ -0,0 +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;AACA,OAAO,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["safetyAsync","toMilliseconds"],"sources":["../../../src/utils/index.ts"],"sourcesContent":["export { safetyAsync, type SafetyInfo } from './function';\nexport { toMilliseconds } from './math';\n"],"mappings":"AAAA,SAASA,WAAW,QAAyB,eAAY;AACzD,SAASC,cAAc,QAAQ,WAAQ"}
|
|
@@ -0,0 +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;AACA,OAAO,SAASA,cAAcA,CAACC,WAAmB,EAAU;EAC1D,OAAOC,MAAM,CAACD,WAAW,GAAG,QAAQ,CAAC;AACvC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Component, Suspense } from 'react';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Опции компонентов ErrorBoundary и SafeSuspense.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Компонент-предохранитель. Обработчик ошибок в React-компонентах.
|
|
10
|
+
*/
|
|
11
|
+
export class ErrorBoundary extends Component {
|
|
12
|
+
/**
|
|
13
|
+
* @param props Свойства.
|
|
14
|
+
*/
|
|
15
|
+
constructor(props) {
|
|
16
|
+
super(props);
|
|
17
|
+
this.state = {
|
|
18
|
+
hasError: false
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/** @inheritDoc */
|
|
23
|
+
static getDerivedStateFromError() {
|
|
24
|
+
return {
|
|
25
|
+
hasError: true
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/** @inheritDoc */
|
|
30
|
+
componentDidCatch(error, errorInfo) {
|
|
31
|
+
// @todo добавить возможность брать onError из специального контекста (это упростит передачу из di-контейнера)
|
|
32
|
+
const {
|
|
33
|
+
onError
|
|
34
|
+
} = this.props;
|
|
35
|
+
onError?.(error, errorInfo);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Рендер.
|
|
40
|
+
* @return Дочерний элемент либо запасное значение.
|
|
41
|
+
*/
|
|
42
|
+
render() {
|
|
43
|
+
const {
|
|
44
|
+
children,
|
|
45
|
+
fallback
|
|
46
|
+
} = this.props;
|
|
47
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, this.state.hasError ? fallback : children);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Обертка над Suspense c перехватом ошибок.
|
|
53
|
+
* @todo Возможно этот компонент не нужен...
|
|
54
|
+
* @param props Свойства.
|
|
55
|
+
* @return Элемент.
|
|
56
|
+
*/
|
|
57
|
+
export function SafeSuspense({
|
|
58
|
+
children,
|
|
59
|
+
fallback,
|
|
60
|
+
onError
|
|
61
|
+
}) {
|
|
62
|
+
return /*#__PURE__*/React.createElement(Suspense, {
|
|
63
|
+
fallback: fallback
|
|
64
|
+
}, /*#__PURE__*/React.createElement(ErrorBoundary, {
|
|
65
|
+
fallback: fallback,
|
|
66
|
+
onError: onError
|
|
67
|
+
}, children));
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["Component","Suspense","ErrorBoundary","constructor","props","state","hasError","getDerivedStateFromError","componentDidCatch","error","errorInfo","onError","render","children","fallback","React","createElement","Fragment","SafeSuspense"],"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,SAASA,SAAS,EAAwBC,QAAQ,QAAQ,OAAO;;AAEjE;AACA;AACA;;AAYA;AACA;AACA;AACA,OAAO,MAAMC,aAAa,SAASF,SAAS,CAA+B;EACzE;AACF;AACA;EACEG,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,oBAAOW,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,QAAG,IAAI,CAACZ,KAAK,CAACC,QAAQ,GAAGQ,QAAQ,GAAGD,QAAW,CAAC;EACzD;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASK,YAAYA,CAAC;EAAEL,QAAQ;EAAEC,QAAQ;EAAEH;AAAe,CAAC,EAAE;EACnE,oBACEI,KAAA,CAAAC,aAAA,CAACf,QAAQ;IAACa,QAAQ,EAAEA;EAAS,gBAC3BC,KAAA,CAAAC,aAAA,CAACd,aAAa;IAACY,QAAQ,EAAEA,QAAS;IAACH,OAAO,EAAEA;EAAQ,GACjDE,QACY,CACP,CAAC;AAEf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["ErrorBoundary","SafeSuspense"],"sources":["../../../../src/utils/react/index.ts"],"sourcesContent":["import { ErrorBoundary, SafeSuspense } from './error-handlers';\n\nexport { ErrorBoundary, SafeSuspense };\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,YAAY,QAAQ,2BAAkB;AAE9D,SAASD,aAAa,EAAEC,YAAY"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["STATUS","RemoteData"],"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,SAAkCA,MAAM,EAAEC,UAAU,QAAQ,kBAAe;AAG3E,SAASD,MAAM,EAAEC,UAAU"}
|