@sima-land/isomorph 11.0.0-alpha.2 → 11.0.0-alpha.22
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/cache/types.d.ts +24 -2
- package/config/{index.d.ts → base.d.ts} +2 -2
- package/config/{index.js → base.js} +3 -3
- package/config/base.js.map +1 -0
- package/config/browser.d.ts +1 -1
- package/config/browser.js +11 -2
- package/config/browser.js.map +1 -1
- package/config/node.d.ts +1 -1
- package/config/node.js +17 -6
- package/config/node.js.map +1 -1
- package/config/types.d.ts +3 -0
- package/di/application.d.ts +10 -0
- package/{container → di}/application.js +30 -8
- package/di/application.js.map +1 -0
- package/di/container.d.ts +6 -0
- package/di/container.js +52 -0
- package/di/container.js.map +1 -0
- package/di/errors.d.ts +32 -0
- package/di/errors.js +48 -0
- package/di/errors.js.map +1 -0
- package/di/index.d.ts +6 -0
- package/di/index.js +17 -0
- package/di/index.js.map +1 -0
- package/di/preset.d.ts +9 -0
- package/di/preset.js +31 -0
- package/di/preset.js.map +1 -0
- package/di/token.d.ts +7 -0
- package/di/token.js +39 -0
- package/di/token.js.map +1 -0
- package/di/types.d.ts +88 -0
- package/{container → di}/types.js +0 -0
- package/{tracer → di}/types.js.map +1 -1
- package/error-tracking/index.d.ts +24 -0
- package/error-tracking/index.js +32 -0
- package/error-tracking/index.js.map +1 -0
- package/error-tracking/types.d.ts +19 -0
- package/{error-tracker → error-tracking}/types.js +0 -0
- package/{container → error-tracking}/types.js.map +1 -1
- package/http-client/middleware/cookie.d.ts +1 -0
- package/http-client/middleware/cookie.js +2 -1
- package/http-client/middleware/cookie.js.map +1 -1
- package/http-client/middleware/headers.d.ts +13 -0
- package/http-client/middleware/headers.js +24 -0
- package/http-client/middleware/headers.js.map +1 -0
- package/http-client/middleware/logging.d.ts +16 -0
- package/http-client/middleware/logging.js +109 -0
- package/http-client/middleware/logging.js.map +1 -0
- package/http-client/middleware/tracing.d.ts +3 -3
- package/http-client/middleware/tracing.js +22 -9
- package/http-client/middleware/tracing.js.map +1 -1
- package/http-client/sauce/index.d.ts +3 -1
- package/http-client/sauce/index.js +15 -2
- package/http-client/sauce/index.js.map +1 -1
- package/http-client/utils.d.ts +6 -7
- package/http-client/utils.js +24 -14
- package/http-client/utils.js.map +1 -1
- package/http-server/errors.d.ts +11 -0
- package/http-server/errors.js +18 -0
- package/http-server/errors.js.map +1 -0
- package/http-server/handler/health-check.d.ts +1 -1
- package/http-server/handler/health-check.js +1 -1
- package/http-server/middleware/metrics.js +2 -2
- package/http-server/middleware/metrics.js.map +1 -1
- package/http-server/middleware/tracing.d.ts +8 -2
- package/http-server/middleware/tracing.js +19 -1
- package/http-server/middleware/tracing.js.map +1 -1
- package/http-server/template/index.js +6 -0
- package/http-server/template/index.js.map +1 -1
- package/http-server/types.d.ts +2 -0
- package/http-server/utils.d.ts +11 -5
- package/http-server/utils.js +32 -16
- package/http-server/utils.js.map +1 -1
- package/logger/handler/console.d.ts +1 -1
- package/logger/handler/console.js +12 -2
- package/logger/handler/console.js.map +1 -1
- package/logger/handler/sentry.d.ts +3 -3
- package/logger/handler/sentry.js +13 -7
- package/logger/handler/sentry.js.map +1 -1
- package/logger/index.d.ts +2 -6
- package/logger/index.js +2 -27
- package/logger/index.js.map +1 -1
- package/logger/logger.d.ts +6 -0
- package/logger/logger.js +31 -0
- package/logger/logger.js.map +1 -0
- package/logger/types.d.ts +16 -0
- package/metrics/constants.d.ts +3 -0
- package/metrics/constants.js +3 -0
- package/metrics/constants.js.map +1 -1
- package/metrics/node.d.ts +7 -0
- package/metrics/node.js +1 -0
- package/metrics/node.js.map +1 -1
- package/package.json +31 -25
- package/preset/browser/index.d.ts +12 -0
- package/preset/browser/index.js +69 -0
- package/preset/browser/index.js.map +1 -0
- package/preset/node/index.d.ts +14 -6
- package/preset/node/index.js +94 -36
- package/preset/node/index.js.map +1 -1
- package/preset/node/response.d.ts +14 -8
- package/preset/node/response.js +95 -27
- package/preset/node/response.js.map +1 -1
- package/preset/types.d.ts +7 -6
- package/preset/utils.d.ts +15 -0
- package/preset/utils.js +26 -0
- package/preset/utils.js.map +1 -0
- package/tokens.d.ts +35 -18
- package/tokens.js +32 -17
- package/tokens.js.map +1 -1
- package/tracing/index.d.ts +9 -0
- package/tracing/index.js +20 -0
- package/tracing/index.js.map +1 -0
- package/utils/browser/analytics/oko.d.ts +2 -1
- package/utils/browser/analytics/oko.js +2 -1
- package/utils/browser/analytics/oko.js.map +1 -1
- package/utils/browser/storage/index.d.ts +8 -0
- package/utils/browser/storage/index.js +5 -0
- package/utils/browser/storage/index.js.map +1 -1
- package/utils/react/error-handlers/index.d.ts +9 -6
- package/utils/react/error-handlers/index.js +4 -3
- package/utils/react/error-handlers/index.js.map +1 -1
- package/utils/redux/remote-data.d.ts +9 -0
- package/utils/redux/remote-data.js +3 -0
- package/utils/redux/remote-data.js.map +1 -1
- package/utils/redux-saga/index.d.ts +3 -0
- package/utils/redux-saga/index.js +8 -0
- package/utils/redux-saga/index.js.map +1 -0
- package/utils/redux-saga/middleware.d.ts +9 -0
- package/utils/redux-saga/middleware.js +87 -0
- package/utils/redux-saga/middleware.js.map +1 -0
- package/utils/redux-saga/take-chain.d.ts +2 -0
- package/utils/redux-saga/take-chain.js +2 -0
- package/utils/redux-saga/take-chain.js.map +1 -1
- package/utils/redux-saga/types.d.ts +6 -0
- package/{saga-runner → utils/redux-saga}/types.js +0 -0
- package/{error-tracker → utils/redux-saga}/types.js.map +1 -1
- package/utils/ssr/index.d.ts +41 -0
- package/utils/ssr/index.js +54 -0
- package/utils/ssr/index.js.map +1 -0
- package/utils/webpack/index.d.ts +23 -0
- package/utils/webpack/index.js +68 -0
- package/utils/webpack/index.js.map +1 -0
- package/utils/webpack/module-federation/index.d.ts +4 -1
- package/utils/webpack/module-federation/index.js +4 -2
- package/utils/webpack/module-federation/index.js.map +1 -1
- package/utils/webpack/module-federation/types.d.ts +4 -0
- package/utils/webpack/module-federation/utils.d.ts +1 -0
- package/utils/webpack/module-federation/utils.js +1 -0
- package/utils/webpack/module-federation/utils.js.map +1 -1
- package/config/index.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/container/application.d.ts +0 -25
- package/container/application.js.map +0 -1
- package/container/index.d.ts +0 -18
- package/container/index.js +0 -74
- package/container/index.js.map +0 -1
- package/container/types.d.ts +0 -14
- 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/utils.d.ts +0 -12
- package/error-tracker/utils.js +0 -19
- package/error-tracker/utils.js.map +0 -1
- package/preset/index.d.ts +0 -7
- package/preset/index.js +0 -25
- package/preset/index.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.map +0 -1
- package/tracer/node.d.ts +0 -10
- package/tracer/node.js +0 -38
- package/tracer/node.js.map +0 -1
- package/tracer/types.d.ts +0 -2
- package/tracer/types.js +0 -3
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Resolve } from '../../di';
|
|
2
|
+
import { Logger } from '../../logger';
|
|
3
|
+
import { SagaExtendedMiddleware } from '../../utils/redux-saga';
|
|
4
|
+
import type { BaseConfig } from '../../config/types';
|
|
5
|
+
import { BridgeClientSide } from '../../utils/ssr';
|
|
6
|
+
import { StrictMap, KnownHttpApiKey } from '../types';
|
|
7
|
+
export declare function PresetBrowser(): import("../../di").Preset;
|
|
8
|
+
export declare function provideBaseConfig(resolve: Resolve): BaseConfig;
|
|
9
|
+
export declare function provideLogger(resolve: Resolve): Logger;
|
|
10
|
+
export declare function provideSagaMiddleware(resolve: Resolve): SagaExtendedMiddleware;
|
|
11
|
+
export declare function provideBridgeClientSide(resolve: Resolve): BridgeClientSide<unknown>;
|
|
12
|
+
export declare function provideKnownHttpApiHosts(resolve: Resolve): StrictMap<KnownHttpApiKey>;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.provideKnownHttpApiHosts = exports.provideBridgeClientSide = exports.provideSagaMiddleware = exports.provideLogger = exports.provideBaseConfig = exports.PresetBrowser = void 0;
|
|
4
|
+
/* eslint-disable require-jsdoc, jsdoc/require-jsdoc */
|
|
5
|
+
const di_1 = require("../../di");
|
|
6
|
+
const tokens_1 = require("../../tokens");
|
|
7
|
+
const base_1 = require("../../config/base");
|
|
8
|
+
const browser_1 = require("../../config/browser");
|
|
9
|
+
const logger_1 = require("../../logger");
|
|
10
|
+
const sentry_1 = require("../../logger/handler/sentry");
|
|
11
|
+
const redux_saga_1 = require("../../utils/redux-saga");
|
|
12
|
+
const browser_2 = require("@sentry/browser");
|
|
13
|
+
const middleware_axios_1 = require("middleware-axios");
|
|
14
|
+
const ssr_1 = require("../../utils/ssr");
|
|
15
|
+
const utils_1 = require("../utils");
|
|
16
|
+
function PresetBrowser() {
|
|
17
|
+
return (0, di_1.createPreset)([
|
|
18
|
+
[tokens_1.KnownToken.Config.source, browser_1.createConfigSource],
|
|
19
|
+
[tokens_1.KnownToken.Config.base, provideBaseConfig],
|
|
20
|
+
[tokens_1.KnownToken.logger, provideLogger],
|
|
21
|
+
[tokens_1.KnownToken.sagaMiddleware, provideSagaMiddleware],
|
|
22
|
+
[tokens_1.KnownToken.Http.Client.factory, () => middleware_axios_1.create],
|
|
23
|
+
[tokens_1.KnownToken.SsrBridge.clientSide, provideBridgeClientSide],
|
|
24
|
+
[tokens_1.KnownToken.Http.Api.knownHosts, provideKnownHttpApiHosts],
|
|
25
|
+
]);
|
|
26
|
+
}
|
|
27
|
+
exports.PresetBrowser = PresetBrowser;
|
|
28
|
+
function provideBaseConfig(resolve) {
|
|
29
|
+
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
30
|
+
return (0, base_1.createBaseConfig)(source);
|
|
31
|
+
}
|
|
32
|
+
exports.provideBaseConfig = provideBaseConfig;
|
|
33
|
+
function provideLogger(resolve) {
|
|
34
|
+
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
35
|
+
const client = new browser_2.BrowserClient({
|
|
36
|
+
transport: browser_2.makeFetchTransport,
|
|
37
|
+
stackParser: browser_2.defaultStackParser,
|
|
38
|
+
dsn: source.require('PUBLIC_SENTRY_DSN'),
|
|
39
|
+
release: source.require('SENTRY_RELEASE'),
|
|
40
|
+
environment: source.require('PUBLIC_SENTRY_ENVIRONMENT'),
|
|
41
|
+
integrations: [...browser_2.defaultIntegrations],
|
|
42
|
+
});
|
|
43
|
+
const hub = new browser_2.Hub(client);
|
|
44
|
+
const logger = (0, logger_1.createLogger)();
|
|
45
|
+
logger.subscribe((0, sentry_1.createSentryHandler)(hub));
|
|
46
|
+
return logger;
|
|
47
|
+
}
|
|
48
|
+
exports.provideLogger = provideLogger;
|
|
49
|
+
function provideSagaMiddleware(resolve) {
|
|
50
|
+
const logger = resolve(tokens_1.KnownToken.logger);
|
|
51
|
+
return (0, redux_saga_1.createSagaMiddleware)(logger);
|
|
52
|
+
}
|
|
53
|
+
exports.provideSagaMiddleware = provideSagaMiddleware;
|
|
54
|
+
function provideBridgeClientSide(resolve) {
|
|
55
|
+
const config = resolve(tokens_1.KnownToken.Config.base);
|
|
56
|
+
return ssr_1.SsrBridge.resolve(config.appName);
|
|
57
|
+
}
|
|
58
|
+
exports.provideBridgeClientSide = provideBridgeClientSide;
|
|
59
|
+
function provideKnownHttpApiHosts(resolve) {
|
|
60
|
+
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
61
|
+
return new utils_1.HttpApiHostPool({
|
|
62
|
+
ilium: 'PUBLIC_API_URL_ILIUM',
|
|
63
|
+
simaV3: 'PUBLIC_API_URL_SIMALAND_V3',
|
|
64
|
+
simaV4: 'PUBLIC_API_URL_SIMALAND_V4',
|
|
65
|
+
simaV6: 'PUBLIC_API_URL_SIMALAND_V6',
|
|
66
|
+
}, source);
|
|
67
|
+
}
|
|
68
|
+
exports.provideKnownHttpApiHosts = provideKnownHttpApiHosts;
|
|
69
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preset/browser/index.ts"],"names":[],"mappings":";;;AAAA,wDAAwD;AACxD,iCAAiD;AACjD,yCAA0C;AAC1C,4CAAqD;AACrD,kDAA0D;AAC1D,yCAAoD;AACpD,wDAAkE;AAClE,uDAAsF;AACtF,6CAMyB;AACzB,uDAA0C;AAE1C,yCAA8D;AAE9D,oCAA2C;AAE3C,SAAgB,aAAa;IAC3B,OAAO,IAAA,iBAAY,EAAC;QAClB,CAAC,mBAAU,CAAC,MAAM,CAAC,MAAM,EAAE,4BAAkB,CAAC;QAC9C,CAAC,mBAAU,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC;QAC3C,CAAC,mBAAU,CAAC,MAAM,EAAE,aAAa,CAAC;QAClC,CAAC,mBAAU,CAAC,cAAc,EAAE,qBAAqB,CAAC;QAClD,CAAC,mBAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,yBAAM,CAAC;QAC9C,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;AAVD,sCAUC;AAED,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,aAAa,CAAC,OAAgB;IAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEjD,MAAM,MAAM,GAAG,IAAI,uBAAa,CAAC;QAC/B,SAAS,EAAE,4BAAkB;QAC7B,WAAW,EAAE,4BAAkB;QAC/B,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACxC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACzC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,2BAA2B,CAAC;QACxD,YAAY,EAAE,CAAC,GAAG,6BAAmB,CAAC;KACvC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,IAAI,aAAG,CAAC,MAAM,CAAC,CAAC;IAE5B,MAAM,MAAM,GAAG,IAAA,qBAAY,GAAE,CAAC;IAE9B,MAAM,CAAC,SAAS,CAAC,IAAA,4BAAmB,EAAC,GAAG,CAAC,CAAC,CAAC;IAE3C,OAAO,MAAM,CAAC;AAChB,CAAC;AAnBD,sCAmBC;AAED,SAAgB,qBAAqB,CAAC,OAAgB;IACpD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,CAAC;IAE1C,OAAO,IAAA,iCAAoB,EAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAJD,sDAIC;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,sBAAsB;QAC7B,MAAM,EAAE,4BAA4B;QACpC,MAAM,EAAE,4BAA4B;QACpC,MAAM,EAAE,4BAA4B;KACrC,EACD,MAAM,CACP,CAAC;AACJ,CAAC;AAZD,4DAYC"}
|
package/preset/node/index.d.ts
CHANGED
|
@@ -1,15 +1,23 @@
|
|
|
1
|
-
import type { Preset } from '../types';
|
|
2
|
-
import type { Provider } from '../../container/types';
|
|
3
1
|
import type { BaseConfig } from '../../config/types';
|
|
4
2
|
import type { Logger } from '../../logger/types';
|
|
5
3
|
import type { Tracer } from '@opentelemetry/api';
|
|
6
4
|
import type { DefaultMiddleware } from '../../http-server/types';
|
|
5
|
+
import { Resolve, Preset } from '../../di';
|
|
6
|
+
import { BasicTracerProvider, SpanExporter } from '@opentelemetry/tracing';
|
|
7
|
+
import { Resource } from '@opentelemetry/resources';
|
|
8
|
+
import { BridgeServerSide } from '../../utils/ssr';
|
|
9
|
+
import { StrictMap, KnownHttpApiKey } from '../types';
|
|
7
10
|
/**
|
|
8
11
|
* Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.
|
|
9
12
|
* @return Preset.
|
|
10
13
|
*/
|
|
11
14
|
export declare function PresetNode(): Preset;
|
|
12
|
-
export declare
|
|
13
|
-
export declare
|
|
14
|
-
export declare
|
|
15
|
-
export declare
|
|
15
|
+
export declare function provideBaseConfig(resolve: Resolve): BaseConfig;
|
|
16
|
+
export declare function provideLogger(resolve: Resolve): Logger;
|
|
17
|
+
export declare function provideTracer(resolve: Resolve): Tracer;
|
|
18
|
+
export declare function provideSpanExporter(resolve: Resolve): SpanExporter;
|
|
19
|
+
export declare function provideTracerProvider(resolve: Resolve): BasicTracerProvider;
|
|
20
|
+
export declare function provideTracerProviderResource(resolve: Resolve): Resource;
|
|
21
|
+
export declare function provideDefaultMiddleware(resolve: Resolve): DefaultMiddleware;
|
|
22
|
+
export declare function provideBridgeServerSide(resolve: Resolve): BridgeServerSide;
|
|
23
|
+
export declare function provideKnownHttpApiHosts(resolve: Resolve): StrictMap<KnownHttpApiKey>;
|
package/preset/node/index.js
CHANGED
|
@@ -3,77 +3,120 @@ 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.provideDefaultMiddleware = exports.provideTracer = exports.provideLogger = exports.provideBaseConfig = exports.PresetNode = void 0;
|
|
6
|
+
exports.provideKnownHttpApiHosts = exports.provideBridgeServerSide = exports.provideDefaultMiddleware = exports.provideTracerProviderResource = exports.provideTracerProvider = exports.provideSpanExporter = exports.provideTracer = exports.provideLogger = exports.provideBaseConfig = exports.PresetNode = void 0;
|
|
7
|
+
const di_1 = require("../../di");
|
|
8
|
+
const tracing_1 = require("@opentelemetry/tracing");
|
|
7
9
|
const tokens_1 = require("../../tokens");
|
|
8
|
-
const __1 = require("..");
|
|
9
10
|
const node_1 = require("../../config/node");
|
|
10
|
-
const
|
|
11
|
+
const base_1 = require("../../config/base");
|
|
11
12
|
const logger_1 = require("../../logger");
|
|
12
|
-
const node_2 = require("../../tracer/node");
|
|
13
13
|
const console_1 = require("../../logger/handler/console");
|
|
14
14
|
const sentry_1 = require("../../logger/handler/sentry");
|
|
15
|
-
const node_3 = require("../../error-tracker/node");
|
|
16
15
|
const logging_1 = require("../../http-server/middleware/logging");
|
|
17
|
-
const
|
|
16
|
+
const tracing_2 = require("../../http-server/middleware/tracing");
|
|
18
17
|
const metrics_1 = require("../../http-server/middleware/metrics");
|
|
19
|
-
const
|
|
18
|
+
const node_2 = require("../../metrics/node");
|
|
20
19
|
const exporter_jaeger_1 = require("@opentelemetry/exporter-jaeger");
|
|
21
20
|
const middleware_axios_1 = require("middleware-axios");
|
|
22
21
|
const express_1 = __importDefault(require("express"));
|
|
23
|
-
const
|
|
22
|
+
const node_3 = require("@sentry/node");
|
|
23
|
+
const sdk_trace_node_1 = require("@opentelemetry/sdk-trace-node");
|
|
24
|
+
const resources_1 = require("@opentelemetry/resources");
|
|
25
|
+
const propagator_jaeger_1 = require("@opentelemetry/propagator-jaeger");
|
|
26
|
+
const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
|
|
27
|
+
const tracing_3 = require("../../tracing");
|
|
28
|
+
const os_1 = require("os");
|
|
29
|
+
const ssr_1 = require("../../utils/ssr");
|
|
30
|
+
const utils_1 = require("../utils");
|
|
24
31
|
/**
|
|
25
32
|
* Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.
|
|
26
33
|
* @return Preset.
|
|
27
34
|
*/
|
|
28
35
|
function PresetNode() {
|
|
29
|
-
return (0,
|
|
36
|
+
return (0, di_1.createPreset)([
|
|
30
37
|
[tokens_1.KnownToken.Config.source, node_1.createConfigSource],
|
|
31
|
-
[tokens_1.KnownToken.Config.base,
|
|
32
|
-
[tokens_1.KnownToken.logger,
|
|
33
|
-
[tokens_1.KnownToken.tracer,
|
|
38
|
+
[tokens_1.KnownToken.Config.base, provideBaseConfig],
|
|
39
|
+
[tokens_1.KnownToken.logger, provideLogger],
|
|
40
|
+
[tokens_1.KnownToken.Tracing.tracer, provideTracer],
|
|
41
|
+
[tokens_1.KnownToken.Tracing.spanExporter, provideSpanExporter],
|
|
42
|
+
[tokens_1.KnownToken.Tracing.tracerProvider, provideTracerProvider],
|
|
43
|
+
[tokens_1.KnownToken.Tracing.tracerProviderResource, provideTracerProviderResource],
|
|
34
44
|
[tokens_1.KnownToken.Http.Client.factory, () => middleware_axios_1.create],
|
|
35
45
|
[tokens_1.KnownToken.Http.Server.factory, () => express_1.default],
|
|
36
|
-
[tokens_1.KnownToken.Http.Server.Defaults.middleware,
|
|
37
|
-
[tokens_1.KnownToken.Metrics.httpApp,
|
|
46
|
+
[tokens_1.KnownToken.Http.Server.Defaults.middleware, provideDefaultMiddleware],
|
|
47
|
+
[tokens_1.KnownToken.Metrics.httpApp, node_2.createMetricsHttpApp],
|
|
48
|
+
[tokens_1.KnownToken.SsrBridge.serverSide, provideBridgeServerSide],
|
|
49
|
+
[tokens_1.KnownToken.Http.Api.knownHosts, provideKnownHttpApiHosts],
|
|
38
50
|
]);
|
|
39
51
|
}
|
|
40
52
|
exports.PresetNode = PresetNode;
|
|
41
|
-
|
|
53
|
+
function provideBaseConfig(resolve) {
|
|
42
54
|
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
43
|
-
return (0,
|
|
44
|
-
}
|
|
55
|
+
return (0, base_1.createBaseConfig)(source);
|
|
56
|
+
}
|
|
45
57
|
exports.provideBaseConfig = provideBaseConfig;
|
|
46
|
-
|
|
58
|
+
function provideLogger(resolve) {
|
|
47
59
|
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
48
60
|
const config = resolve(tokens_1.KnownToken.Config.base);
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
61
|
+
const client = new node_3.NodeClient({
|
|
62
|
+
transport: node_3.makeNodeTransport,
|
|
63
|
+
stackParser: node_3.defaultStackParser,
|
|
64
|
+
dsn: source.require('SENTRY_DSN'),
|
|
65
|
+
release: source.require('SENTRY_RELEASE'),
|
|
66
|
+
environment: source.require('SENTRY_ENVIRONMENT'),
|
|
67
|
+
integrations: [...node_3.defaultIntegrations],
|
|
53
68
|
});
|
|
69
|
+
const hub = new node_3.Hub(client);
|
|
54
70
|
const logger = (0, logger_1.createLogger)();
|
|
55
71
|
logger.subscribe((0, console_1.createConsoleHandler)(config));
|
|
56
|
-
logger.subscribe((0, sentry_1.createSentryHandler)(
|
|
72
|
+
logger.subscribe((0, sentry_1.createSentryHandler)(hub));
|
|
57
73
|
return logger;
|
|
58
|
-
}
|
|
74
|
+
}
|
|
59
75
|
exports.provideLogger = provideLogger;
|
|
60
|
-
|
|
76
|
+
function provideTracer(resolve) {
|
|
77
|
+
const config = resolve(tokens_1.KnownToken.Config.base);
|
|
78
|
+
const provider = resolve(tokens_1.KnownToken.Tracing.tracerProvider);
|
|
79
|
+
return provider.getTracer(config.appName, config.appVersion);
|
|
80
|
+
}
|
|
81
|
+
exports.provideTracer = provideTracer;
|
|
82
|
+
function provideSpanExporter(resolve) {
|
|
61
83
|
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
62
84
|
const exporter = new exporter_jaeger_1.JaegerExporter({
|
|
63
|
-
|
|
85
|
+
host: source.require('JAEGER_AGENT_HOST'),
|
|
86
|
+
port: parseInt(source.require('JAEGER_AGENT_PORT')) || undefined,
|
|
64
87
|
});
|
|
65
|
-
return
|
|
66
|
-
}
|
|
67
|
-
exports.
|
|
68
|
-
|
|
88
|
+
return exporter;
|
|
89
|
+
}
|
|
90
|
+
exports.provideSpanExporter = provideSpanExporter;
|
|
91
|
+
function provideTracerProvider(resolve) {
|
|
92
|
+
const exporter = resolve(tokens_1.KnownToken.Tracing.spanExporter);
|
|
93
|
+
const resource = resolve(tokens_1.KnownToken.Tracing.tracerProviderResource);
|
|
94
|
+
const provider = new sdk_trace_node_1.NodeTracerProvider({
|
|
95
|
+
resource,
|
|
96
|
+
});
|
|
97
|
+
provider.addSpanProcessor(new tracing_1.BatchSpanProcessor(exporter)); // @todo разобраться с as any
|
|
98
|
+
provider.register({
|
|
99
|
+
propagator: new propagator_jaeger_1.JaegerPropagator(),
|
|
100
|
+
});
|
|
101
|
+
return provider; // @todo разобраться с as any
|
|
102
|
+
}
|
|
103
|
+
exports.provideTracerProvider = provideTracerProvider;
|
|
104
|
+
function provideTracerProviderResource(resolve) {
|
|
105
|
+
const config = resolve(tokens_1.KnownToken.Config.base);
|
|
106
|
+
return (0, tracing_3.getConventionalResource)(config).merge(new resources_1.Resource({
|
|
107
|
+
[semantic_conventions_1.SemanticResourceAttributes.HOST_NAME]: (0, os_1.hostname)(),
|
|
108
|
+
}));
|
|
109
|
+
}
|
|
110
|
+
exports.provideTracerProviderResource = provideTracerProviderResource;
|
|
111
|
+
function provideDefaultMiddleware(resolve) {
|
|
69
112
|
const config = resolve(tokens_1.KnownToken.Config.base);
|
|
70
113
|
const logger = resolve(tokens_1.KnownToken.logger);
|
|
71
|
-
const tracer = resolve(tokens_1.KnownToken.tracer);
|
|
72
|
-
const metrics = (0,
|
|
114
|
+
const tracer = resolve(tokens_1.KnownToken.Tracing.tracer);
|
|
115
|
+
const metrics = (0, node_2.createDefaultMetrics)();
|
|
73
116
|
return {
|
|
74
|
-
start: [
|
|
117
|
+
start: [node_3.Handlers.requestHandler()],
|
|
75
118
|
logging: [(0, logging_1.loggingMiddleware)(config, logger)],
|
|
76
|
-
tracing: [(0,
|
|
119
|
+
tracing: [(0, tracing_2.tracingMiddleware)(tracer)],
|
|
77
120
|
metrics: [
|
|
78
121
|
(0, metrics_1.responseMetricsMiddleware)(config, {
|
|
79
122
|
counter: metrics.requestCount,
|
|
@@ -83,8 +126,23 @@ const provideDefaultMiddleware = resolve => {
|
|
|
83
126
|
histogram: metrics.renderDuration,
|
|
84
127
|
}),
|
|
85
128
|
],
|
|
86
|
-
finish: [
|
|
129
|
+
finish: [node_3.Handlers.errorHandler()],
|
|
87
130
|
};
|
|
88
|
-
}
|
|
131
|
+
}
|
|
89
132
|
exports.provideDefaultMiddleware = provideDefaultMiddleware;
|
|
133
|
+
function provideBridgeServerSide(resolve) {
|
|
134
|
+
const config = resolve(tokens_1.KnownToken.Config.base);
|
|
135
|
+
return ssr_1.SsrBridge.prepare(config.appName);
|
|
136
|
+
}
|
|
137
|
+
exports.provideBridgeServerSide = provideBridgeServerSide;
|
|
138
|
+
function provideKnownHttpApiHosts(resolve) {
|
|
139
|
+
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
140
|
+
return new utils_1.HttpApiHostPool({
|
|
141
|
+
ilium: 'API_URL_ILIUM',
|
|
142
|
+
simaV3: 'API_URL_SIMALAND_V3',
|
|
143
|
+
simaV4: 'API_URL_SIMALAND_V4',
|
|
144
|
+
simaV6: 'API_URL_SIMALAND_V6',
|
|
145
|
+
}, source);
|
|
146
|
+
}
|
|
147
|
+
exports.provideKnownHttpApiHosts = provideKnownHttpApiHosts;
|
|
90
148
|
//# sourceMappingURL=index.js.map
|
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":"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"}
|
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import type { Preset } from '../types';
|
|
3
|
-
import type { Provider, Resolve } from '../../container/types';
|
|
4
|
-
import type { SagaRunner } from '../../saga-runner/types';
|
|
5
2
|
import type { PageTemplate } from '../../http-server/types';
|
|
6
3
|
import type { Handler } from 'express';
|
|
7
|
-
import { Application } from '../../
|
|
4
|
+
import { Application, Preset, Resolve } from '../../di';
|
|
5
|
+
import { SagaExtendedMiddleware } from '../../utils/redux-saga';
|
|
6
|
+
import { HttpClientFactory } from '../../http-client/types';
|
|
8
7
|
/**
|
|
9
8
|
* Возвращает preset с зависимостями по умолчанию для работы в рамках ответа на http-запрос.
|
|
10
9
|
* @return Preset.
|
|
11
10
|
*/
|
|
12
11
|
export declare function PresetResponse(): Preset;
|
|
13
|
-
export declare
|
|
14
|
-
export declare
|
|
15
|
-
export declare
|
|
16
|
-
export declare
|
|
12
|
+
export declare function provideHttpClientFactory(resolve: Resolve): HttpClientFactory;
|
|
13
|
+
export declare function provideSagaMiddleware(resolve: Resolve): SagaExtendedMiddleware;
|
|
14
|
+
export declare function provideRender(resolve: Resolve): (element: JSX.Element) => string;
|
|
15
|
+
export declare function provideTemplate(resolve: Resolve): PageTemplate;
|
|
16
|
+
export declare function provideMain(resolve: Resolve): VoidFunction;
|
|
17
|
+
export declare function provideParams(resolve: Resolve): Record<string, unknown>;
|
|
18
|
+
/**
|
|
19
|
+
* Возвращает express-handler, создающий дочернее di-приложение при запросе.
|
|
20
|
+
* @param appFactory Фабрика di-приложения запроса.
|
|
21
|
+
* @return Обработчик.
|
|
22
|
+
*/
|
|
17
23
|
export declare function HandlerProvider(appFactory: () => Application): (resolve: Resolve) => Handler;
|
package/preset/node/response.js
CHANGED
|
@@ -1,33 +1,63 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HandlerProvider = exports.provideMain = exports.provideTemplate = exports.provideRender = exports.
|
|
4
|
-
const
|
|
3
|
+
exports.HandlerProvider = exports.provideParams = exports.provideMain = exports.provideTemplate = exports.provideRender = exports.provideSagaMiddleware = exports.provideHttpClientFactory = exports.PresetResponse = void 0;
|
|
4
|
+
const di_1 = require("../../di");
|
|
5
5
|
const tokens_1 = require("../../tokens");
|
|
6
|
-
const __1 = require("..");
|
|
7
6
|
const server_1 = require("react-dom/server");
|
|
8
|
-
const saga_runner_1 = require("../../saga-runner");
|
|
9
7
|
const constants_1 = require("../../http-server/constants");
|
|
10
8
|
const template_1 = require("../../http-server/template");
|
|
11
9
|
const utils_1 = require("../../http-server/utils");
|
|
10
|
+
const redux_saga_1 = require("../../utils/redux-saga");
|
|
11
|
+
const middleware_axios_1 = require("middleware-axios");
|
|
12
|
+
const tracing_1 = require("../../http-client/middleware/tracing");
|
|
13
|
+
const logging_1 = require("../../http-client/middleware/logging");
|
|
14
|
+
const headers_1 = require("../../http-client/middleware/headers");
|
|
15
|
+
const cookie_1 = require("../../http-client/middleware/cookie");
|
|
16
|
+
const errors_1 = require("../../http-server/errors");
|
|
12
17
|
/**
|
|
13
18
|
* Возвращает preset с зависимостями по умолчанию для работы в рамках ответа на http-запрос.
|
|
14
19
|
* @return Preset.
|
|
15
20
|
*/
|
|
16
21
|
function PresetResponse() {
|
|
17
|
-
return (0,
|
|
18
|
-
[tokens_1.KnownToken.
|
|
19
|
-
[tokens_1.KnownToken.Response.render,
|
|
20
|
-
[tokens_1.KnownToken.Response.template,
|
|
21
|
-
[tokens_1.KnownToken.Response.main,
|
|
22
|
+
return (0, di_1.createPreset)([
|
|
23
|
+
[tokens_1.KnownToken.sagaMiddleware, provideSagaMiddleware],
|
|
24
|
+
[tokens_1.KnownToken.Response.render, provideRender],
|
|
25
|
+
[tokens_1.KnownToken.Response.template, provideTemplate],
|
|
26
|
+
[tokens_1.KnownToken.Response.main, provideMain],
|
|
27
|
+
[tokens_1.KnownToken.Response.params, provideParams],
|
|
28
|
+
[tokens_1.KnownToken.Http.Client.factory, provideHttpClientFactory],
|
|
22
29
|
]);
|
|
23
30
|
}
|
|
24
31
|
exports.PresetResponse = PresetResponse;
|
|
25
|
-
|
|
32
|
+
function provideHttpClientFactory(resolve) {
|
|
33
|
+
const appConfig = resolve(tokens_1.KnownToken.Config.base);
|
|
26
34
|
const logger = resolve(tokens_1.KnownToken.logger);
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const
|
|
35
|
+
const tracer = resolve(tokens_1.KnownToken.Tracing.tracer);
|
|
36
|
+
const context = resolve(tokens_1.KnownToken.Response.context);
|
|
37
|
+
return function createHttpClient(config) {
|
|
38
|
+
const client = (0, middleware_axios_1.create)({
|
|
39
|
+
...config,
|
|
40
|
+
headers: {
|
|
41
|
+
...(0, utils_1.getRequestHeaders)(appConfig, context.req),
|
|
42
|
+
...config.headers,
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
client.use((0, tracing_1.tracingMiddleware)(tracer, context.res.locals.tracing.rootContext));
|
|
46
|
+
client.use((0, logging_1.loggingMiddleware)(logger));
|
|
47
|
+
client.use((0, headers_1.passHeadersMiddleware)(context.req, {
|
|
48
|
+
predicate: headerName => headerName.startsWith('simaland-'),
|
|
49
|
+
}));
|
|
50
|
+
client.use((0, cookie_1.collectCookieMiddleware)(context.req, context.res));
|
|
51
|
+
return client;
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
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
|
+
function provideRender(resolve) {
|
|
31
61
|
const { res } = resolve(tokens_1.KnownToken.Response.context);
|
|
32
62
|
return function render(element) {
|
|
33
63
|
res.emit(constants_1.RESPONSE_EVENT.renderStart);
|
|
@@ -35,37 +65,75 @@ const provideRender = resolve => {
|
|
|
35
65
|
res.emit(constants_1.RESPONSE_EVENT.renderFinish);
|
|
36
66
|
return result;
|
|
37
67
|
};
|
|
38
|
-
}
|
|
68
|
+
}
|
|
39
69
|
exports.provideRender = provideRender;
|
|
40
|
-
|
|
70
|
+
function provideTemplate(resolve) {
|
|
41
71
|
const config = resolve(tokens_1.KnownToken.Config.base);
|
|
42
72
|
return function template(data) {
|
|
43
73
|
return data.type === 'html'
|
|
44
74
|
? (0, template_1.pageTemplate)({ ...data, title: `[dev] ${config.appName}` })
|
|
45
75
|
: data.markup;
|
|
46
76
|
};
|
|
47
|
-
}
|
|
77
|
+
}
|
|
48
78
|
exports.provideTemplate = provideTemplate;
|
|
49
|
-
|
|
79
|
+
function provideMain(resolve) {
|
|
50
80
|
const context = resolve(tokens_1.KnownToken.Response.context);
|
|
51
81
|
const assets = resolve(tokens_1.KnownToken.Response.assets);
|
|
52
82
|
const prepare = resolve(tokens_1.KnownToken.Response.prepare);
|
|
53
83
|
const render = resolve(tokens_1.KnownToken.Response.render);
|
|
54
84
|
const template = resolve(tokens_1.KnownToken.Response.template);
|
|
85
|
+
const logger = resolve(tokens_1.KnownToken.logger);
|
|
55
86
|
return async function main() {
|
|
56
|
-
|
|
57
|
-
.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
87
|
+
try {
|
|
88
|
+
new utils_1.PageResponse()
|
|
89
|
+
.markup(await render(await prepare()))
|
|
90
|
+
.assets(assets)
|
|
91
|
+
.format(utils_1.PageResponse.defineFormat(context.req))
|
|
92
|
+
.template(template)
|
|
93
|
+
.send(context.res);
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
let message;
|
|
97
|
+
let statusCode = 500;
|
|
98
|
+
if (error instanceof Error) {
|
|
99
|
+
message = error.message;
|
|
100
|
+
if (error instanceof errors_1.SSRError) {
|
|
101
|
+
statusCode = error.statusCode;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
message = String(error);
|
|
106
|
+
}
|
|
107
|
+
context.res.status(statusCode).send(message);
|
|
108
|
+
logger.error(error);
|
|
109
|
+
}
|
|
63
110
|
};
|
|
64
|
-
}
|
|
111
|
+
}
|
|
65
112
|
exports.provideMain = provideMain;
|
|
113
|
+
function provideParams(resolve) {
|
|
114
|
+
const context = resolve(tokens_1.KnownToken.Response.context);
|
|
115
|
+
try {
|
|
116
|
+
const headerValue = context.req.header('simaland-params');
|
|
117
|
+
/**
|
|
118
|
+
* Node.js переводит в ASCII.
|
|
119
|
+
* @see {https://github.com/nodejs/node/issues/17390}
|
|
120
|
+
*/
|
|
121
|
+
const processedValue = headerValue ? Buffer.from(headerValue, 'binary').toString('utf8') : '';
|
|
122
|
+
return processedValue ? JSON.parse(processedValue) : {};
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
return {};
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
exports.provideParams = provideParams;
|
|
129
|
+
/**
|
|
130
|
+
* Возвращает express-handler, создающий дочернее di-приложение при запросе.
|
|
131
|
+
* @param appFactory Фабрика di-приложения запроса.
|
|
132
|
+
* @return Обработчик.
|
|
133
|
+
*/
|
|
66
134
|
function HandlerProvider(appFactory) {
|
|
67
135
|
return function provider(resolve) {
|
|
68
|
-
const parent = resolve(
|
|
136
|
+
const parent = resolve(di_1.CURRENT_APP);
|
|
69
137
|
return function handler(req, res, next) {
|
|
70
138
|
const app = appFactory();
|
|
71
139
|
app.attach(parent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/preset/node/response.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/preset/node/response.ts"],"names":[],"mappings":"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"}
|
package/preset/types.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
export declare type KnownHttpApiKey = 'ilium' | 'simaV3' | 'simaV4' | 'simaV6';
|
|
2
|
+
/**
|
|
3
|
+
* Строгая версия Map без возможности добавлять/удалять.
|
|
4
|
+
*/
|
|
5
|
+
export interface StrictMap<Key extends string> {
|
|
6
|
+
/** Возвращает значение по ключу. */
|
|
7
|
+
get(key: Key): string;
|
|
7
8
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ConfigSource } from '../config/types';
|
|
2
|
+
import { StrictMap } from './types';
|
|
3
|
+
/** Реализация пула хостов. */
|
|
4
|
+
export declare class HttpApiHostPool<Key extends string> implements StrictMap<Key> {
|
|
5
|
+
private map;
|
|
6
|
+
private source;
|
|
7
|
+
/**
|
|
8
|
+
* Конструктор.
|
|
9
|
+
* @param map Карта значений по их ключам.
|
|
10
|
+
* @param source Источник конфигурации.
|
|
11
|
+
*/
|
|
12
|
+
constructor(map: Record<Key, string>, source: ConfigSource);
|
|
13
|
+
/** @inheritDoc */
|
|
14
|
+
get(key: Key): string;
|
|
15
|
+
}
|
package/preset/utils.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HttpApiHostPool = void 0;
|
|
4
|
+
/** Реализация пула хостов. */
|
|
5
|
+
class HttpApiHostPool {
|
|
6
|
+
/**
|
|
7
|
+
* Конструктор.
|
|
8
|
+
* @param map Карта значений по их ключам.
|
|
9
|
+
* @param source Источник конфигурации.
|
|
10
|
+
*/
|
|
11
|
+
constructor(map, source) {
|
|
12
|
+
this.map = map;
|
|
13
|
+
this.source = source;
|
|
14
|
+
}
|
|
15
|
+
/** @inheritDoc */
|
|
16
|
+
get(key) {
|
|
17
|
+
const variableName = this.map[key];
|
|
18
|
+
if (!variableName) {
|
|
19
|
+
throw Error(`Known HTTP API not found by key "${key}"`);
|
|
20
|
+
}
|
|
21
|
+
// "лениво" берём переменную, именно в момент вызова (чтобы не заставлять указывать в сервисах все переменные разом)
|
|
22
|
+
return this.source.require(variableName);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.HttpApiHostPool = HttpApiHostPool;
|
|
26
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/preset/utils.ts"],"names":[],"mappings":";;;AAGA,8BAA8B;AAC9B,MAAa,eAAe;IAI1B;;;;OAIG;IACH,YAAY,GAAwB,EAAE,MAAoB;QACxD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,kBAAkB;IAClB,GAAG,CAAC,GAAQ;QACV,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEnC,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,KAAK,CAAC,oCAAoC,GAAG,GAAG,CAAC,CAAC;SACzD;QAED,oHAAoH;QACpH,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3C,CAAC;CACF;AAzBD,0CAyBC"}
|