@sima-land/isomorph 11.0.0-alpha.4 → 11.0.0-alpha.41
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/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 +36 -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 +36 -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/package.json +295 -48
- 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/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,42 @@
|
|
|
1
|
+
import { createPreset } from "./../../../di/index.js";
|
|
2
|
+
import { KnownToken } from "../../../tokens.js";
|
|
3
|
+
import { provideSagaMiddleware, provideHttpClientLogHandler } from "./../../isomorphic/providers/index.js";
|
|
4
|
+
import { provideHttpClientFactory, provideHandlerMain, provideSpecificParams, providePageHelmet, providePageRender } from "./providers/index.js";
|
|
5
|
+
import { SpecificExtras } from "./utils/index.js";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Возвращает preset с зависимостями по умолчанию для работы в рамках ответа на http-запрос.
|
|
9
|
+
* @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.
|
|
10
|
+
* @todo Возможно стоит переименовать в PresetPageHandler.
|
|
11
|
+
* @return Preset.
|
|
12
|
+
*/
|
|
13
|
+
export function PresetHandler(customize) {
|
|
14
|
+
// ВАЖНО: используем .set() вместо аргумента defaults функции createPreset из-за скорости
|
|
15
|
+
const preset = createPreset();
|
|
16
|
+
|
|
17
|
+
// saga
|
|
18
|
+
preset.set(KnownToken.sagaMiddleware, provideSagaMiddleware);
|
|
19
|
+
|
|
20
|
+
// http client
|
|
21
|
+
preset.set(KnownToken.Http.Client.factory, provideHttpClientFactory);
|
|
22
|
+
preset.set(KnownToken.Http.Client.Middleware.Log.handler, provideHttpClientLogHandler);
|
|
23
|
+
|
|
24
|
+
// http handler
|
|
25
|
+
preset.set(KnownToken.Http.Handler.main, provideHandlerMain);
|
|
26
|
+
preset.set(KnownToken.Http.Handler.Request.specificParams, provideSpecificParams);
|
|
27
|
+
preset.set(KnownToken.Http.Handler.Response.specificExtras, () => new SpecificExtras());
|
|
28
|
+
preset.set(KnownToken.Http.Handler.Page.assets, () => ({
|
|
29
|
+
js: '',
|
|
30
|
+
css: ''
|
|
31
|
+
}));
|
|
32
|
+
preset.set(KnownToken.Http.Handler.Page.helmet, providePageHelmet);
|
|
33
|
+
preset.set(KnownToken.Http.Handler.Page.render, providePageRender);
|
|
34
|
+
if (customize) {
|
|
35
|
+
customize({
|
|
36
|
+
override: preset.set.bind(preset)
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
return preset;
|
|
40
|
+
}
|
|
41
|
+
export { HandlerProvider } from "./utils/index.js";
|
|
42
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["createPreset","KnownToken","provideSagaMiddleware","provideHttpClientLogHandler","provideHttpClientFactory","provideHandlerMain","provideSpecificParams","providePageHelmet","providePageRender","SpecificExtras","PresetHandler","customize","preset","set","sagaMiddleware","Http","Client","factory","Middleware","Log","handler","Handler","main","Request","specificParams","Response","specificExtras","Page","assets","js","css","helmet","render","override","bind","HandlerProvider"],"sources":["../../../../../src/preset/node/handler/index.ts"],"sourcesContent":["import { Preset, createPreset } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { provideSagaMiddleware, provideHttpClientLogHandler } from '../../isomorphic/providers';\nimport { PresetTuner } from '../../isomorphic/types';\nimport {\n provideHttpClientFactory,\n provideHandlerMain,\n provideSpecificParams,\n providePageHelmet,\n providePageRender,\n} from './providers';\nimport { SpecificExtras } from './utils';\n\n/**\n * Возвращает preset с зависимостями по умолчанию для работы в рамках ответа на http-запрос.\n * @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.\n * @todo Возможно стоит переименовать в PresetPageHandler.\n * @return Preset.\n */\nexport function PresetHandler(customize?: PresetTuner): Preset {\n // ВАЖНО: используем .set() вместо аргумента defaults функции createPreset из-за скорости\n const preset = createPreset();\n\n // saga\n preset.set(KnownToken.sagaMiddleware, provideSagaMiddleware);\n\n // http client\n preset.set(KnownToken.Http.Client.factory, provideHttpClientFactory);\n preset.set(KnownToken.Http.Client.Middleware.Log.handler, provideHttpClientLogHandler);\n\n // http handler\n preset.set(KnownToken.Http.Handler.main, provideHandlerMain);\n preset.set(KnownToken.Http.Handler.Request.specificParams, provideSpecificParams);\n preset.set(KnownToken.Http.Handler.Response.specificExtras, () => new SpecificExtras());\n preset.set(KnownToken.Http.Handler.Page.assets, () => ({ js: '', css: '' }));\n preset.set(KnownToken.Http.Handler.Page.helmet, providePageHelmet);\n preset.set(KnownToken.Http.Handler.Page.render, providePageRender);\n\n if (customize) {\n customize({ override: preset.set.bind(preset) });\n }\n\n return preset;\n}\n\nexport { HandlerProvider } from './utils';\n"],"mappings":"AAAA,SAAiBA,YAAY,QAAQ,wBAAa;AAClD,SAASC,UAAU,QAAQ,oBAAiB;AAC5C,SAASC,qBAAqB,EAAEC,2BAA2B,QAAQ,uCAA4B;AAE/F,SACEC,wBAAwB,EACxBC,kBAAkB,EAClBC,qBAAqB,EACrBC,iBAAiB,EACjBC,iBAAiB,QACZ,sBAAa;AACpB,SAASC,cAAc,QAAQ,kBAAS;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAACC,SAAuB,EAAU;EAC7D;EACA,MAAMC,MAAM,GAAGZ,YAAY,CAAC,CAAC;;EAE7B;EACAY,MAAM,CAACC,GAAG,CAACZ,UAAU,CAACa,cAAc,EAAEZ,qBAAqB,CAAC;;EAE5D;EACAU,MAAM,CAACC,GAAG,CAACZ,UAAU,CAACc,IAAI,CAACC,MAAM,CAACC,OAAO,EAAEb,wBAAwB,CAAC;EACpEQ,MAAM,CAACC,GAAG,CAACZ,UAAU,CAACc,IAAI,CAACC,MAAM,CAACE,UAAU,CAACC,GAAG,CAACC,OAAO,EAAEjB,2BAA2B,CAAC;;EAEtF;EACAS,MAAM,CAACC,GAAG,CAACZ,UAAU,CAACc,IAAI,CAACM,OAAO,CAACC,IAAI,EAAEjB,kBAAkB,CAAC;EAC5DO,MAAM,CAACC,GAAG,CAACZ,UAAU,CAACc,IAAI,CAACM,OAAO,CAACE,OAAO,CAACC,cAAc,EAAElB,qBAAqB,CAAC;EACjFM,MAAM,CAACC,GAAG,CAACZ,UAAU,CAACc,IAAI,CAACM,OAAO,CAACI,QAAQ,CAACC,cAAc,EAAE,MAAM,IAAIjB,cAAc,CAAC,CAAC,CAAC;EACvFG,MAAM,CAACC,GAAG,CAACZ,UAAU,CAACc,IAAI,CAACM,OAAO,CAACM,IAAI,CAACC,MAAM,EAAE,OAAO;IAAEC,EAAE,EAAE,EAAE;IAAEC,GAAG,EAAE;EAAG,CAAC,CAAC,CAAC;EAC5ElB,MAAM,CAACC,GAAG,CAACZ,UAAU,CAACc,IAAI,CAACM,OAAO,CAACM,IAAI,CAACI,MAAM,EAAExB,iBAAiB,CAAC;EAClEK,MAAM,CAACC,GAAG,CAACZ,UAAU,CAACc,IAAI,CAACM,OAAO,CAACM,IAAI,CAACK,MAAM,EAAExB,iBAAiB,CAAC;EAElE,IAAIG,SAAS,EAAE;IACbA,SAAS,CAAC;MAAEsB,QAAQ,EAAErB,MAAM,CAACC,GAAG,CAACqB,IAAI,CAACtB,MAAM;IAAE,CAAC,CAAC;EAClD;EAEA,OAAOA,MAAM;AACf;AAEA,SAASuB,eAAe,QAAQ,kBAAS"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ResponseError, createCookieStore } from "./../../../../http/index.js";
|
|
3
|
+
import { KnownToken } from "../../../../tokens.js";
|
|
4
|
+
import { getRequestHeaders, tracingMiddleware } from "./../../node/utils/http-client/index.js";
|
|
5
|
+
import { create } from 'middleware-axios';
|
|
6
|
+
import { HttpStatus } from "./../../../isomorphic/utils/index.js";
|
|
7
|
+
import { cookieMiddleware, logMiddleware } from "./../../../../utils/axios/index.js";
|
|
8
|
+
import { RESPONSE_EVENT_TYPE } from "../../../isomorphic/constants.js";
|
|
9
|
+
import { Fragment } from 'react';
|
|
10
|
+
import { HelmetContext, RegularHelmet, getResponseFormat } from "./../utils/index.js";
|
|
11
|
+
import { renderToString } from 'react-dom/server';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Провайдер фабрики http-клиентов.
|
|
15
|
+
* @param resolve Функция для получения зависимости по токену.
|
|
16
|
+
* @return Фабрика.
|
|
17
|
+
*/
|
|
18
|
+
export function provideHttpClientFactory(resolve) {
|
|
19
|
+
// @todo а что если привести все зависимости к виду:
|
|
20
|
+
// const getAppConfig = resolve.lazy(KnownToken.Config.base);
|
|
21
|
+
|
|
22
|
+
const appConfig = resolve(KnownToken.Config.base);
|
|
23
|
+
const tracer = resolve(KnownToken.Tracing.tracer);
|
|
24
|
+
const context = resolve(KnownToken.Http.Handler.context);
|
|
25
|
+
const logHandler = resolve(KnownToken.Http.Client.Middleware.Log.handler);
|
|
26
|
+
|
|
27
|
+
// @todo добавить при необходимости (но тогда в логе будет значительно больше ошибок)
|
|
28
|
+
// можно не отсылать ошибки из клиента если ответ от сервера уже ушел (writableEnded)
|
|
29
|
+
// const controller = new AbortController();
|
|
30
|
+
// context.res.on('finish', () => {
|
|
31
|
+
// controller.abort();
|
|
32
|
+
// });
|
|
33
|
+
|
|
34
|
+
// ВАЖНО: для всех клиентов в рамках обработчика должно быть одно хранилище cookie
|
|
35
|
+
const cookieStore = createCookieStore(context.req.header('cookie'));
|
|
36
|
+
cookieStore.subscribe(() => {
|
|
37
|
+
if (!context.res.writableEnded) {
|
|
38
|
+
context.res.setHeader('cookie', cookieStore.getCookies());
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
const defaultHeaders = getRequestHeaders(appConfig, context.req);
|
|
42
|
+
return (config = {}) => {
|
|
43
|
+
const client = create({
|
|
44
|
+
...config,
|
|
45
|
+
headers: {
|
|
46
|
+
...defaultHeaders,
|
|
47
|
+
// @todo убрать as any
|
|
48
|
+
...config.headers
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
client.use(HttpStatus.axiosMiddleware());
|
|
52
|
+
client.use(tracingMiddleware(tracer, context.res.locals.tracing.rootContext));
|
|
53
|
+
client.use(logMiddleware(logHandler));
|
|
54
|
+
client.use(cookieMiddleware(cookieStore));
|
|
55
|
+
return client;
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Провайдер главной функции обработчика входящего http-запроса.
|
|
61
|
+
* @param resolve Функция для получения зависимости по токену.
|
|
62
|
+
* @return Главная функция.
|
|
63
|
+
*/
|
|
64
|
+
export function provideHandlerMain(resolve) {
|
|
65
|
+
const config = resolve(KnownToken.Config.base);
|
|
66
|
+
const logger = resolve(KnownToken.logger);
|
|
67
|
+
const assetsInit = resolve(KnownToken.Http.Handler.Page.assets);
|
|
68
|
+
const render = resolve(KnownToken.Http.Handler.Page.render);
|
|
69
|
+
const extras = resolve(KnownToken.Http.Handler.Response.specificExtras);
|
|
70
|
+
const Helmet = resolve(KnownToken.Http.Handler.Page.helmet);
|
|
71
|
+
const {
|
|
72
|
+
req,
|
|
73
|
+
res
|
|
74
|
+
} = resolve(KnownToken.Http.Handler.context);
|
|
75
|
+
const getAssets = typeof assetsInit === 'function' ? assetsInit : () => assetsInit;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Рендер JSX-элемента в строку.
|
|
79
|
+
* @param element Элемент.
|
|
80
|
+
* @return Строка.
|
|
81
|
+
*/
|
|
82
|
+
const elementToString = element => {
|
|
83
|
+
res.emit(RESPONSE_EVENT_TYPE.renderStart);
|
|
84
|
+
const result = renderToString(element);
|
|
85
|
+
res.emit(RESPONSE_EVENT_TYPE.renderFinish);
|
|
86
|
+
return result;
|
|
87
|
+
};
|
|
88
|
+
return async () => {
|
|
89
|
+
try {
|
|
90
|
+
const assets = await getAssets();
|
|
91
|
+
const meta = extras.getMeta();
|
|
92
|
+
const jsx = /*#__PURE__*/React.createElement(HelmetContext.Provider, {
|
|
93
|
+
value: {
|
|
94
|
+
title: config.appName,
|
|
95
|
+
assets
|
|
96
|
+
}
|
|
97
|
+
}, /*#__PURE__*/React.createElement(Helmet, null, await render()));
|
|
98
|
+
switch (getResponseFormat(req)) {
|
|
99
|
+
case 'html':
|
|
100
|
+
{
|
|
101
|
+
res.setHeader('simaland-bundle-js', assets.js);
|
|
102
|
+
res.setHeader('simaland-bundle-css', assets.css);
|
|
103
|
+
if (assets.criticalJs) {
|
|
104
|
+
res.setHeader('simaland-critical-js', assets.criticalJs);
|
|
105
|
+
}
|
|
106
|
+
if (assets.criticalCss) {
|
|
107
|
+
res.setHeader('simaland-critical-css', assets.criticalCss);
|
|
108
|
+
}
|
|
109
|
+
if (meta) {
|
|
110
|
+
res.setHeader('simaland-meta', JSON.stringify(meta));
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// ВАЖНО: DOCTYPE обязательно нужен так как влияет на то как браузер будет парсить html/css
|
|
114
|
+
// ВАЖНО: DOCTYPE нужен только когда отдаем полноценную страницу
|
|
115
|
+
if (config.env === 'development') {
|
|
116
|
+
res.send(`<!DOCTYPE html>${elementToString(jsx)}`);
|
|
117
|
+
} else {
|
|
118
|
+
res.send(elementToString(jsx));
|
|
119
|
+
}
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
case 'json':
|
|
123
|
+
{
|
|
124
|
+
res.json({
|
|
125
|
+
markup: elementToString(jsx),
|
|
126
|
+
bundle_js: assets.js,
|
|
127
|
+
bundle_css: assets.css,
|
|
128
|
+
critical_js: assets.criticalJs,
|
|
129
|
+
critical_css: assets.criticalCss,
|
|
130
|
+
meta
|
|
131
|
+
});
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
} catch (error) {
|
|
136
|
+
let message;
|
|
137
|
+
let statusCode = 500; // по умолчанию, если на этапе подготовки страницы что-то не так, отдаем 500
|
|
138
|
+
|
|
139
|
+
if (error instanceof Error) {
|
|
140
|
+
message = error.message;
|
|
141
|
+
if (error instanceof ResponseError) {
|
|
142
|
+
statusCode = error.statusCode;
|
|
143
|
+
}
|
|
144
|
+
} else {
|
|
145
|
+
message = String(error);
|
|
146
|
+
}
|
|
147
|
+
res.status(statusCode).send(message);
|
|
148
|
+
logger.error(error);
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Провайдер render-функции.
|
|
155
|
+
* @return Render-Функция.
|
|
156
|
+
*/
|
|
157
|
+
export function providePageRender() {
|
|
158
|
+
return () => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("h1", null, "Hello, world!"), /*#__PURE__*/React.createElement("p", null, "This is a stub page. Define the render component in your handler"));
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Провайдер helmet-компонента. Этот компонент является контейнером для результата render-функции.
|
|
163
|
+
* @param resolve Функция для получения зависимости по токену.
|
|
164
|
+
* @return Helmet-компонент.
|
|
165
|
+
*/
|
|
166
|
+
export function providePageHelmet(resolve) {
|
|
167
|
+
const config = resolve(KnownToken.Config.base);
|
|
168
|
+
const {
|
|
169
|
+
req
|
|
170
|
+
} = resolve(KnownToken.Http.Handler.context);
|
|
171
|
+
return config.env === 'development' && getResponseFormat(req) === 'html' ? RegularHelmet : Fragment;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Провайдер специфичных параметров, которые frontend-микросервис будет получать в запросе.
|
|
176
|
+
* @param resolve Функция для получения зависимости по токену.
|
|
177
|
+
* @return Параметры.
|
|
178
|
+
*/
|
|
179
|
+
export function provideSpecificParams(resolve) {
|
|
180
|
+
const context = resolve(KnownToken.Http.Handler.context);
|
|
181
|
+
try {
|
|
182
|
+
const headerValue = context.req.header('simaland-params');
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Node.js переводит в ASCII.
|
|
186
|
+
* @see {https://github.com/nodejs/node/issues/17390}
|
|
187
|
+
*/
|
|
188
|
+
const processedValue = headerValue ? Buffer.from(headerValue, 'binary').toString('utf8') : '';
|
|
189
|
+
return processedValue ? JSON.parse(processedValue) : {};
|
|
190
|
+
} catch {
|
|
191
|
+
return {};
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["ResponseError","createCookieStore","KnownToken","getRequestHeaders","tracingMiddleware","create","HttpStatus","cookieMiddleware","logMiddleware","RESPONSE_EVENT_TYPE","Fragment","HelmetContext","RegularHelmet","getResponseFormat","renderToString","provideHttpClientFactory","resolve","appConfig","Config","base","tracer","Tracing","context","Http","Handler","logHandler","Client","Middleware","Log","handler","cookieStore","req","header","subscribe","res","writableEnded","setHeader","getCookies","defaultHeaders","config","client","headers","use","axiosMiddleware","locals","tracing","rootContext","provideHandlerMain","logger","assetsInit","Page","assets","render","extras","Response","specificExtras","Helmet","helmet","getAssets","elementToString","element","emit","renderStart","result","renderFinish","meta","getMeta","jsx","React","createElement","Provider","value","title","appName","js","css","criticalJs","criticalCss","JSON","stringify","env","send","json","markup","bundle_js","bundle_css","critical_js","critical_css","error","message","statusCode","Error","String","status","providePageRender","providePageHelmet","provideSpecificParams","headerValue","processedValue","Buffer","from","toString","parse"],"sources":["../../../../../../src/preset/node/handler/providers/index.tsx"],"sourcesContent":["import { ResponseError, createCookieStore } from '../../../../http';\nimport { Resolve } from '../../../../di';\nimport { KnownToken } from '../../../../tokens';\nimport { getRequestHeaders, tracingMiddleware } from '../../node/utils/http-client';\nimport { CreateAxiosDefaults } from 'axios';\nimport { create } from 'middleware-axios';\nimport { HttpStatus } from '../../../isomorphic/utils';\nimport { cookieMiddleware, logMiddleware } from '../../../../utils/axios';\nimport { RESPONSE_EVENT_TYPE } from '../../../isomorphic/constants';\nimport { ConventionalJson } from '../../../isomorphic/types';\nimport { Fragment } from 'react';\nimport { HelmetContext, RegularHelmet, getResponseFormat } from '../utils';\nimport { renderToString } from 'react-dom/server';\n\n/**\n * Провайдер фабрики http-клиентов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Фабрика.\n */\nexport function provideHttpClientFactory(resolve: Resolve) {\n // @todo а что если привести все зависимости к виду:\n // const getAppConfig = resolve.lazy(KnownToken.Config.base);\n\n const appConfig = resolve(KnownToken.Config.base);\n const tracer = resolve(KnownToken.Tracing.tracer);\n const context = resolve(KnownToken.Http.Handler.context);\n const logHandler = resolve(KnownToken.Http.Client.Middleware.Log.handler);\n\n // @todo добавить при необходимости (но тогда в логе будет значительно больше ошибок)\n // можно не отсылать ошибки из клиента если ответ от сервера уже ушел (writableEnded)\n // const controller = new AbortController();\n // context.res.on('finish', () => {\n // controller.abort();\n // });\n\n // ВАЖНО: для всех клиентов в рамках обработчика должно быть одно хранилище cookie\n const cookieStore = createCookieStore(context.req.header('cookie'));\n\n cookieStore.subscribe(() => {\n if (!context.res.writableEnded) {\n context.res.setHeader('cookie', cookieStore.getCookies());\n }\n });\n\n const defaultHeaders = getRequestHeaders(appConfig, context.req);\n\n return (config: CreateAxiosDefaults = {}) => {\n const client = create({\n ...config,\n headers: {\n ...defaultHeaders,\n\n // @todo убрать as any\n ...(config.headers as any),\n },\n });\n\n client.use(HttpStatus.axiosMiddleware());\n client.use(tracingMiddleware(tracer, context.res.locals.tracing.rootContext));\n client.use(logMiddleware(logHandler));\n client.use(cookieMiddleware(cookieStore));\n\n return client;\n };\n}\n\n/**\n * Провайдер главной функции обработчика входящего http-запроса.\n * @param resolve Функция для получения зависимости по токену.\n * @return Главная функция.\n */\nexport function provideHandlerMain(resolve: Resolve): VoidFunction {\n const config = resolve(KnownToken.Config.base);\n const logger = resolve(KnownToken.logger);\n const assetsInit = resolve(KnownToken.Http.Handler.Page.assets);\n const render = resolve(KnownToken.Http.Handler.Page.render);\n const extras = resolve(KnownToken.Http.Handler.Response.specificExtras);\n const Helmet = resolve(KnownToken.Http.Handler.Page.helmet);\n const { req, res } = resolve(KnownToken.Http.Handler.context);\n\n const getAssets = typeof assetsInit === 'function' ? assetsInit : () => assetsInit;\n\n /**\n * Рендер JSX-элемента в строку.\n * @param element Элемент.\n * @return Строка.\n */\n const elementToString = (element: JSX.Element) => {\n res.emit(RESPONSE_EVENT_TYPE.renderStart);\n const result = renderToString(element);\n res.emit(RESPONSE_EVENT_TYPE.renderFinish);\n\n return result;\n };\n\n return async () => {\n try {\n const assets = await getAssets();\n const meta = extras.getMeta();\n\n const jsx = (\n <HelmetContext.Provider value={{ title: config.appName, assets }}>\n <Helmet>{await render()}</Helmet>\n </HelmetContext.Provider>\n );\n\n switch (getResponseFormat(req)) {\n case 'html': {\n res.setHeader('simaland-bundle-js', assets.js);\n res.setHeader('simaland-bundle-css', assets.css);\n\n if (assets.criticalJs) {\n res.setHeader('simaland-critical-js', assets.criticalJs);\n }\n\n if (assets.criticalCss) {\n res.setHeader('simaland-critical-css', assets.criticalCss);\n }\n\n if (meta) {\n res.setHeader('simaland-meta', JSON.stringify(meta));\n }\n\n // ВАЖНО: DOCTYPE обязательно нужен так как влияет на то как браузер будет парсить html/css\n // ВАЖНО: DOCTYPE нужен только когда отдаем полноценную страницу\n if (config.env === 'development') {\n res.send(`<!DOCTYPE html>${elementToString(jsx)}`);\n } else {\n res.send(elementToString(jsx));\n }\n break;\n }\n\n case 'json': {\n res.json({\n markup: elementToString(jsx),\n bundle_js: assets.js,\n bundle_css: assets.css,\n critical_js: assets.criticalJs,\n critical_css: assets.criticalCss,\n meta,\n } satisfies ConventionalJson);\n break;\n }\n }\n } catch (error) {\n let message;\n let statusCode = 500; // по умолчанию, если на этапе подготовки страницы что-то не так, отдаем 500\n\n if (error instanceof Error) {\n message = error.message;\n\n if (error instanceof ResponseError) {\n statusCode = error.statusCode;\n }\n } else {\n message = String(error);\n }\n\n res.status(statusCode).send(message);\n logger.error(error);\n }\n };\n}\n\n/**\n * Провайдер render-функции.\n * @return Render-Функция.\n */\nexport function providePageRender() {\n return () => (\n <>\n <h1>Hello, world!</h1>\n <p>This is a stub page. Define the render component in your handler</p>\n </>\n );\n}\n\n/**\n * Провайдер helmet-компонента. Этот компонент является контейнером для результата render-функции.\n * @param resolve Функция для получения зависимости по токену.\n * @return Helmet-компонент.\n */\nexport function providePageHelmet(resolve: Resolve) {\n const config = resolve(KnownToken.Config.base);\n const { req } = resolve(KnownToken.Http.Handler.context);\n\n return config.env === 'development' && getResponseFormat(req) === 'html'\n ? RegularHelmet\n : Fragment;\n}\n\n/**\n * Провайдер специфичных параметров, которые frontend-микросервис будет получать в запросе.\n * @param resolve Функция для получения зависимости по токену.\n * @return Параметры.\n */\nexport function provideSpecificParams(resolve: Resolve): Record<string, unknown> {\n const context = resolve(KnownToken.Http.Handler.context);\n\n try {\n const headerValue = context.req.header('simaland-params');\n\n /**\n * Node.js переводит в ASCII.\n * @see {https://github.com/nodejs/node/issues/17390}\n */\n const processedValue = headerValue ? Buffer.from(headerValue, 'binary').toString('utf8') : '';\n\n return processedValue ? JSON.parse(processedValue) : {};\n } catch {\n return {};\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { createContext, useContext } from 'react';
|
|
3
|
+
import { CURRENT_APP } from "./../../../../di/index.js";
|
|
4
|
+
import { KnownToken } from "../../../../tokens.js";
|
|
5
|
+
export const HelmetContext = /*#__PURE__*/createContext({});
|
|
6
|
+
const resetCSS = `
|
|
7
|
+
* {
|
|
8
|
+
box-sizing: border-box;
|
|
9
|
+
}
|
|
10
|
+
body {
|
|
11
|
+
font-family: -apple-system,BlinkMacSystemFont,'Source Sans Pro',"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,Arial,sans-serif;
|
|
12
|
+
margin: 0;
|
|
13
|
+
}
|
|
14
|
+
`;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Простой Helmet-компонент.
|
|
18
|
+
* Выведет html, head и body.
|
|
19
|
+
* @param props Свойства.
|
|
20
|
+
* @return Элемент.
|
|
21
|
+
*/
|
|
22
|
+
export function RegularHelmet({
|
|
23
|
+
children
|
|
24
|
+
}) {
|
|
25
|
+
const {
|
|
26
|
+
title,
|
|
27
|
+
assets
|
|
28
|
+
} = useContext(HelmetContext);
|
|
29
|
+
return /*#__PURE__*/React.createElement("html", null, /*#__PURE__*/React.createElement("head", null, /*#__PURE__*/React.createElement("meta", {
|
|
30
|
+
charSet: "UTF-8"
|
|
31
|
+
}), /*#__PURE__*/React.createElement("meta", {
|
|
32
|
+
httpEquiv: "X-UA-Compatible",
|
|
33
|
+
content: "IE=edge"
|
|
34
|
+
}), /*#__PURE__*/React.createElement("meta", {
|
|
35
|
+
name: "viewport",
|
|
36
|
+
content: "width=device-width, initial-scale=1"
|
|
37
|
+
}), /*#__PURE__*/React.createElement("title", null, title ?? 'Document'), /*#__PURE__*/React.createElement("link", {
|
|
38
|
+
href: "https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,200;0,300;0,400;0,600;0,700;0,900;1,200;1,300;1,400;1,600;1,700;1,900&display=swap",
|
|
39
|
+
rel: "stylesheet"
|
|
40
|
+
}), /*#__PURE__*/React.createElement("style", {
|
|
41
|
+
dangerouslySetInnerHTML: {
|
|
42
|
+
__html: resetCSS
|
|
43
|
+
}
|
|
44
|
+
}), assets?.criticalCss && /*#__PURE__*/React.createElement("link", {
|
|
45
|
+
rel: "stylesheet",
|
|
46
|
+
href: assets.criticalCss
|
|
47
|
+
}), assets?.css && /*#__PURE__*/React.createElement("link", {
|
|
48
|
+
rel: "stylesheet",
|
|
49
|
+
href: assets.css
|
|
50
|
+
}), assets?.criticalJs && /*#__PURE__*/React.createElement("script", {
|
|
51
|
+
src: assets.criticalJs
|
|
52
|
+
})), /*#__PURE__*/React.createElement("body", null, children, assets?.js && /*#__PURE__*/React.createElement("script", {
|
|
53
|
+
src: assets.js
|
|
54
|
+
})));
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Специфичные для наших микросервисов дополнительные данные ответа.
|
|
59
|
+
*/
|
|
60
|
+
export class SpecificExtras {
|
|
61
|
+
/**
|
|
62
|
+
* Установит мета-данные.
|
|
63
|
+
* @param meta Данные.
|
|
64
|
+
* @return Контекст.
|
|
65
|
+
*/
|
|
66
|
+
setMeta(meta) {
|
|
67
|
+
this._meta = meta;
|
|
68
|
+
return this;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Вернет установленные мета-данные.
|
|
73
|
+
* @return Данные.
|
|
74
|
+
*/
|
|
75
|
+
getMeta() {
|
|
76
|
+
return this._meta;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Определит формат ответа.
|
|
82
|
+
* @param req Запрос.
|
|
83
|
+
* @return Формат.
|
|
84
|
+
*/
|
|
85
|
+
export function getResponseFormat(req) {
|
|
86
|
+
let result = 'html';
|
|
87
|
+
if ((req.header('accept') || '').toLowerCase().includes('application/json')) {
|
|
88
|
+
result = 'json';
|
|
89
|
+
}
|
|
90
|
+
return result;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Возвращает express-handler, создающий дочернее di-приложение при запросе.
|
|
95
|
+
* @param getApp Должна вернуть di-приложения запроса.
|
|
96
|
+
* @return Обработчик.
|
|
97
|
+
*/
|
|
98
|
+
export function HandlerProvider(getApp) {
|
|
99
|
+
return function provider(resolve) {
|
|
100
|
+
const parent = resolve(CURRENT_APP);
|
|
101
|
+
return function handler(req, res, next) {
|
|
102
|
+
const app = getApp();
|
|
103
|
+
app.attach(parent);
|
|
104
|
+
app.bind(KnownToken.Http.Handler.context).toValue({
|
|
105
|
+
req,
|
|
106
|
+
res,
|
|
107
|
+
next
|
|
108
|
+
});
|
|
109
|
+
app.get(KnownToken.Http.Handler.main)();
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["createContext","useContext","CURRENT_APP","KnownToken","HelmetContext","resetCSS","RegularHelmet","children","title","assets","React","createElement","charSet","httpEquiv","content","name","href","rel","dangerouslySetInnerHTML","__html","criticalCss","css","criticalJs","src","js","SpecificExtras","setMeta","meta","_meta","getMeta","getResponseFormat","req","result","header","toLowerCase","includes","HandlerProvider","getApp","provider","resolve","parent","handler","res","next","app","attach","bind","Http","Handler","context","toValue","get","main"],"sources":["../../../../../../src/preset/node/handler/utils/index.tsx"],"sourcesContent":["import { ReactNode, createContext, useContext } from 'react';\nimport { PageAssets } from '../../../isomorphic/types';\nimport { Handler, Request } from 'express';\nimport { Application, CURRENT_APP, Resolve } from '../../../../di';\nimport { KnownToken } from '../../../../tokens';\n\nexport const HelmetContext = createContext<{ title?: string; assets?: PageAssets }>({});\n\nconst resetCSS = `\n* {\n box-sizing: border-box;\n}\nbody {\n font-family: -apple-system,BlinkMacSystemFont,'Source Sans Pro',\"Segoe UI\",Roboto,\"Helvetica Neue\",Ubuntu,Arial,sans-serif;\n margin: 0;\n}\n`;\n\n/**\n * Простой Helmet-компонент.\n * Выведет html, head и body.\n * @param props Свойства.\n * @return Элемент.\n */\nexport function RegularHelmet({ children }: { children?: ReactNode }) {\n const { title, assets } = useContext(HelmetContext);\n\n return (\n <html>\n <head>\n <meta charSet='UTF-8' />\n <meta httpEquiv='X-UA-Compatible' content='IE=edge' />\n <meta name='viewport' content='width=device-width, initial-scale=1' />\n <title>{title ?? 'Document'}</title>\n <link\n href='https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,200;0,300;0,400;0,600;0,700;0,900;1,200;1,300;1,400;1,600;1,700;1,900&display=swap'\n rel='stylesheet'\n />\n <style dangerouslySetInnerHTML={{ __html: resetCSS }} />\n\n {assets?.criticalCss && <link rel='stylesheet' href={assets.criticalCss} />}\n {assets?.css && <link rel='stylesheet' href={assets.css} />}\n {assets?.criticalJs && <script src={assets.criticalJs} />}\n </head>\n <body>\n {children}\n {assets?.js && <script src={assets.js} />}\n </body>\n </html>\n );\n}\n\n/**\n * Специфичные для наших микросервисов дополнительные данные ответа.\n */\nexport class SpecificExtras {\n private _meta: any;\n\n /**\n * Установит мета-данные.\n * @param meta Данные.\n * @return Контекст.\n */\n setMeta(meta: any): this {\n this._meta = meta;\n return this;\n }\n\n /**\n * Вернет установленные мета-данные.\n * @return Данные.\n */\n getMeta(): unknown {\n return this._meta;\n }\n}\n\n/**\n * Определит формат ответа.\n * @param req Запрос.\n * @return Формат.\n */\nexport function getResponseFormat(req: Request): 'html' | 'json' {\n let result: 'html' | 'json' = 'html';\n\n if ((req.header('accept') || '').toLowerCase().includes('application/json')) {\n result = 'json';\n }\n\n return result;\n}\n\n/**\n * Возвращает express-handler, создающий дочернее di-приложение при запросе.\n * @param getApp Должна вернуть di-приложения запроса.\n * @return Обработчик.\n */\nexport function HandlerProvider(getApp: () => Application) {\n return function provider(resolve: Resolve): Handler {\n const parent = resolve(CURRENT_APP);\n\n return function handler(req, res, next) {\n const app = getApp();\n\n app.attach(parent);\n app.bind(KnownToken.Http.Handler.context).toValue({ req, res, next });\n app.get(KnownToken.Http.Handler.main)();\n };\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["PresetNode","PresetHandler","HandlerProvider"],"sources":["../../../../src/preset/node/index.ts"],"sourcesContent":["export type { HandlerContext } from './types';\nexport { PresetNode } from './node';\nexport { PresetHandler, HandlerProvider } from './handler';\n"],"mappings":"AACA,SAASA,UAAU,QAAQ,iBAAQ;AACnC,SAASC,aAAa,EAAEC,eAAe,QAAQ,oBAAW"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { KnownToken } from "../../../tokens.js";
|
|
2
|
+
import { provideBaseConfig } from "./../../isomorphic/providers/index.js";
|
|
3
|
+
import { createPreset } from "./../../../di/index.js";
|
|
4
|
+
import { healthCheck } from "../../../utils/express/handler/health-check.js";
|
|
5
|
+
import { provideConfigSource, provideHttpClientFactory, provideHttpServerErrorMiddleware, provideHttpServerFactory, provideHttpServerLogMiddleware, provideHttpServerMetricsMiddleware, provideHttpServerRequestMiddleware, provideHttpServerTracingMiddleware, provideKnownHttpApiHosts, provideLogger, provideMetricsHttpApp, provideSpanExporter, provideSsrBridgeServerSide, provideTracer, provideTracerProvider, provideTracerProviderResource } from "./providers/index.js";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.
|
|
9
|
+
* @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.
|
|
10
|
+
* @return Preset.
|
|
11
|
+
*/
|
|
12
|
+
export function PresetNode(customize) {
|
|
13
|
+
// ВАЖНО: используем .set() вместо аргумента defaults функции createPreset из-за скорости
|
|
14
|
+
const preset = createPreset();
|
|
15
|
+
|
|
16
|
+
// config
|
|
17
|
+
preset.set(KnownToken.Config.source, provideConfigSource);
|
|
18
|
+
preset.set(KnownToken.Config.base, provideBaseConfig);
|
|
19
|
+
|
|
20
|
+
// log
|
|
21
|
+
preset.set(KnownToken.logger, provideLogger);
|
|
22
|
+
|
|
23
|
+
// tracing
|
|
24
|
+
preset.set(KnownToken.Tracing.tracer, provideTracer);
|
|
25
|
+
preset.set(KnownToken.Tracing.spanExporter, provideSpanExporter);
|
|
26
|
+
preset.set(KnownToken.Tracing.tracerProvider, provideTracerProvider);
|
|
27
|
+
preset.set(KnownToken.Tracing.tracerProviderResource, provideTracerProviderResource);
|
|
28
|
+
|
|
29
|
+
// metrics
|
|
30
|
+
preset.set(KnownToken.Metrics.httpApp, provideMetricsHttpApp);
|
|
31
|
+
|
|
32
|
+
// http client
|
|
33
|
+
preset.set(KnownToken.Http.Client.factory, provideHttpClientFactory);
|
|
34
|
+
|
|
35
|
+
// http server
|
|
36
|
+
preset.set(KnownToken.Http.Server.factory, provideHttpServerFactory);
|
|
37
|
+
preset.set(KnownToken.Http.Server.Handlers.healthCheck, healthCheck);
|
|
38
|
+
preset.set(KnownToken.Http.Server.Middleware.request, provideHttpServerRequestMiddleware);
|
|
39
|
+
preset.set(KnownToken.Http.Server.Middleware.log, provideHttpServerLogMiddleware);
|
|
40
|
+
preset.set(KnownToken.Http.Server.Middleware.metrics, provideHttpServerMetricsMiddleware);
|
|
41
|
+
preset.set(KnownToken.Http.Server.Middleware.tracing, provideHttpServerTracingMiddleware);
|
|
42
|
+
preset.set(KnownToken.Http.Server.Middleware.error, provideHttpServerErrorMiddleware);
|
|
43
|
+
|
|
44
|
+
// http api
|
|
45
|
+
preset.set(KnownToken.Http.Api.knownHosts, provideKnownHttpApiHosts);
|
|
46
|
+
|
|
47
|
+
// ssr bridge
|
|
48
|
+
preset.set(KnownToken.SsrBridge.serverSide, provideSsrBridgeServerSide);
|
|
49
|
+
if (customize) {
|
|
50
|
+
customize({
|
|
51
|
+
override: preset.set.bind(preset)
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return preset;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["KnownToken","provideBaseConfig","createPreset","healthCheck","provideConfigSource","provideHttpClientFactory","provideHttpServerErrorMiddleware","provideHttpServerFactory","provideHttpServerLogMiddleware","provideHttpServerMetricsMiddleware","provideHttpServerRequestMiddleware","provideHttpServerTracingMiddleware","provideKnownHttpApiHosts","provideLogger","provideMetricsHttpApp","provideSpanExporter","provideSsrBridgeServerSide","provideTracer","provideTracerProvider","provideTracerProviderResource","PresetNode","customize","preset","set","Config","source","base","logger","Tracing","tracer","spanExporter","tracerProvider","tracerProviderResource","Metrics","httpApp","Http","Client","factory","Server","Handlers","Middleware","request","log","metrics","tracing","error","Api","knownHosts","SsrBridge","serverSide","override","bind"],"sources":["../../../../../src/preset/node/node/index.ts"],"sourcesContent":["import { KnownToken } from '../../../tokens';\nimport { provideBaseConfig } from '../../isomorphic/providers';\nimport { Preset, createPreset } from '../../../di';\nimport { PresetTuner } from '../../isomorphic/types';\nimport { healthCheck } from '../../../utils/express/handler/health-check';\nimport {\n provideConfigSource,\n provideHttpClientFactory,\n provideHttpServerErrorMiddleware,\n provideHttpServerFactory,\n provideHttpServerLogMiddleware,\n provideHttpServerMetricsMiddleware,\n provideHttpServerRequestMiddleware,\n provideHttpServerTracingMiddleware,\n provideKnownHttpApiHosts,\n provideLogger,\n provideMetricsHttpApp,\n provideSpanExporter,\n provideSsrBridgeServerSide,\n provideTracer,\n provideTracerProvider,\n provideTracerProviderResource,\n} from './providers';\n\n/**\n * Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.\n * @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.\n * @return Preset.\n */\nexport function PresetNode(customize?: PresetTuner): Preset {\n // ВАЖНО: используем .set() вместо аргумента defaults функции createPreset из-за скорости\n const preset = createPreset();\n\n // config\n preset.set(KnownToken.Config.source, provideConfigSource);\n preset.set(KnownToken.Config.base, provideBaseConfig);\n\n // log\n preset.set(KnownToken.logger, provideLogger);\n\n // tracing\n preset.set(KnownToken.Tracing.tracer, provideTracer);\n preset.set(KnownToken.Tracing.spanExporter, provideSpanExporter);\n preset.set(KnownToken.Tracing.tracerProvider, provideTracerProvider);\n preset.set(KnownToken.Tracing.tracerProviderResource, provideTracerProviderResource);\n\n // metrics\n preset.set(KnownToken.Metrics.httpApp, provideMetricsHttpApp);\n\n // http client\n preset.set(KnownToken.Http.Client.factory, provideHttpClientFactory);\n\n // http server\n preset.set(KnownToken.Http.Server.factory, provideHttpServerFactory);\n preset.set(KnownToken.Http.Server.Handlers.healthCheck, healthCheck);\n preset.set(KnownToken.Http.Server.Middleware.request, provideHttpServerRequestMiddleware);\n preset.set(KnownToken.Http.Server.Middleware.log, provideHttpServerLogMiddleware);\n preset.set(KnownToken.Http.Server.Middleware.metrics, provideHttpServerMetricsMiddleware);\n preset.set(KnownToken.Http.Server.Middleware.tracing, provideHttpServerTracingMiddleware);\n preset.set(KnownToken.Http.Server.Middleware.error, provideHttpServerErrorMiddleware);\n\n // http api\n preset.set(KnownToken.Http.Api.knownHosts, provideKnownHttpApiHosts);\n\n // ssr bridge\n preset.set(KnownToken.SsrBridge.serverSide, provideSsrBridgeServerSide);\n\n if (customize) {\n customize({ override: preset.set.bind(preset) });\n }\n\n return preset;\n}\n"],"mappings":"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"}
|