@sima-land/isomorph 11.0.0-alpha.24 → 11.0.0-alpha.26
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/di/application.js +0 -1
- package/di/application.js.map +1 -1
- package/error-tracking/types.d.ts +5 -4
- package/http-client/middleware/headers.js.map +1 -1
- package/http-client/middleware/logging.d.ts +22 -11
- package/http-client/middleware/logging.js +8 -92
- package/http-client/middleware/logging.js.map +1 -1
- package/http-client/sauce/index.d.ts +16 -4
- package/http-client/sauce/index.js +34 -32
- package/http-client/sauce/index.js.map +1 -1
- package/http-client/utils.d.ts +9 -1
- package/http-client/utils.js +22 -1
- package/http-client/utils.js.map +1 -1
- package/http-server/middleware/logging.js +2 -1
- package/http-server/middleware/logging.js.map +1 -1
- package/http-server/middleware/tracing.js +1 -1
- package/http-server/middleware/tracing.js.map +1 -1
- package/http-server/utils.d.ts +2 -0
- package/http-server/utils.js +8 -0
- package/http-server/utils.js.map +1 -1
- package/logger/handler/{console.d.ts → pino.d.ts} +3 -3
- package/logger/handler/pino.js +29 -0
- package/logger/handler/pino.js.map +1 -0
- package/logger/handler/sentry.d.ts +2 -2
- package/logger/handler/sentry.js +11 -3
- package/logger/handler/sentry.js.map +1 -1
- package/package.json +7 -8
- package/preset/browser/index.d.ts +1 -5
- package/preset/browser/index.js +9 -18
- package/preset/browser/index.js.map +1 -1
- package/preset/node/index.d.ts +4 -4
- package/preset/node/index.js +36 -21
- package/preset/node/index.js.map +1 -1
- package/preset/node/response.d.ts +0 -2
- package/preset/node/response.js +10 -12
- package/preset/node/response.js.map +1 -1
- package/preset/parts/providers.d.ts +7 -0
- package/preset/parts/providers.js +26 -0
- package/preset/parts/providers.js.map +1 -0
- package/preset/{types.d.ts → parts/types.d.ts} +0 -0
- package/preset/{types.js → parts/types.js} +0 -0
- package/preset/{types.js.map → parts/types.js.map} +1 -1
- package/preset/parts/utils.d.ts +79 -0
- package/preset/parts/utils.js +201 -0
- package/preset/parts/utils.js.map +1 -0
- package/tokens.d.ts +7 -1
- package/tokens.js +4 -0
- package/tokens.js.map +1 -1
- package/utils/function.d.ts +28 -0
- package/utils/function.js +23 -0
- package/utils/function.js.map +1 -0
- package/utils/redux-saga/middleware.d.ts +3 -4
- package/utils/redux-saga/middleware.js +11 -14
- package/utils/redux-saga/middleware.js.map +1 -1
- package/utils/redux-saga/types.d.ts +10 -1
- package/utils/webpack/env/index.d.ts +18 -0
- package/utils/webpack/env/index.js +69 -0
- package/utils/webpack/env/index.js.map +1 -0
- package/utils/webpack/env/types.d.ts +11 -0
- package/utils/webpack/env/types.js +3 -0
- package/utils/webpack/env/types.js.map +1 -0
- package/utils/webpack/env/utils.d.ts +13 -0
- package/utils/webpack/env/utils.js +46 -0
- package/utils/webpack/env/utils.js.map +1 -0
- package/utils/webpack/index.d.ts +6 -23
- package/utils/webpack/index.js +5 -65
- package/utils/webpack/index.js.map +1 -1
- package/utils/webpack/module-federation/index.d.ts +4 -1
- package/utils/webpack/module-federation/index.js +7 -2
- package/utils/webpack/module-federation/index.js.map +1 -1
- package/utils/webpack/module-federation/types.d.ts +5 -1
- package/utils/webpack/module-federation/utils.d.ts +5 -0
- package/utils/webpack/module-federation/utils.js +72 -17
- package/utils/webpack/module-federation/utils.js.map +1 -1
- package/logger/handler/console.js +0 -46
- package/logger/handler/console.js.map +0 -1
- package/preset/utils.d.ts +0 -15
- package/preset/utils.js +0 -26
- package/preset/utils.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sima-land/isomorph",
|
|
3
|
-
"version": "11.0.0-alpha.
|
|
3
|
+
"version": "11.0.0-alpha.26",
|
|
4
4
|
"description": "Tiny framework for fast start frontend microservices",
|
|
5
5
|
"author": "www.sima-land.ru team",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"scripts": {
|
|
8
|
-
"prepare": "",
|
|
9
8
|
"type-check": "tsc -p . --noEmit",
|
|
10
9
|
"build:before": "rm -rf dist",
|
|
11
10
|
"build:main": "tsc --project tsconfig.build.json",
|
|
12
|
-
"build:after": "cp package.json dist/package.json",
|
|
11
|
+
"build:after": "cp package.json dist/package.json && cd dist && npm pkg delete scripts.prepare",
|
|
13
12
|
"build": "npm run build:before && npm run build:main && npm run build:after",
|
|
14
13
|
"lint": "eslint --cache ./src --ext .js,.jsx,.ts,.tsx",
|
|
15
14
|
"test": "jest",
|
|
@@ -33,7 +32,7 @@
|
|
|
33
32
|
"husky": "^8.0.1",
|
|
34
33
|
"jest": "^28.1.3",
|
|
35
34
|
"jest-environment-jsdom": "^28.1.3",
|
|
36
|
-
"typescript": "^4.
|
|
35
|
+
"typescript": "^4.8.4"
|
|
37
36
|
},
|
|
38
37
|
"dependencies": {
|
|
39
38
|
"@humanwhocodes/env": "^2.2.2",
|
|
@@ -47,13 +46,13 @@
|
|
|
47
46
|
"@opentelemetry/sdk-trace-node": "^1.5.0",
|
|
48
47
|
"@opentelemetry/semantic-conventions": "^1.5.0",
|
|
49
48
|
"@opentelemetry/tracing": "^0.24.0",
|
|
50
|
-
"@sentry/browser": "^7.
|
|
51
|
-
"@sentry/node": "^7.
|
|
49
|
+
"@sentry/browser": "^7.16.0",
|
|
50
|
+
"@sentry/node": "^7.16.0",
|
|
52
51
|
"dotenv": "^16.0.0",
|
|
53
52
|
"ejs": "^3.1.8",
|
|
54
53
|
"express": "^4.17.3",
|
|
55
54
|
"jsesc": "^3.0.2",
|
|
56
|
-
"middleware-axios": "^2.1.
|
|
55
|
+
"middleware-axios": "^2.1.5",
|
|
57
56
|
"pino": "^8.4.2",
|
|
58
57
|
"pino-pretty": "^9.0.1",
|
|
59
58
|
"prom-client": "^14.0.1",
|
|
@@ -61,7 +60,7 @@
|
|
|
61
60
|
},
|
|
62
61
|
"peerDependencies": {
|
|
63
62
|
"@reduxjs/toolkit": "^1.8.5",
|
|
64
|
-
"axios": "^
|
|
63
|
+
"axios": "^1.2.0-alpha.1",
|
|
65
64
|
"lodash": "^4.17.21",
|
|
66
65
|
"react": "^17.0.2",
|
|
67
66
|
"react-dom": "^17.0.2",
|
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
import { Resolve } from '../../di';
|
|
2
2
|
import { Logger } from '../../logger';
|
|
3
|
-
import { SagaExtendedMiddleware } from '../../utils/redux-saga';
|
|
4
|
-
import type { BaseConfig } from '../../config/types';
|
|
5
3
|
import { BridgeClientSide } from '../../utils/ssr';
|
|
6
|
-
import { StrictMap, KnownHttpApiKey } from '../types';
|
|
4
|
+
import { StrictMap, KnownHttpApiKey } from '../parts/types';
|
|
7
5
|
import { HttpClientFactory } from '../../http-client/types';
|
|
8
6
|
export declare function PresetBrowser(): import("../../di").Preset;
|
|
9
|
-
export declare function provideBaseConfig(resolve: Resolve): BaseConfig;
|
|
10
7
|
export declare function provideLogger(resolve: Resolve): Logger;
|
|
11
|
-
export declare function provideSagaMiddleware(resolve: Resolve): SagaExtendedMiddleware;
|
|
12
8
|
export declare function provideBridgeClientSide(resolve: Resolve): BridgeClientSide<unknown>;
|
|
13
9
|
export declare function provideKnownHttpApiHosts(resolve: Resolve): StrictMap<KnownHttpApiKey>;
|
|
14
10
|
export declare function provideHttpClientFactory(resolve: Resolve): HttpClientFactory;
|
package/preset/browser/index.js
CHANGED
|
@@ -1,36 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.provideHttpClientFactory = exports.provideKnownHttpApiHosts = exports.provideBridgeClientSide = exports.
|
|
3
|
+
exports.provideHttpClientFactory = exports.provideKnownHttpApiHosts = exports.provideBridgeClientSide = exports.provideLogger = exports.PresetBrowser = void 0;
|
|
4
4
|
/* eslint-disable require-jsdoc, jsdoc/require-jsdoc */
|
|
5
5
|
const di_1 = require("../../di");
|
|
6
6
|
const tokens_1 = require("../../tokens");
|
|
7
|
-
const base_1 = require("../../config/base");
|
|
8
7
|
const browser_1 = require("../../config/browser");
|
|
9
8
|
const logger_1 = require("../../logger");
|
|
10
9
|
const sentry_1 = require("../../logger/handler/sentry");
|
|
11
|
-
const redux_saga_1 = require("../../utils/redux-saga");
|
|
12
10
|
const browser_2 = require("@sentry/browser");
|
|
13
11
|
const middleware_axios_1 = require("middleware-axios");
|
|
14
12
|
const ssr_1 = require("../../utils/ssr");
|
|
15
|
-
const utils_1 = require("../utils");
|
|
13
|
+
const utils_1 = require("../parts/utils");
|
|
16
14
|
const logging_1 = require("../../http-client/middleware/logging");
|
|
15
|
+
const providers_1 = require("../parts/providers");
|
|
17
16
|
function PresetBrowser() {
|
|
18
17
|
return (0, di_1.createPreset)([
|
|
19
18
|
[tokens_1.KnownToken.Config.source, browser_1.createConfigSource],
|
|
20
|
-
[tokens_1.KnownToken.Config.base, provideBaseConfig],
|
|
19
|
+
[tokens_1.KnownToken.Config.base, providers_1.provideBaseConfig],
|
|
21
20
|
[tokens_1.KnownToken.logger, provideLogger],
|
|
22
|
-
[tokens_1.KnownToken.sagaMiddleware, provideSagaMiddleware],
|
|
21
|
+
[tokens_1.KnownToken.sagaMiddleware, providers_1.provideSagaMiddleware],
|
|
23
22
|
[tokens_1.KnownToken.Http.Client.factory, provideHttpClientFactory],
|
|
23
|
+
[tokens_1.KnownToken.Http.Client.LogMiddleware.handler, providers_1.provideHttpClientLogHandler],
|
|
24
24
|
[tokens_1.KnownToken.SsrBridge.clientSide, provideBridgeClientSide],
|
|
25
25
|
[tokens_1.KnownToken.Http.Api.knownHosts, provideKnownHttpApiHosts],
|
|
26
26
|
]);
|
|
27
27
|
}
|
|
28
28
|
exports.PresetBrowser = PresetBrowser;
|
|
29
|
-
function provideBaseConfig(resolve) {
|
|
30
|
-
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
31
|
-
return (0, base_1.createBaseConfig)(source);
|
|
32
|
-
}
|
|
33
|
-
exports.provideBaseConfig = provideBaseConfig;
|
|
34
29
|
function provideLogger(resolve) {
|
|
35
30
|
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
36
31
|
const client = new browser_2.BrowserClient({
|
|
@@ -42,16 +37,12 @@ function provideLogger(resolve) {
|
|
|
42
37
|
integrations: [...browser_2.defaultIntegrations],
|
|
43
38
|
});
|
|
44
39
|
const hub = new browser_2.Hub(client);
|
|
40
|
+
hub.setTag('url', window.location.href);
|
|
45
41
|
const logger = (0, logger_1.createLogger)();
|
|
46
42
|
logger.subscribe((0, sentry_1.createSentryHandler)(hub));
|
|
47
43
|
return logger;
|
|
48
44
|
}
|
|
49
45
|
exports.provideLogger = provideLogger;
|
|
50
|
-
function provideSagaMiddleware(resolve) {
|
|
51
|
-
const logger = resolve(tokens_1.KnownToken.logger);
|
|
52
|
-
return (0, redux_saga_1.createSagaMiddleware)(logger);
|
|
53
|
-
}
|
|
54
|
-
exports.provideSagaMiddleware = provideSagaMiddleware;
|
|
55
46
|
function provideBridgeClientSide(resolve) {
|
|
56
47
|
const config = resolve(tokens_1.KnownToken.Config.base);
|
|
57
48
|
return ssr_1.SsrBridge.resolve(config.appName);
|
|
@@ -68,10 +59,10 @@ function provideKnownHttpApiHosts(resolve) {
|
|
|
68
59
|
}
|
|
69
60
|
exports.provideKnownHttpApiHosts = provideKnownHttpApiHosts;
|
|
70
61
|
function provideHttpClientFactory(resolve) {
|
|
71
|
-
const
|
|
62
|
+
const loggingHandler = resolve(tokens_1.KnownToken.Http.Client.LogMiddleware.handler);
|
|
72
63
|
return function createHttpClient(config) {
|
|
73
64
|
const client = (0, middleware_axios_1.create)(config);
|
|
74
|
-
client.use((0, logging_1.loggingMiddleware)(
|
|
65
|
+
client.use((0, logging_1.loggingMiddleware)(loggingHandler));
|
|
75
66
|
return client;
|
|
76
67
|
};
|
|
77
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preset/browser/index.ts"],"names":[],"mappings":";;;AAAA,wDAAwD;AACxD,iCAAiD;AACjD,yCAA0C;AAC1C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preset/browser/index.ts"],"names":[],"mappings":"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"}
|
package/preset/node/index.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { Logger } from '../../logger/types';
|
|
1
|
+
import type { Logger, LoggerEventHandler } from '../../logger/types';
|
|
3
2
|
import type { Tracer } from '@opentelemetry/api';
|
|
4
3
|
import type { DefaultMiddleware } from '../../http-server/types';
|
|
5
4
|
import { Resolve, Preset } from '../../di';
|
|
6
5
|
import { BasicTracerProvider, SpanExporter } from '@opentelemetry/tracing';
|
|
7
6
|
import { Resource } from '@opentelemetry/resources';
|
|
8
7
|
import { BridgeServerSide } from '../../utils/ssr';
|
|
9
|
-
import { StrictMap, KnownHttpApiKey } from '../types';
|
|
8
|
+
import { StrictMap, KnownHttpApiKey } from '../parts/types';
|
|
10
9
|
/**
|
|
11
10
|
* Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.
|
|
12
11
|
* @return Preset.
|
|
13
12
|
*/
|
|
14
13
|
export declare function PresetNode(): Preset;
|
|
15
|
-
export declare function provideBaseConfig(resolve: Resolve): BaseConfig;
|
|
16
14
|
export declare function provideLogger(resolve: Resolve): Logger;
|
|
15
|
+
export declare function provideSentryHandler(resolve: Resolve): LoggerEventHandler;
|
|
16
|
+
export declare function providePinoHandler(resolve: Resolve): LoggerEventHandler;
|
|
17
17
|
export declare function provideTracer(resolve: Resolve): Tracer;
|
|
18
18
|
export declare function provideSpanExporter(resolve: Resolve): SpanExporter;
|
|
19
19
|
export declare function provideTracerProvider(resolve: Resolve): BasicTracerProvider;
|
package/preset/node/index.js
CHANGED
|
@@ -3,14 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.provideKnownHttpApiHosts = exports.provideBridgeServerSide = exports.provideDefaultMiddleware = exports.provideTracerProviderResource = exports.provideTracerProvider = exports.provideSpanExporter = exports.provideTracer = exports.
|
|
6
|
+
exports.provideKnownHttpApiHosts = exports.provideBridgeServerSide = exports.provideDefaultMiddleware = exports.provideTracerProviderResource = exports.provideTracerProvider = exports.provideSpanExporter = exports.provideTracer = exports.providePinoHandler = exports.provideSentryHandler = exports.provideLogger = exports.PresetNode = void 0;
|
|
7
7
|
const di_1 = require("../../di");
|
|
8
8
|
const tracing_1 = require("@opentelemetry/tracing");
|
|
9
9
|
const tokens_1 = require("../../tokens");
|
|
10
10
|
const node_1 = require("../../config/node");
|
|
11
|
-
const base_1 = require("../../config/base");
|
|
12
11
|
const logger_1 = require("../../logger");
|
|
13
|
-
const
|
|
12
|
+
const pino_1 = require("../../logger/handler/pino");
|
|
14
13
|
const sentry_1 = require("../../logger/handler/sentry");
|
|
15
14
|
const logging_1 = require("../../http-server/middleware/logging");
|
|
16
15
|
const tracing_2 = require("../../http-server/middleware/tracing");
|
|
@@ -27,7 +26,10 @@ const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
|
|
|
27
26
|
const tracing_3 = require("../../tracing");
|
|
28
27
|
const os_1 = require("os");
|
|
29
28
|
const ssr_1 = require("../../utils/ssr");
|
|
30
|
-
const utils_1 = require("../utils");
|
|
29
|
+
const utils_1 = require("../parts/utils");
|
|
30
|
+
const providers_1 = require("../parts/providers");
|
|
31
|
+
const pino_2 = __importDefault(require("pino"));
|
|
32
|
+
const pino_pretty_1 = __importDefault(require("pino-pretty"));
|
|
31
33
|
/**
|
|
32
34
|
* Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.
|
|
33
35
|
* @return Preset.
|
|
@@ -35,7 +37,7 @@ const utils_1 = require("../utils");
|
|
|
35
37
|
function PresetNode() {
|
|
36
38
|
return (0, di_1.createPreset)([
|
|
37
39
|
[tokens_1.KnownToken.Config.source, node_1.createConfigSource],
|
|
38
|
-
[tokens_1.KnownToken.Config.base, provideBaseConfig],
|
|
40
|
+
[tokens_1.KnownToken.Config.base, providers_1.provideBaseConfig],
|
|
39
41
|
[tokens_1.KnownToken.logger, provideLogger],
|
|
40
42
|
[tokens_1.KnownToken.Tracing.tracer, provideTracer],
|
|
41
43
|
[tokens_1.KnownToken.Tracing.spanExporter, provideSpanExporter],
|
|
@@ -50,29 +52,42 @@ function PresetNode() {
|
|
|
50
52
|
]);
|
|
51
53
|
}
|
|
52
54
|
exports.PresetNode = PresetNode;
|
|
53
|
-
function provideBaseConfig(resolve) {
|
|
54
|
-
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
55
|
-
return (0, base_1.createBaseConfig)(source);
|
|
56
|
-
}
|
|
57
|
-
exports.provideBaseConfig = provideBaseConfig;
|
|
58
55
|
function provideLogger(resolve) {
|
|
56
|
+
const logger = (0, logger_1.createLogger)();
|
|
57
|
+
logger.subscribe(providePinoHandler(resolve));
|
|
58
|
+
logger.subscribe(provideSentryHandler(resolve));
|
|
59
|
+
return logger;
|
|
60
|
+
}
|
|
61
|
+
exports.provideLogger = provideLogger;
|
|
62
|
+
function provideSentryHandler(resolve) {
|
|
59
63
|
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
transport: node_3.makeNodeTransport,
|
|
63
|
-
stackParser: node_3.defaultStackParser,
|
|
64
|
+
// экспериментально пробуем не использовать вручную созданный клиент
|
|
65
|
+
(0, node_3.init)({
|
|
64
66
|
dsn: source.require('SENTRY_DSN'),
|
|
65
67
|
release: source.require('SENTRY_RELEASE'),
|
|
66
68
|
environment: source.require('SENTRY_ENVIRONMENT'),
|
|
67
|
-
integrations: [...node_3.defaultIntegrations],
|
|
68
69
|
});
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
logger.subscribe((0, sentry_1.createSentryHandler)(hub));
|
|
73
|
-
return logger;
|
|
70
|
+
// ВАЖНО: передаем функцию чтобы брать текущий hub в момент вызова метода logger'а
|
|
71
|
+
// это нужно чтобы хлебные крошки в ошибках Sentry группировались по запросам
|
|
72
|
+
return (0, sentry_1.createSentryHandler)(node_3.getCurrentHub);
|
|
74
73
|
}
|
|
75
|
-
exports.
|
|
74
|
+
exports.provideSentryHandler = provideSentryHandler;
|
|
75
|
+
function providePinoHandler(resolve) {
|
|
76
|
+
const config = resolve(tokens_1.KnownToken.Config.base);
|
|
77
|
+
const pinoLogger = (0, pino_2.default)(config.env === 'production'
|
|
78
|
+
? {
|
|
79
|
+
formatters: {
|
|
80
|
+
// ВАЖНО: для Fluent необходимо наличие поля level: string
|
|
81
|
+
level: label => ({ level: label }),
|
|
82
|
+
},
|
|
83
|
+
}
|
|
84
|
+
: (0, pino_pretty_1.default)({
|
|
85
|
+
colorize: true,
|
|
86
|
+
translateTime: 'yyyy-mm-dd HH:MM:ss.l o',
|
|
87
|
+
}));
|
|
88
|
+
return (0, pino_1.createPinoHandler)(pinoLogger);
|
|
89
|
+
}
|
|
90
|
+
exports.providePinoHandler = providePinoHandler;
|
|
76
91
|
function provideTracer(resolve) {
|
|
77
92
|
const config = resolve(tokens_1.KnownToken.Config.base);
|
|
78
93
|
const provider = resolve(tokens_1.KnownToken.Tracing.tracerProvider);
|
package/preset/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preset/node/index.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preset/node/index.ts"],"names":[],"mappings":";;;;;;AAIA,iCAAyD;AACzD,oDAA+F;AAC/F,yCAA0C;AAC1C,4CAAuD;AACvD,yCAA4C;AAC5C,oDAA8D;AAC9D,wDAAkE;AAClE,kEAAyE;AACzE,kEAAyE;AACzE,kEAG8C;AAC9C,6CAAgF;AAChF,oEAAgE;AAChE,uDAA0C;AAC1C,sDAA8B;AAC9B,uCAA6D;AAC7D,kEAAmE;AACnE,wDAAoD;AACpD,wEAAoE;AACpE,8EAAiF;AACjF,2CAAwD;AACxD,2BAA8B;AAC9B,yCAA8D;AAE9D,0CAAiD;AACjD,kDAAuD;AACvD,gDAAwB;AACxB,8DAAqC;AAErC;;;GAGG;AACH,SAAgB,UAAU;IACxB,OAAO,IAAA,iBAAY,EAAC;QAClB,CAAC,mBAAU,CAAC,MAAM,CAAC,MAAM,EAAE,yBAAkB,CAAC;QAC9C,CAAC,mBAAU,CAAC,MAAM,CAAC,IAAI,EAAE,6BAAiB,CAAC;QAC3C,CAAC,mBAAU,CAAC,MAAM,EAAE,aAAa,CAAC;QAClC,CAAC,mBAAU,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC;QAC1C,CAAC,mBAAU,CAAC,OAAO,CAAC,YAAY,EAAE,mBAAmB,CAAC;QACtD,CAAC,mBAAU,CAAC,OAAO,CAAC,cAAc,EAAE,qBAAqB,CAAC;QAC1D,CAAC,mBAAU,CAAC,OAAO,CAAC,sBAAsB,EAAE,6BAA6B,CAAC;QAC1E,CAAC,mBAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,yBAAM,CAAC;QAC9C,CAAC,mBAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAO,CAAC;QAC/C,CAAC,mBAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAC;QACtE,CAAC,mBAAU,CAAC,OAAO,CAAC,OAAO,EAAE,2BAAoB,CAAC;QAClD,CAAC,mBAAU,CAAC,SAAS,CAAC,UAAU,EAAE,uBAAuB,CAAC;QAC1D,CAAC,mBAAU,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,wBAAwB,CAAC;KAC3D,CAAC,CAAC;AACL,CAAC;AAhBD,gCAgBC;AAED,SAAgB,aAAa,CAAC,OAAgB;IAC5C,MAAM,MAAM,GAAG,IAAA,qBAAY,GAAE,CAAC;IAE9B,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9C,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEhD,OAAO,MAAM,CAAC;AAChB,CAAC;AAPD,sCAOC;AAED,SAAgB,oBAAoB,CAAC,OAAgB;IACnD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEjD,oEAAoE;IACpE,IAAA,WAAI,EAAC;QACH,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACzC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC;KAClD,CAAC,CAAC;IAEH,kFAAkF;IAClF,6EAA6E;IAC7E,OAAO,IAAA,4BAAmB,EAAC,oBAAa,CAAC,CAAC;AAC5C,CAAC;AAbD,oDAaC;AAED,SAAgB,kBAAkB,CAAC,OAAgB;IACjD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE/C,MAAM,UAAU,GAAG,IAAA,cAAI,EACrB,MAAM,CAAC,GAAG,KAAK,YAAY;QACzB,CAAC,CAAC;YACE,UAAU,EAAE;gBACV,0DAA0D;gBAC1D,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;aACnC;SACF;QACH,CAAC,CAAC,IAAA,qBAAU,EAAC;YACT,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,yBAAyB;SACzC,CAAC,CACP,CAAC;IAEF,OAAO,IAAA,wBAAiB,EAAC,UAAU,CAAC,CAAC;AACvC,CAAC;AAlBD,gDAkBC;AAED,SAAgB,aAAa,CAAC,OAAgB;IAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAE5D,OAAO,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;AAC/D,CAAC;AALD,sCAKC;AAED,SAAgB,mBAAmB,CAAC,OAAgB;IAClD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEjD,MAAM,QAAQ,GAAG,IAAI,gCAAc,CAAC;QAClC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACzC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,SAAS;KACjE,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC;AATD,kDASC;AAED,SAAgB,qBAAqB,CAAC,OAAgB;IACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAEpE,MAAM,QAAQ,GAAG,IAAI,mCAAkB,CAAC;QACtC,QAAQ;KACT,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,CAAC,IAAI,4BAAkB,CAAC,QAAQ,CAAQ,CAAC,CAAC,CAAC,6BAA6B;IAEjG,QAAQ,CAAC,QAAQ,CAAC;QAChB,UAAU,EAAE,IAAI,oCAAgB,EAAE;KACnC,CAAC,CAAC;IAEH,OAAO,QAAe,CAAC,CAAC,6BAA6B;AACvD,CAAC;AAfD,sDAeC;AAED,SAAgB,6BAA6B,CAAC,OAAgB;IAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE/C,OAAO,IAAA,iCAAuB,EAAC,MAAM,CAAC,CAAC,KAAK,CAC1C,IAAI,oBAAQ,CAAC;QACX,CAAC,iDAA0B,CAAC,SAAS,CAAC,EAAE,IAAA,aAAQ,GAAE;KACnD,CAAC,CACH,CAAC;AACJ,CAAC;AARD,sEAQC;AAED,SAAgB,wBAAwB,CAAC,OAAgB;IACvD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAElD,MAAM,OAAO,GAAG,IAAA,2BAAoB,GAAE,CAAC;IAEvC,OAAO;QACL,KAAK,EAAE,CAAC,eAAQ,CAAC,cAAc,EAAE,CAAC;QAClC,OAAO,EAAE,CAAC,IAAA,2BAAiB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5C,OAAO,EAAE,CAAC,IAAA,2BAAiB,EAAC,MAAM,CAAC,CAAC;QACpC,OAAO,EAAE;YACP,IAAA,mCAAyB,EAAC,MAAM,EAAE;gBAChC,OAAO,EAAE,OAAO,CAAC,YAAY;gBAC7B,SAAS,EAAE,OAAO,CAAC,gBAAgB;aACpC,CAAC;YACF,IAAA,iCAAuB,EAAC,MAAM,EAAE;gBAC9B,SAAS,EAAE,OAAO,CAAC,cAAc;aAClC,CAAC;SACH;QACD,MAAM,EAAE,CAAC,eAAQ,CAAC,YAAY,EAAE,CAAC;KAClC,CAAC;AACJ,CAAC;AAtBD,4DAsBC;AAED,SAAgB,uBAAuB,CAAC,OAAgB;IACtD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE/C,OAAO,eAAS,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC;AAJD,0DAIC;AAED,SAAgB,wBAAwB,CAAC,OAAgB;IACvD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEjD,OAAO,IAAI,uBAAe,CACxB;QACE,KAAK,EAAE,eAAe;QACtB,MAAM,EAAE,qBAAqB;QAC7B,MAAM,EAAE,qBAAqB;QAC7B,MAAM,EAAE,qBAAqB;KAC9B,EACD,MAAM,CACP,CAAC;AACJ,CAAC;AAZD,4DAYC"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import type { PageTemplate } from '../../http-server/types';
|
|
3
3
|
import type { Handler } from 'express';
|
|
4
4
|
import { Application, Preset, Resolve } from '../../di';
|
|
5
|
-
import { SagaExtendedMiddleware } from '../../utils/redux-saga';
|
|
6
5
|
import { HttpClientFactory } from '../../http-client/types';
|
|
7
6
|
/**
|
|
8
7
|
* Возвращает preset с зависимостями по умолчанию для работы в рамках ответа на http-запрос.
|
|
@@ -10,7 +9,6 @@ import { HttpClientFactory } from '../../http-client/types';
|
|
|
10
9
|
*/
|
|
11
10
|
export declare function PresetResponse(): Preset;
|
|
12
11
|
export declare function provideHttpClientFactory(resolve: Resolve): HttpClientFactory;
|
|
13
|
-
export declare function provideSagaMiddleware(resolve: Resolve): SagaExtendedMiddleware;
|
|
14
12
|
export declare function provideRender(resolve: Resolve): (element: JSX.Element) => string;
|
|
15
13
|
export declare function provideTemplate(resolve: Resolve): PageTemplate;
|
|
16
14
|
export declare function provideMain(resolve: Resolve): VoidFunction;
|
package/preset/node/response.js
CHANGED
|
@@ -1,39 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HandlerProvider = exports.provideParams = exports.provideMain = exports.provideTemplate = exports.provideRender = exports.
|
|
3
|
+
exports.HandlerProvider = exports.provideParams = exports.provideMain = exports.provideTemplate = exports.provideRender = exports.provideHttpClientFactory = exports.PresetResponse = void 0;
|
|
4
4
|
const di_1 = require("../../di");
|
|
5
5
|
const tokens_1 = require("../../tokens");
|
|
6
6
|
const server_1 = require("react-dom/server");
|
|
7
7
|
const constants_1 = require("../../http-server/constants");
|
|
8
8
|
const template_1 = require("../../http-server/template");
|
|
9
9
|
const utils_1 = require("../../http-server/utils");
|
|
10
|
-
const redux_saga_1 = require("../../utils/redux-saga");
|
|
11
10
|
const middleware_axios_1 = require("middleware-axios");
|
|
12
11
|
const tracing_1 = require("../../http-client/middleware/tracing");
|
|
13
12
|
const logging_1 = require("../../http-client/middleware/logging");
|
|
14
13
|
const headers_1 = require("../../http-client/middleware/headers");
|
|
15
14
|
const cookie_1 = require("../../http-client/middleware/cookie");
|
|
16
15
|
const errors_1 = require("../../http-server/errors");
|
|
16
|
+
const providers_1 = require("../parts/providers");
|
|
17
17
|
/**
|
|
18
18
|
* Возвращает preset с зависимостями по умолчанию для работы в рамках ответа на http-запрос.
|
|
19
19
|
* @return Preset.
|
|
20
20
|
*/
|
|
21
21
|
function PresetResponse() {
|
|
22
22
|
return (0, di_1.createPreset)([
|
|
23
|
-
[tokens_1.KnownToken.sagaMiddleware, provideSagaMiddleware],
|
|
23
|
+
[tokens_1.KnownToken.sagaMiddleware, providers_1.provideSagaMiddleware],
|
|
24
|
+
[tokens_1.KnownToken.Response.builder, () => new utils_1.PageResponse()],
|
|
24
25
|
[tokens_1.KnownToken.Response.render, provideRender],
|
|
25
26
|
[tokens_1.KnownToken.Response.template, provideTemplate],
|
|
26
27
|
[tokens_1.KnownToken.Response.main, provideMain],
|
|
27
28
|
[tokens_1.KnownToken.Response.params, provideParams],
|
|
28
29
|
[tokens_1.KnownToken.Http.Client.factory, provideHttpClientFactory],
|
|
30
|
+
[tokens_1.KnownToken.Http.Client.LogMiddleware.handler, providers_1.provideHttpClientLogHandler],
|
|
29
31
|
]);
|
|
30
32
|
}
|
|
31
33
|
exports.PresetResponse = PresetResponse;
|
|
32
34
|
function provideHttpClientFactory(resolve) {
|
|
33
35
|
const appConfig = resolve(tokens_1.KnownToken.Config.base);
|
|
34
|
-
const logger = resolve(tokens_1.KnownToken.logger);
|
|
35
36
|
const tracer = resolve(tokens_1.KnownToken.Tracing.tracer);
|
|
36
37
|
const context = resolve(tokens_1.KnownToken.Response.context);
|
|
38
|
+
const loggingHandler = resolve(tokens_1.KnownToken.Http.Client.LogMiddleware.handler);
|
|
37
39
|
return function createHttpClient(config) {
|
|
38
40
|
const client = (0, middleware_axios_1.create)({
|
|
39
41
|
...config,
|
|
@@ -43,7 +45,7 @@ function provideHttpClientFactory(resolve) {
|
|
|
43
45
|
},
|
|
44
46
|
});
|
|
45
47
|
client.use((0, tracing_1.tracingMiddleware)(tracer, context.res.locals.tracing.rootContext));
|
|
46
|
-
client.use((0, logging_1.loggingMiddleware)(
|
|
48
|
+
client.use((0, logging_1.loggingMiddleware)(loggingHandler));
|
|
47
49
|
client.use((0, headers_1.passHeadersMiddleware)(context.req, {
|
|
48
50
|
predicate: headerName => headerName.startsWith('simaland-'),
|
|
49
51
|
}));
|
|
@@ -52,11 +54,6 @@ function provideHttpClientFactory(resolve) {
|
|
|
52
54
|
};
|
|
53
55
|
}
|
|
54
56
|
exports.provideHttpClientFactory = provideHttpClientFactory;
|
|
55
|
-
function provideSagaMiddleware(resolve) {
|
|
56
|
-
const logger = resolve(tokens_1.KnownToken.logger);
|
|
57
|
-
return (0, redux_saga_1.createSagaMiddleware)(logger);
|
|
58
|
-
}
|
|
59
|
-
exports.provideSagaMiddleware = provideSagaMiddleware;
|
|
60
57
|
function provideRender(resolve) {
|
|
61
58
|
const { res } = resolve(tokens_1.KnownToken.Response.context);
|
|
62
59
|
return function render(element) {
|
|
@@ -83,9 +80,10 @@ function provideMain(resolve) {
|
|
|
83
80
|
const render = resolve(tokens_1.KnownToken.Response.render);
|
|
84
81
|
const template = resolve(tokens_1.KnownToken.Response.template);
|
|
85
82
|
const logger = resolve(tokens_1.KnownToken.logger);
|
|
83
|
+
const builder = resolve(tokens_1.KnownToken.Response.builder);
|
|
86
84
|
return async function main() {
|
|
87
85
|
try {
|
|
88
|
-
|
|
86
|
+
builder
|
|
89
87
|
.markup(await render(await prepare()))
|
|
90
88
|
.assets(assets)
|
|
91
89
|
.format(utils_1.PageResponse.defineFormat(context.req))
|
|
@@ -94,7 +92,7 @@ function provideMain(resolve) {
|
|
|
94
92
|
}
|
|
95
93
|
catch (error) {
|
|
96
94
|
let message;
|
|
97
|
-
let statusCode = 500;
|
|
95
|
+
let statusCode = 500; // по умолчанию, если на этапе подготовки страницы что-то не так, отдаем 500
|
|
98
96
|
if (error instanceof Error) {
|
|
99
97
|
message = error.message;
|
|
100
98
|
if (error instanceof errors_1.SSRError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/preset/node/response.ts"],"names":[],"mappings":";;;AAGA,iCAAmF;AACnF,yCAA0C;AAC1C,6CAAkD;AAClD,2DAA6D;AAC7D,yDAA0D;AAC1D,mDAA0E;
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/preset/node/response.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BaseConfig } from '../../config/types';
|
|
2
|
+
import { Resolve } from '../../di';
|
|
3
|
+
import { LogMiddlewareHandlerInit } from '../../http-client/middleware/logging';
|
|
4
|
+
import { SagaExtendedMiddleware } from '../../utils/redux-saga';
|
|
5
|
+
export declare function provideBaseConfig(resolve: Resolve): BaseConfig;
|
|
6
|
+
export declare function provideSagaMiddleware(resolve: Resolve): SagaExtendedMiddleware;
|
|
7
|
+
export declare function provideHttpClientLogHandler(resolve: Resolve): LogMiddlewareHandlerInit;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.provideHttpClientLogHandler = exports.provideSagaMiddleware = exports.provideBaseConfig = void 0;
|
|
4
|
+
/* eslint-disable require-jsdoc, jsdoc/require-jsdoc */
|
|
5
|
+
const base_1 = require("../../config/base");
|
|
6
|
+
const tokens_1 = require("../../tokens");
|
|
7
|
+
const redux_saga_1 = require("../../utils/redux-saga");
|
|
8
|
+
const utils_1 = require("./utils");
|
|
9
|
+
function provideBaseConfig(resolve) {
|
|
10
|
+
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
11
|
+
return (0, base_1.createBaseConfig)(source);
|
|
12
|
+
}
|
|
13
|
+
exports.provideBaseConfig = provideBaseConfig;
|
|
14
|
+
function provideSagaMiddleware(resolve) {
|
|
15
|
+
const logger = resolve(tokens_1.KnownToken.logger);
|
|
16
|
+
return (0, redux_saga_1.createSagaMiddleware)(new utils_1.SagaLogging(logger));
|
|
17
|
+
}
|
|
18
|
+
exports.provideSagaMiddleware = provideSagaMiddleware;
|
|
19
|
+
function provideHttpClientLogHandler(resolve) {
|
|
20
|
+
const logger = resolve(tokens_1.KnownToken.logger);
|
|
21
|
+
return function getLogHandler(data) {
|
|
22
|
+
return new utils_1.HttpClientLogging(logger, data);
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
exports.provideHttpClientLogHandler = provideHttpClientLogHandler;
|
|
26
|
+
//# sourceMappingURL=providers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../src/preset/parts/providers.ts"],"names":[],"mappings":";;;AAAA,wDAAwD;AACxD,4CAAqD;AAIrD,yCAA0C;AAC1C,uDAAsF;AACtF,mCAAyD;AAEzD,SAAgB,iBAAiB,CAAC,OAAgB;IAChD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEjD,OAAO,IAAA,uBAAgB,EAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAJD,8CAIC;AAED,SAAgB,qBAAqB,CAAC,OAAgB;IACpD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,CAAC;IAE1C,OAAO,IAAA,iCAAoB,EAAC,IAAI,mBAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AACvD,CAAC;AAJD,sDAIC;AAED,SAAgB,2BAA2B,CAAC,OAAgB;IAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,CAAC;IAE1C,OAAO,SAAS,aAAa,CAAC,IAAI;QAChC,OAAO,IAAI,yBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC;AACJ,CAAC;AAND,kEAMC"}
|
|
File without changes
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/preset/parts/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { SeverityLevel } from '@sentry/browser';
|
|
2
|
+
import { ConfigSource } from '../../config/types';
|
|
3
|
+
import { SharedData, DoneSharedData, FailSharedData, LogMiddlewareHandler } from '../../http-client/middleware/logging';
|
|
4
|
+
import { Logger } from '../../logger';
|
|
5
|
+
import { SagaErrorInfo, SagaInterruptInfo, SagaMiddlewareHandler } from '../../utils/redux-saga/types';
|
|
6
|
+
import { StrictMap } from './types';
|
|
7
|
+
/** Реализация пула хостов. */
|
|
8
|
+
export declare class HttpApiHostPool<Key extends string> implements StrictMap<Key> {
|
|
9
|
+
private map;
|
|
10
|
+
private source;
|
|
11
|
+
/**
|
|
12
|
+
* Конструктор.
|
|
13
|
+
* @param map Карта "Название api >> Название переменной среды с хостом api".
|
|
14
|
+
* @param source Источник конфигурации.
|
|
15
|
+
*/
|
|
16
|
+
constructor(map: Record<Key, string>, source: ConfigSource);
|
|
17
|
+
/** @inheritDoc */
|
|
18
|
+
get(key: Key): string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Возвращает уровень на основе статуса ответа.
|
|
22
|
+
* @param status Статус HTTP-ответа.
|
|
23
|
+
* @return Уровень.
|
|
24
|
+
*/
|
|
25
|
+
export declare function severityFromStatus(status: number | undefined): SeverityLevel;
|
|
26
|
+
/**
|
|
27
|
+
* Обработчик для промежуточного слоя логирования исходящих http-запросов.
|
|
28
|
+
* Отправляет хлебные крошки и данные ошибки, пригодные для Sentry.
|
|
29
|
+
*/
|
|
30
|
+
export declare class HttpClientLogging implements LogMiddlewareHandler {
|
|
31
|
+
private logger;
|
|
32
|
+
private readonly requestInfo;
|
|
33
|
+
/**
|
|
34
|
+
* Конструктор.
|
|
35
|
+
* @param logger Logger.
|
|
36
|
+
* @param data Данные запроса.
|
|
37
|
+
*/
|
|
38
|
+
constructor(logger: Logger, data: SharedData);
|
|
39
|
+
/**
|
|
40
|
+
* Отправит хлебные крошки перед запросом.
|
|
41
|
+
*/
|
|
42
|
+
beforeRequest(): void;
|
|
43
|
+
/**
|
|
44
|
+
* Отправит хлебные крошки после запроса.
|
|
45
|
+
* @param data Данные ответа.
|
|
46
|
+
*/
|
|
47
|
+
afterResponse({ response }: DoneSharedData): void;
|
|
48
|
+
/**
|
|
49
|
+
* Отправит данные ошибки при перехвате.
|
|
50
|
+
* @param data Данные запроса.
|
|
51
|
+
*/
|
|
52
|
+
onCatch({ error }: FailSharedData): void;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Лог событий запуска и выполнения redux-saga.
|
|
56
|
+
*/
|
|
57
|
+
export declare class SagaLogging implements SagaMiddlewareHandler {
|
|
58
|
+
private logger;
|
|
59
|
+
/**
|
|
60
|
+
* @param logger Logger.
|
|
61
|
+
*/
|
|
62
|
+
constructor(logger: Logger);
|
|
63
|
+
/**
|
|
64
|
+
* При получении ошибки выполнения саги передаст ее логгеру ее с данными стека в extra.
|
|
65
|
+
* @param error Ошибка.
|
|
66
|
+
* @param info Инфо выполнения саги.
|
|
67
|
+
*/
|
|
68
|
+
onSagaError(error: Error, info: SagaErrorInfo): void;
|
|
69
|
+
/**
|
|
70
|
+
* При получении ошибки запуска саги передаст ее логгеру.
|
|
71
|
+
* @param error Ошибка.
|
|
72
|
+
*/
|
|
73
|
+
onConfigError(error: Error): void;
|
|
74
|
+
/**
|
|
75
|
+
* При прерывании саги передаст информацию логгеру как ошибку.
|
|
76
|
+
* @param info Инфо прерывания саги.
|
|
77
|
+
*/
|
|
78
|
+
onTimeoutInterrupt({ timeout }: SagaInterruptInfo): void;
|
|
79
|
+
}
|