@sima-land/isomorph 11.0.0-alpha.10 → 11.0.0-alpha.13
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/config/node.js +7 -2
- package/config/node.js.map +1 -1
- package/di/application.js +1 -0
- package/di/application.js.map +1 -1
- package/di/preset.d.ts +1 -1
- package/di/preset.js +3 -1
- package/di/preset.js.map +1 -1
- package/{error-tracker/utils.d.ts → error-tracking/index.d.ts} +0 -0
- package/{error-tracker/utils.js → error-tracking/index.js} +1 -1
- package/error-tracking/index.js.map +1 -0
- package/{error-tracker → error-tracking}/types.d.ts +0 -0
- package/{error-tracker → error-tracking}/types.js +0 -0
- package/{saga-runner → error-tracking}/types.js.map +1 -1
- package/http-client/middleware/logging.js +5 -5
- package/http-client/middleware/logging.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 +3 -5
- package/http-server/utils.js +16 -15
- package/http-server/utils.js.map +1 -1
- package/logger/handler/sentry.js +3 -3
- 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/package.json +1 -1
- package/preset/browser/index.d.ts +7 -0
- package/preset/browser/index.js +8 -5
- package/preset/browser/index.js.map +1 -1
- package/preset/node/index.d.ts +8 -8
- package/preset/node/index.js +21 -21
- package/preset/node/index.js.map +1 -1
- package/preset/node/response.d.ts +6 -6
- package/preset/node/response.js +18 -19
- package/preset/node/response.js.map +1 -1
- package/tokens.d.ts +2 -2
- package/tokens.js +1 -1
- package/tokens.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/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/error-tracker/utils.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/config/node.js
CHANGED
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.createConfigSource = void 0;
|
|
4
7
|
const env_1 = require("@humanwhocodes/env");
|
|
5
8
|
const dotenv_1 = require("dotenv");
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
6
10
|
/**
|
|
7
11
|
* Возвращает "источник" для конфигурации.
|
|
8
12
|
* @return Источник.
|
|
9
13
|
*/
|
|
10
14
|
function createConfigSource() {
|
|
11
15
|
const envName = process.env.NODE_ENV;
|
|
12
|
-
const source = { ...process.env };
|
|
13
16
|
// подключаем соответствующий среде файл со значениями по умолчанию
|
|
14
17
|
if (envName) {
|
|
15
|
-
(0, dotenv_1.config)({ path: `./.env.${envName}` });
|
|
18
|
+
(0, dotenv_1.config)({ path: path_1.default.resolve(process.cwd(), `./.env.${envName}`) });
|
|
16
19
|
}
|
|
20
|
+
// после подключения env-файла формируем источник данных окружения
|
|
21
|
+
const source = { ...process.env };
|
|
17
22
|
// докидываем зашиваемые переменные окружения
|
|
18
23
|
if (typeof __ISOMORPH_ENV__ !== 'undefined') {
|
|
19
24
|
Object.assign(source, __ISOMORPH_ENV__);
|
package/config/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/config/node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/config/node.ts"],"names":[],"mappings":";;;;;;AACA,4CAAyC;AACzC,mCAAgC;AAChC,gDAAwB;AAIxB;;;GAGG;AACH,SAAgB,kBAAkB;IAChC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IAErC,mEAAmE;IACnE,IAAI,OAAO,EAAE;QACX,IAAA,eAAM,EAAC,EAAE,IAAI,EAAE,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;KACpE;IAED,kEAAkE;IAClE,MAAM,MAAM,GAAuC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAEtE,6CAA6C;IAC7C,IAAI,OAAO,gBAAgB,KAAK,WAAW,EAAE;QAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;KACzC;IAED,OAAO,IAAI,SAAG,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC;AAjBD,gDAiBC"}
|
package/di/application.js
CHANGED
package/di/application.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../src/di/application.ts"],"names":[],"mappings":";;;AAWA,qCAA6C;AAC7C,mCAAsC;AACtC,2CAA8C;AAE9C;;GAEG;AACU,QAAA,WAAW,GAAG,IAAA,mBAAW,EAAC,kBAAkB,CAAC,CAAC;AAE3D,MAAM,yBAAyB;IAM7B;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,CAAI,KAAe;QACrB,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,EAAE;gBACf,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,UAAU,EAAE,QAAQ,CAAC,EAAE;gBACrB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACtC,CAAC;SACF,CAAC;IACJ,CAAC;IAED,GAAG,CAAI,KAAe;QACpB,IAAI;YACF,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACvC;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,KAAK,YAAY,0BAAiB,IAAI,IAAI,CAAC,MAAM,EAAE;gBACrD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aAC/B;iBAAM;gBACL,MAAM,KAAK,CAAC;aACb;SACF;IACH,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC5C;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEO,kBAAkB;QACxB,MAAM,SAAS,GAAG,IAAA,2BAAe,GAAE,CAAC;QAEpC,SAAS,CAAC,GAAG,CAAC,mBAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAEvC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YACjC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACpB;QAED,MAAM,OAAO,GAAY,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAElD,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;YAC9C,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;SAC/C;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,MAAmB;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,CACJ,MAAmB,EACnB,EAA0C;QAE1C,EAAE,CAAC,GAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAS,CAAC,CAAC;IACvD,CAAC;CACF;AAED,SAAgB,iBAAiB;IAC/B,OAAO,IAAI,yBAAyB,EAAE,CAAC;AACzC,CAAC;AAFD,8CAEC"}
|
|
1
|
+
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../src/di/application.ts"],"names":[],"mappings":";;;AAWA,qCAA6C;AAC7C,mCAAsC;AACtC,2CAA8C;AAE9C;;GAEG;AACU,QAAA,WAAW,GAAG,IAAA,mBAAW,EAAC,kBAAkB,CAAC,CAAC;AAE3D,MAAM,yBAAyB;IAM7B;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,CAAI,KAAe;QACrB,2EAA2E;QAC3E,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,EAAE;gBACf,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,UAAU,EAAE,QAAQ,CAAC,EAAE;gBACrB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACtC,CAAC;SACF,CAAC;IACJ,CAAC;IAED,GAAG,CAAI,KAAe;QACpB,IAAI;YACF,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACvC;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,KAAK,YAAY,0BAAiB,IAAI,IAAI,CAAC,MAAM,EAAE;gBACrD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aAC/B;iBAAM;gBACL,MAAM,KAAK,CAAC;aACb;SACF;IACH,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC5C;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEO,kBAAkB;QACxB,MAAM,SAAS,GAAG,IAAA,2BAAe,GAAE,CAAC;QAEpC,SAAS,CAAC,GAAG,CAAC,mBAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAEvC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YACjC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACpB;QAED,MAAM,OAAO,GAAY,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAElD,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;YAC9C,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;SAC/C;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,MAAmB;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,CACJ,MAAmB,EACnB,EAA0C;QAE1C,EAAE,CAAC,GAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAS,CAAC,CAAC;IACvD,CAAC;CACF;AAED,SAAgB,iBAAiB;IAC/B,OAAO,IAAI,yBAAyB,EAAE,CAAC;AACzC,CAAC;AAFD,8CAEC"}
|
package/di/preset.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Provider, Token, Preset } from './types';
|
|
2
2
|
declare type PresetEntry<T = any> = [Token<T>, Provider<T>];
|
|
3
3
|
/**
|
|
4
|
-
* Возвращает новый "preset"
|
|
4
|
+
* Возвращает новый "preset" для DI-приложения - набор предустановленных компонентов которые можно переопределять.
|
|
5
5
|
* @param defaults Предустановленные зависимости.
|
|
6
6
|
* @return Preset.
|
|
7
7
|
*/
|
package/di/preset.js
CHANGED
|
@@ -2,18 +2,20 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createPreset = void 0;
|
|
4
4
|
/**
|
|
5
|
-
* Возвращает новый "preset"
|
|
5
|
+
* Возвращает новый "preset" для DI-приложения - набор предустановленных компонентов которые можно переопределять.
|
|
6
6
|
* @param defaults Предустановленные зависимости.
|
|
7
7
|
* @return Preset.
|
|
8
8
|
*/
|
|
9
9
|
function createPreset(defaults) {
|
|
10
10
|
const registry = new Map(defaults);
|
|
11
|
+
// @todo возможно стоит вынести функциональность расширения прямо в Application, избавившись от сущности Preset.
|
|
11
12
|
const preset = {
|
|
12
13
|
override: (token, provider) => {
|
|
13
14
|
registry.set(token, provider);
|
|
14
15
|
return preset;
|
|
15
16
|
},
|
|
16
17
|
apply: (app) => {
|
|
18
|
+
// @todo избавиться от перебора, сделать так чтобы Application сам умел искать в preset'ах (в целях оптимизации)
|
|
17
19
|
for (const [token, provider] of registry) {
|
|
18
20
|
app.bind(token).toProvider(provider);
|
|
19
21
|
}
|
package/di/preset.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preset.js","sourceRoot":"","sources":["../../src/di/preset.ts"],"names":[],"mappings":";;;AAIA;;;;GAIG;AACH,SAAgB,YAAY,CAAC,QAAuB;IAClD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAA4B,QAAQ,CAAC,CAAC;IAE9D,MAAM,MAAM,GAAG;QACb,QAAQ,EAAE,CAAI,KAAe,EAAE,QAAqB,EAAE,EAAE;YACtD,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC9B,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,KAAK,EAAE,CAAC,GAAgB,EAAE,EAAE;YAC1B,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,QAAQ,EAAE;gBACxC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;aACtC;QACH,CAAC;KACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"preset.js","sourceRoot":"","sources":["../../src/di/preset.ts"],"names":[],"mappings":";;;AAIA;;;;GAIG;AACH,SAAgB,YAAY,CAAC,QAAuB;IAClD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAA4B,QAAQ,CAAC,CAAC;IAE9D,gHAAgH;IAChH,MAAM,MAAM,GAAG;QACb,QAAQ,EAAE,CAAI,KAAe,EAAE,QAAqB,EAAE,EAAE;YACtD,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC9B,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,KAAK,EAAE,CAAC,GAAgB,EAAE,EAAE;YAC1B,gHAAgH;YAChH,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,QAAQ,EAAE;gBACxC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;aACtC;QACH,CAAC;KACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAnBD,oCAmBC"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/error-tracking/index.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,WAAY,SAAQ,KAAK;IAGpC;;;OAGG;IACH,YAAY,OAAe,EAAE,OAAwB,EAAE;QACrD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAXD,kCAWC;AAED;;GAEG;AACH,MAAa,gBAAgB;IAG3B;;OAEG;IACH,YAAY,IAA0B;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AATD,4CASC"}
|
|
File without changes
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/error-tracking/types.ts"],"names":[],"mappings":""}
|
|
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.severityFromStatus = exports.loggingMiddleware = void 0;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
|
-
const
|
|
8
|
+
const error_tracking_1 = require("../../error-tracking");
|
|
9
9
|
const types_1 = require("@sentry/types");
|
|
10
10
|
/**
|
|
11
11
|
* Возвращает новый middleware для логирования запросов.
|
|
@@ -18,7 +18,7 @@ function loggingMiddleware(logger) {
|
|
|
18
18
|
const readyMethod = method.toUpperCase();
|
|
19
19
|
const readyURL = baseURL ? `${baseURL.replace(/\/$/, '')}/${url}` : url;
|
|
20
20
|
try {
|
|
21
|
-
logger.info(new
|
|
21
|
+
logger.info(new error_tracking_1.SentryBreadcrumb({
|
|
22
22
|
category: 'http.request',
|
|
23
23
|
type: 'http',
|
|
24
24
|
data: {
|
|
@@ -29,7 +29,7 @@ function loggingMiddleware(logger) {
|
|
|
29
29
|
level: types_1.Severity.Info,
|
|
30
30
|
}));
|
|
31
31
|
const response = await next(config);
|
|
32
|
-
logger.info(new
|
|
32
|
+
logger.info(new error_tracking_1.SentryBreadcrumb({
|
|
33
33
|
category: 'http.response',
|
|
34
34
|
type: 'http',
|
|
35
35
|
data: {
|
|
@@ -44,7 +44,7 @@ function loggingMiddleware(logger) {
|
|
|
44
44
|
catch (error) {
|
|
45
45
|
if (axios_1.default.isAxiosError(error)) {
|
|
46
46
|
const statusCode = error.response?.status || 'UNKNOWN';
|
|
47
|
-
logger.error(new
|
|
47
|
+
logger.error(new error_tracking_1.SentryError(`HTTP request failed with status code ${statusCode}`, {
|
|
48
48
|
level: severityFromStatus(error.response?.status),
|
|
49
49
|
context: {
|
|
50
50
|
key: 'Request details',
|
|
@@ -61,7 +61,7 @@ function loggingMiddleware(logger) {
|
|
|
61
61
|
},
|
|
62
62
|
},
|
|
63
63
|
}));
|
|
64
|
-
logger.info(new
|
|
64
|
+
logger.info(new error_tracking_1.SentryBreadcrumb({
|
|
65
65
|
category: 'http.response',
|
|
66
66
|
type: 'http',
|
|
67
67
|
data: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../src/http-client/middleware/logging.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../src/http-client/middleware/logging.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,yDAAqE;AACrE,yCAAyC;AAEzC;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,MAAc;IAC9C,OAAO,KAAK,WAAW,MAAM,EAAE,IAAI,EAAE,QAAQ;QAC3C,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;QAClF,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAExE,IAAI;YACF,MAAM,CAAC,IAAI,CACT,IAAI,iCAAgB,CAAC;gBACnB,QAAQ,EAAE,cAAc;gBACxB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE;oBACJ,GAAG,EAAE,QAAQ;oBACb,MAAM,EAAE,WAAW;oBACnB,MAAM;iBACP;gBACD,KAAK,EAAE,gBAAQ,CAAC,IAAI;aACrB,CAAC,CACH,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;YAEpC,MAAM,CAAC,IAAI,CACT,IAAI,iCAAgB,CAAC;gBACnB,QAAQ,EAAE,eAAe;gBACzB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE;oBACJ,GAAG,EAAE,QAAQ;oBACb,WAAW,EAAE,QAAQ,CAAC,MAAM;oBAC5B,MAAM,EAAE,WAAW;oBACnB,MAAM;iBACP;gBACD,KAAK,EAAE,gBAAQ,CAAC,IAAI;aACrB,CAAC,CACH,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;gBAC7B,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC;gBAEvD,MAAM,CAAC,KAAK,CACV,IAAI,4BAAW,CAAC,wCAAwC,UAAU,EAAE,EAAE;oBACpE,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;oBACjD,OAAO,EAAE;wBACP,GAAG,EAAE,iBAAiB;wBACtB,IAAI,EAAE;4BACJ,GAAG;4BACH,OAAO;4BACP,MAAM,EAAE,WAAW;4BACnB,OAAO,EAAE;gCACP,GAAG,MAAM,CAAC,OAAO;gCACjB,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAmC,CAAC;6BAChF;4BACD,MAAM;4BACN,IAAI;yBACL;qBACF;iBACF,CAAC,CACH,CAAC;gBAEF,MAAM,CAAC,IAAI,CACT,IAAI,iCAAgB,CAAC;oBACnB,QAAQ,EAAE,eAAe;oBACzB,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,GAAG,EAAE,QAAQ;wBACb,WAAW,EAAE,UAAU;wBACvB,MAAM,EAAE,WAAW;wBACnB,MAAM;qBACP;oBACD,KAAK,EAAE,gBAAQ,CAAC,KAAK;iBACtB,CAAC,CACH,CAAC;aACH;YAED,8DAA8D;YAC9D,MAAM,KAAK,CAAC;SACb;IACH,CAAC,CAAC;AACJ,CAAC;AA9ED,8CA8EC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,MAA0B;IAC3D,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG;QAChE,CAAC,CAAC,gBAAQ,CAAC,IAAI;QACf,CAAC,CAAC,gBAAQ,CAAC,KAAK,CAAC;AACrB,CAAC;AAJD,gDAIC"}
|
|
@@ -21,9 +21,15 @@ exports.pageTemplate = (0, ejs_1.compile)(`
|
|
|
21
21
|
line-height: inherit;
|
|
22
22
|
}
|
|
23
23
|
</style>
|
|
24
|
+
<% if (assets.criticalCss) { %>
|
|
25
|
+
<link rel="stylesheet" href="<%= assets.criticalCss %>">
|
|
26
|
+
<% } %>
|
|
24
27
|
<% if (assets.css) { %>
|
|
25
28
|
<link rel="stylesheet" href="<%= assets.css %>">
|
|
26
29
|
<% } %>
|
|
30
|
+
<% if (assets.criticalJs) { %>
|
|
31
|
+
<script src="<%= assets.criticalJs %>"></script>
|
|
32
|
+
<% } %>
|
|
27
33
|
</head>
|
|
28
34
|
<body>
|
|
29
35
|
<%- markup %>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/http-server/template/index.ts"],"names":[],"mappings":";;;AAAA,6BAA8B;AAEjB,QAAA,YAAY,GAAG,IAAA,aAAO,EAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/http-server/template/index.ts"],"names":[],"mappings":";;;AAAA,6BAA8B;AAEjB,QAAA,YAAY,GAAG,IAAA,aAAO,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCnC,CAAC,CAAC"}
|
package/http-server/types.d.ts
CHANGED
package/http-server/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Request, Response } from 'express';
|
|
2
|
-
import type { PageTemplate, PageTemplateData } from './types';
|
|
2
|
+
import type { PageAssets, PageTemplate, PageTemplateData } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* Определяет IP входящего запроса.
|
|
5
5
|
* @param req Входящий запрос.
|
|
@@ -15,15 +15,13 @@ export declare function getServiceHeaders(req: Request): Record<string, string |
|
|
|
15
15
|
export declare class PageResponse {
|
|
16
16
|
private type;
|
|
17
17
|
private html;
|
|
18
|
-
private
|
|
18
|
+
private _assets;
|
|
19
19
|
private _template;
|
|
20
|
-
static create(): PageResponse;
|
|
21
20
|
static defineFormat(req: Request): PageResponse['type'];
|
|
22
21
|
static defaultTemplate({ markup }: PageTemplateData): string;
|
|
23
22
|
constructor();
|
|
24
23
|
markup(html: string): this;
|
|
25
|
-
|
|
26
|
-
styles(url: string): this;
|
|
24
|
+
assets(assets: PageAssets): this;
|
|
27
25
|
format(type: PageResponse['type']): this;
|
|
28
26
|
template(template: PageTemplate): this;
|
|
29
27
|
send(res: Response): void;
|
package/http-server/utils.js
CHANGED
|
@@ -32,12 +32,9 @@ class PageResponse {
|
|
|
32
32
|
constructor() {
|
|
33
33
|
this.type = 'html';
|
|
34
34
|
this.html = '';
|
|
35
|
-
this.
|
|
35
|
+
this._assets = { js: '', css: '' };
|
|
36
36
|
this._template = PageResponse.defaultTemplate;
|
|
37
37
|
}
|
|
38
|
-
static create() {
|
|
39
|
-
return new PageResponse();
|
|
40
|
-
}
|
|
41
38
|
static defineFormat(req) {
|
|
42
39
|
let result = 'html';
|
|
43
40
|
if ((req.header('accept') || '').toLowerCase().includes('application/json')) {
|
|
@@ -52,12 +49,8 @@ class PageResponse {
|
|
|
52
49
|
this.html = html;
|
|
53
50
|
return this;
|
|
54
51
|
}
|
|
55
|
-
|
|
56
|
-
this.
|
|
57
|
-
return this;
|
|
58
|
-
}
|
|
59
|
-
styles(url) {
|
|
60
|
-
this.assets.css = url;
|
|
52
|
+
assets(assets) {
|
|
53
|
+
this._assets = assets;
|
|
61
54
|
return this;
|
|
62
55
|
}
|
|
63
56
|
format(type) {
|
|
@@ -72,21 +65,29 @@ class PageResponse {
|
|
|
72
65
|
const templateData = {
|
|
73
66
|
type: this.type,
|
|
74
67
|
markup: this.html,
|
|
75
|
-
assets: this.
|
|
68
|
+
assets: this._assets,
|
|
76
69
|
};
|
|
77
70
|
switch (this.type) {
|
|
78
71
|
case 'json': {
|
|
79
72
|
const result = {
|
|
80
73
|
markup: this._template(templateData),
|
|
81
|
-
bundle_js: this.
|
|
82
|
-
bundle_css: this.
|
|
74
|
+
bundle_js: this._assets.js,
|
|
75
|
+
bundle_css: this._assets.css,
|
|
76
|
+
critical_js: this._assets.criticalJs,
|
|
77
|
+
critical_css: this._assets.criticalCss,
|
|
83
78
|
};
|
|
84
79
|
res.json(result);
|
|
85
80
|
break;
|
|
86
81
|
}
|
|
87
82
|
case 'html': {
|
|
88
|
-
res.setHeader('simaland-bundle-js', this.
|
|
89
|
-
res.setHeader('simaland-bundle-css', this.
|
|
83
|
+
res.setHeader('simaland-bundle-js', this._assets.js);
|
|
84
|
+
res.setHeader('simaland-bundle-css', this._assets.css);
|
|
85
|
+
if (this._assets.criticalJs) {
|
|
86
|
+
res.setHeader('simaland-critical-js', this._assets.criticalJs);
|
|
87
|
+
}
|
|
88
|
+
if (this._assets.criticalCss) {
|
|
89
|
+
res.setHeader('simaland-critical-css', this._assets.criticalCss);
|
|
90
|
+
}
|
|
90
91
|
res.send(this._template(templateData));
|
|
91
92
|
break;
|
|
92
93
|
}
|
package/http-server/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/http-server/utils.ts"],"names":[],"mappings":";;;AAEA,6BAA2B;AAE3B;;;;GAIG;AACH,SAAgB,YAAY,CAAC,GAAY;IACvC,MAAM,WAAW,GACf,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;IAEzF,OAAO,IAAA,UAAI,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9C,CAAC;AALD,oCAKC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,GAAY;IAC5C,MAAM,MAAM,GAAuC,EAAE,CAAC;IAEtD,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;QAC/C,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;YAChD,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC/B;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAVD,8CAUC;AAED,uDAAuD;AACvD,MAAa,YAAY;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/http-server/utils.ts"],"names":[],"mappings":"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"}
|
package/logger/handler/sentry.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createSentryHandler = void 0;
|
|
4
|
-
const
|
|
4
|
+
const error_tracking_1 = require("../../error-tracking");
|
|
5
5
|
/**
|
|
6
6
|
* Возвращает новый handler для logger'а для отправки событий в Sentry.
|
|
7
7
|
* @param hub Набор данных для работы с Sentry.
|
|
@@ -12,7 +12,7 @@ function createSentryHandler(hub) {
|
|
|
12
12
|
// error
|
|
13
13
|
if (event.type === 'error') {
|
|
14
14
|
const error = event.data;
|
|
15
|
-
if (error instanceof
|
|
15
|
+
if (error instanceof error_tracking_1.SentryError) {
|
|
16
16
|
const { level, context, extra } = error.data;
|
|
17
17
|
hub.withScope(scope => {
|
|
18
18
|
if (level) {
|
|
@@ -32,7 +32,7 @@ function createSentryHandler(hub) {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
// breadcrumb
|
|
35
|
-
if (event.data instanceof
|
|
35
|
+
if (event.data instanceof error_tracking_1.SentryBreadcrumb) {
|
|
36
36
|
const breadcrumb = event.data.data;
|
|
37
37
|
hub.addBreadcrumb(breadcrumb);
|
|
38
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sentry.js","sourceRoot":"","sources":["../../../src/logger/handler/sentry.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"sentry.js","sourceRoot":"","sources":["../../../src/logger/handler/sentry.ts"],"names":[],"mappings":";;;AAEA,yDAAqE;AAErE;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,GAAQ;IAC1C,OAAO,KAAK,CAAC,EAAE;QACb,QAAQ;QACR,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;YAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;YAEzB,IAAI,KAAK,YAAY,4BAAW,EAAE;gBAChC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;gBAE7C,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;oBACpB,IAAI,KAAK,EAAE;wBACT,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;qBACvB;oBAED,IAAI,OAAO,EAAE;wBACX,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;qBAC7C;oBAED,IAAI,KAAK,EAAE;wBACT,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;qBACvC;oBAED,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAC7B;SACF;QAED,aAAa;QACb,IAAI,KAAK,CAAC,IAAI,YAAY,iCAAgB,EAAE;YAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAEnC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SAC/B;IACH,CAAC,CAAC;AACJ,CAAC;AApCD,kDAoCC"}
|
package/logger/index.d.ts
CHANGED
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* Возвращает новый logger - объект для журналирования событий подобно console.
|
|
4
|
-
* @return Logger.
|
|
5
|
-
*/
|
|
6
|
-
export declare function createLogger(): Logger;
|
|
1
|
+
export { Logger, LoggerEvent, LoggerEventType, LoggerEventHandler } from './types';
|
|
2
|
+
export { createLogger } from './logger';
|
package/logger/index.js
CHANGED
|
@@ -1,31 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createLogger = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
* @return Logger.
|
|
7
|
-
*/
|
|
8
|
-
function createLogger() {
|
|
9
|
-
const handlers = [];
|
|
10
|
-
// eslint-disable-next-line require-jsdoc, jsdoc/require-jsdoc
|
|
11
|
-
function createMethod(type) {
|
|
12
|
-
return function (data) {
|
|
13
|
-
const event = { type, data };
|
|
14
|
-
for (const handler of handlers) {
|
|
15
|
-
handler(event);
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
return {
|
|
20
|
-
log: createMethod('log'),
|
|
21
|
-
info: createMethod('info'),
|
|
22
|
-
warn: createMethod('warn'),
|
|
23
|
-
error: createMethod('error'),
|
|
24
|
-
debug: createMethod('debug'),
|
|
25
|
-
subscribe: handler => {
|
|
26
|
-
handlers.push(handler);
|
|
27
|
-
},
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
exports.createLogger = createLogger;
|
|
4
|
+
var logger_1 = require("./logger");
|
|
5
|
+
Object.defineProperty(exports, "createLogger", { enumerable: true, get: function () { return logger_1.createLogger; } });
|
|
31
6
|
//# sourceMappingURL=index.js.map
|
package/logger/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":";;;AACA,mCAAwC;AAA/B,sGAAA,YAAY,OAAA"}
|
package/logger/logger.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createLogger = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Возвращает новый logger - объект для журналирования событий подобно console.
|
|
6
|
+
* @return Logger.
|
|
7
|
+
*/
|
|
8
|
+
function createLogger() {
|
|
9
|
+
const handlers = [];
|
|
10
|
+
// eslint-disable-next-line require-jsdoc, jsdoc/require-jsdoc
|
|
11
|
+
function createMethod(type) {
|
|
12
|
+
return function (data) {
|
|
13
|
+
const event = { type, data };
|
|
14
|
+
for (const handler of handlers) {
|
|
15
|
+
handler(event);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
log: createMethod('log'),
|
|
21
|
+
info: createMethod('info'),
|
|
22
|
+
warn: createMethod('warn'),
|
|
23
|
+
error: createMethod('error'),
|
|
24
|
+
debug: createMethod('debug'),
|
|
25
|
+
subscribe: handler => {
|
|
26
|
+
handlers.push(handler);
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
exports.createLogger = createLogger;
|
|
31
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,SAAgB,YAAY;IAC1B,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAE1C,8DAA8D;IAC9D,SAAS,YAAY,CAAC,IAAqB;QACzC,OAAO,UAAU,IAAS;YACxB,MAAM,KAAK,GAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC1C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;gBAC9B,OAAO,CAAC,KAAK,CAAC,CAAC;aAChB;QACH,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC;QACxB,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;QAC1B,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;QAC1B,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC;QAC5B,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC;QAE5B,SAAS,EAAE,OAAO,CAAC,EAAE;YACnB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC;AAxBD,oCAwBC"}
|
package/package.json
CHANGED
|
@@ -1 +1,8 @@
|
|
|
1
|
+
import { Resolve } from '../../di';
|
|
2
|
+
import { Logger } from '../../logger';
|
|
3
|
+
import { SagaExtendedMiddleware } from '../../utils/redux-saga';
|
|
4
|
+
import type { BaseConfig } from '../../config/types';
|
|
1
5
|
export declare function PresetBrowser(): import("../../di").Preset;
|
|
6
|
+
export declare function provideBaseConfig(resolve: Resolve): BaseConfig;
|
|
7
|
+
export declare function provideLogger(resolve: Resolve): Logger;
|
|
8
|
+
export declare function provideSagaMiddleware(resolve: Resolve): SagaExtendedMiddleware;
|
package/preset/browser/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PresetBrowser = void 0;
|
|
3
|
+
exports.provideSagaMiddleware = exports.provideLogger = exports.provideBaseConfig = 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");
|
|
@@ -8,7 +8,7 @@ const base_1 = require("../../config/base");
|
|
|
8
8
|
const browser_1 = require("../../config/browser");
|
|
9
9
|
const logger_1 = require("../../logger");
|
|
10
10
|
const sentry_1 = require("../../logger/handler/sentry");
|
|
11
|
-
const
|
|
11
|
+
const redux_saga_1 = require("../../utils/redux-saga");
|
|
12
12
|
const browser_2 = require("@sentry/browser");
|
|
13
13
|
const middleware_axios_1 = require("middleware-axios");
|
|
14
14
|
function PresetBrowser() {
|
|
@@ -16,7 +16,7 @@ function PresetBrowser() {
|
|
|
16
16
|
[tokens_1.KnownToken.Config.source, browser_1.createConfigSource],
|
|
17
17
|
[tokens_1.KnownToken.Config.base, provideBaseConfig],
|
|
18
18
|
[tokens_1.KnownToken.logger, provideLogger],
|
|
19
|
-
[tokens_1.KnownToken.
|
|
19
|
+
[tokens_1.KnownToken.sagaMiddleware, provideSagaMiddleware],
|
|
20
20
|
[tokens_1.KnownToken.Http.Client.factory, () => middleware_axios_1.create],
|
|
21
21
|
]);
|
|
22
22
|
}
|
|
@@ -25,6 +25,7 @@ function provideBaseConfig(resolve) {
|
|
|
25
25
|
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
26
26
|
return (0, base_1.createBaseConfig)(source);
|
|
27
27
|
}
|
|
28
|
+
exports.provideBaseConfig = provideBaseConfig;
|
|
28
29
|
function provideLogger(resolve) {
|
|
29
30
|
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
30
31
|
const client = new browser_2.BrowserClient({
|
|
@@ -38,8 +39,10 @@ function provideLogger(resolve) {
|
|
|
38
39
|
logger.subscribe((0, sentry_1.createSentryHandler)(hub));
|
|
39
40
|
return logger;
|
|
40
41
|
}
|
|
41
|
-
|
|
42
|
+
exports.provideLogger = provideLogger;
|
|
43
|
+
function provideSagaMiddleware(resolve) {
|
|
42
44
|
const logger = resolve(tokens_1.KnownToken.logger);
|
|
43
|
-
return (0,
|
|
45
|
+
return (0, redux_saga_1.createSagaMiddleware)(logger);
|
|
44
46
|
}
|
|
47
|
+
exports.provideSagaMiddleware = provideSagaMiddleware;
|
|
45
48
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +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,
|
|
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,6CAA0E;AAC1E,uDAA0C;AAG1C,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;KAC/C,CAAC,CAAC;AACL,CAAC;AARD,sCAQC;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,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACxC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACzC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC;QACjD,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;AAjBD,sCAiBC;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"}
|
package/preset/node/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { BaseConfig } from '../../config/types';
|
|
|
2
2
|
import type { Logger } from '../../logger/types';
|
|
3
3
|
import type { Tracer } from '@opentelemetry/api';
|
|
4
4
|
import type { DefaultMiddleware } from '../../http-server/types';
|
|
5
|
-
import {
|
|
5
|
+
import { Resolve, Preset } from '../../di';
|
|
6
6
|
import { BasicTracerProvider, SpanExporter } from '@opentelemetry/tracing';
|
|
7
7
|
import { Resource } from '@opentelemetry/resources';
|
|
8
8
|
/**
|
|
@@ -10,10 +10,10 @@ import { Resource } from '@opentelemetry/resources';
|
|
|
10
10
|
* @return Preset.
|
|
11
11
|
*/
|
|
12
12
|
export declare function PresetNode(): Preset;
|
|
13
|
-
export declare
|
|
14
|
-
export declare
|
|
15
|
-
export declare
|
|
16
|
-
export declare
|
|
17
|
-
export declare
|
|
18
|
-
export declare
|
|
19
|
-
export declare
|
|
13
|
+
export declare function provideBaseConfig(resolve: Resolve): BaseConfig;
|
|
14
|
+
export declare function provideLogger(resolve: Resolve): Logger;
|
|
15
|
+
export declare function provideTracer(resolve: Resolve): Tracer;
|
|
16
|
+
export declare function provideSpanExporter(resolve: Resolve): SpanExporter;
|
|
17
|
+
export declare function provideTracerProvider(resolve: Resolve): BasicTracerProvider;
|
|
18
|
+
export declare function provideTracerProviderResource(resolve: Resolve): Resource;
|
|
19
|
+
export declare function provideDefaultMiddleware(resolve: Resolve): DefaultMiddleware;
|
package/preset/node/index.js
CHANGED
|
@@ -33,25 +33,25 @@ const os_1 = require("os");
|
|
|
33
33
|
function PresetNode() {
|
|
34
34
|
return (0, di_1.createPreset)([
|
|
35
35
|
[tokens_1.KnownToken.Config.source, node_1.createConfigSource],
|
|
36
|
-
[tokens_1.KnownToken.Config.base,
|
|
37
|
-
[tokens_1.KnownToken.logger,
|
|
38
|
-
[tokens_1.KnownToken.Tracing.tracer,
|
|
39
|
-
[tokens_1.KnownToken.Tracing.spanExporter,
|
|
40
|
-
[tokens_1.KnownToken.Tracing.tracerProvider,
|
|
41
|
-
[tokens_1.KnownToken.Tracing.tracerProviderResource,
|
|
36
|
+
[tokens_1.KnownToken.Config.base, provideBaseConfig],
|
|
37
|
+
[tokens_1.KnownToken.logger, provideLogger],
|
|
38
|
+
[tokens_1.KnownToken.Tracing.tracer, provideTracer],
|
|
39
|
+
[tokens_1.KnownToken.Tracing.spanExporter, provideSpanExporter],
|
|
40
|
+
[tokens_1.KnownToken.Tracing.tracerProvider, provideTracerProvider],
|
|
41
|
+
[tokens_1.KnownToken.Tracing.tracerProviderResource, provideTracerProviderResource],
|
|
42
42
|
[tokens_1.KnownToken.Http.Client.factory, () => middleware_axios_1.create],
|
|
43
43
|
[tokens_1.KnownToken.Http.Server.factory, () => express_1.default],
|
|
44
|
-
[tokens_1.KnownToken.Http.Server.Defaults.middleware,
|
|
44
|
+
[tokens_1.KnownToken.Http.Server.Defaults.middleware, provideDefaultMiddleware],
|
|
45
45
|
[tokens_1.KnownToken.Metrics.httpApp, node_2.createMetricsHttpApp],
|
|
46
46
|
]);
|
|
47
47
|
}
|
|
48
48
|
exports.PresetNode = PresetNode;
|
|
49
|
-
|
|
49
|
+
function provideBaseConfig(resolve) {
|
|
50
50
|
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
51
51
|
return (0, base_1.createBaseConfig)(source);
|
|
52
|
-
}
|
|
52
|
+
}
|
|
53
53
|
exports.provideBaseConfig = provideBaseConfig;
|
|
54
|
-
|
|
54
|
+
function provideLogger(resolve) {
|
|
55
55
|
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
56
56
|
const config = resolve(tokens_1.KnownToken.Config.base);
|
|
57
57
|
const client = new node_3.NodeClient({
|
|
@@ -65,24 +65,24 @@ const provideLogger = resolve => {
|
|
|
65
65
|
logger.subscribe((0, console_1.createConsoleHandler)(config));
|
|
66
66
|
logger.subscribe((0, sentry_1.createSentryHandler)(hub));
|
|
67
67
|
return logger;
|
|
68
|
-
}
|
|
68
|
+
}
|
|
69
69
|
exports.provideLogger = provideLogger;
|
|
70
|
-
|
|
70
|
+
function provideTracer(resolve) {
|
|
71
71
|
const config = resolve(tokens_1.KnownToken.Config.base);
|
|
72
72
|
const provider = resolve(tokens_1.KnownToken.Tracing.tracerProvider);
|
|
73
73
|
return provider.getTracer(config.appName, config.appVersion);
|
|
74
|
-
}
|
|
74
|
+
}
|
|
75
75
|
exports.provideTracer = provideTracer;
|
|
76
|
-
|
|
76
|
+
function provideSpanExporter(resolve) {
|
|
77
77
|
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
78
78
|
const exporter = new exporter_jaeger_1.JaegerExporter({
|
|
79
79
|
host: source.require('JAEGER_AGENT_HOST'),
|
|
80
80
|
port: parseInt(source.require('JAEGER_AGENT_PORT')) || undefined,
|
|
81
81
|
});
|
|
82
82
|
return exporter;
|
|
83
|
-
}
|
|
83
|
+
}
|
|
84
84
|
exports.provideSpanExporter = provideSpanExporter;
|
|
85
|
-
|
|
85
|
+
function provideTracerProvider(resolve) {
|
|
86
86
|
const exporter = resolve(tokens_1.KnownToken.Tracing.spanExporter);
|
|
87
87
|
const resource = resolve(tokens_1.KnownToken.Tracing.tracerProviderResource);
|
|
88
88
|
const provider = new sdk_trace_node_1.NodeTracerProvider({
|
|
@@ -93,16 +93,16 @@ const provideTracerProvider = resolve => {
|
|
|
93
93
|
propagator: new propagator_jaeger_1.JaegerPropagator(),
|
|
94
94
|
});
|
|
95
95
|
return provider; // @todo разобраться с as any
|
|
96
|
-
}
|
|
96
|
+
}
|
|
97
97
|
exports.provideTracerProvider = provideTracerProvider;
|
|
98
|
-
|
|
98
|
+
function provideTracerProviderResource(resolve) {
|
|
99
99
|
const config = resolve(tokens_1.KnownToken.Config.base);
|
|
100
100
|
return (0, tracing_3.getConventionalResource)(config).merge(new resources_1.Resource({
|
|
101
101
|
[semantic_conventions_1.SemanticResourceAttributes.HOST_NAME]: (0, os_1.hostname)(),
|
|
102
102
|
}));
|
|
103
|
-
}
|
|
103
|
+
}
|
|
104
104
|
exports.provideTracerProviderResource = provideTracerProviderResource;
|
|
105
|
-
|
|
105
|
+
function provideDefaultMiddleware(resolve) {
|
|
106
106
|
const config = resolve(tokens_1.KnownToken.Config.base);
|
|
107
107
|
const logger = resolve(tokens_1.KnownToken.logger);
|
|
108
108
|
const tracer = resolve(tokens_1.KnownToken.Tracing.tracer);
|
|
@@ -122,6 +122,6 @@ const provideDefaultMiddleware = resolve => {
|
|
|
122
122
|
],
|
|
123
123
|
finish: [node_3.Handlers.errorHandler()],
|
|
124
124
|
};
|
|
125
|
-
}
|
|
125
|
+
}
|
|
126
126
|
exports.provideDefaultMiddleware = provideDefaultMiddleware;
|
|
127
127
|
//# 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":";;;;;;AAKA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preset/node/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import type { SagaRunner } from '../../saga-runner/types';
|
|
3
2
|
import type { PageTemplate } from '../../http-server/types';
|
|
4
3
|
import type { Handler } from 'express';
|
|
5
|
-
import { Application, Preset,
|
|
4
|
+
import { Application, Preset, Resolve } from '../../di';
|
|
5
|
+
import { SagaExtendedMiddleware } from '../../utils/redux-saga';
|
|
6
6
|
/**
|
|
7
7
|
* Возвращает preset с зависимостями по умолчанию для работы в рамках ответа на http-запрос.
|
|
8
8
|
* @return Preset.
|
|
9
9
|
*/
|
|
10
10
|
export declare function PresetResponse(): Preset;
|
|
11
|
-
export declare
|
|
12
|
-
export declare
|
|
13
|
-
export declare
|
|
14
|
-
export declare
|
|
11
|
+
export declare function provideSagaMiddleware(resolve: Resolve): SagaExtendedMiddleware;
|
|
12
|
+
export declare function provideRender(resolve: Resolve): (element: JSX.Element) => string;
|
|
13
|
+
export declare function provideTemplate(resolve: Resolve): PageTemplate;
|
|
14
|
+
export declare function provideMain(resolve: Resolve): VoidFunction;
|
|
15
15
|
/**
|
|
16
16
|
* Возвращает express-handler, создающий дочернее di-приложение при запросе.
|
|
17
17
|
* @param appFactory Фабрика di-приложения запроса.
|
package/preset/node/response.js
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HandlerProvider = exports.provideMain = exports.provideTemplate = exports.provideRender = exports.
|
|
3
|
+
exports.HandlerProvider = exports.provideMain = exports.provideTemplate = exports.provideRender = exports.provideSagaMiddleware = 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
|
-
const saga_runner_1 = require("../../saga-runner");
|
|
8
7
|
const constants_1 = require("../../http-server/constants");
|
|
9
8
|
const template_1 = require("../../http-server/template");
|
|
10
9
|
const utils_1 = require("../../http-server/utils");
|
|
10
|
+
const redux_saga_1 = require("../../utils/redux-saga");
|
|
11
11
|
/**
|
|
12
12
|
* Возвращает preset с зависимостями по умолчанию для работы в рамках ответа на http-запрос.
|
|
13
13
|
* @return Preset.
|
|
14
14
|
*/
|
|
15
15
|
function PresetResponse() {
|
|
16
16
|
return (0, di_1.createPreset)([
|
|
17
|
-
[tokens_1.KnownToken.
|
|
18
|
-
[tokens_1.KnownToken.Response.render,
|
|
19
|
-
[tokens_1.KnownToken.Response.template,
|
|
20
|
-
[tokens_1.KnownToken.Response.main,
|
|
17
|
+
[tokens_1.KnownToken.sagaMiddleware, provideSagaMiddleware],
|
|
18
|
+
[tokens_1.KnownToken.Response.render, provideRender],
|
|
19
|
+
[tokens_1.KnownToken.Response.template, provideTemplate],
|
|
20
|
+
[tokens_1.KnownToken.Response.main, provideMain],
|
|
21
21
|
]);
|
|
22
22
|
}
|
|
23
23
|
exports.PresetResponse = PresetResponse;
|
|
24
|
-
|
|
24
|
+
function provideSagaMiddleware(resolve) {
|
|
25
25
|
const logger = resolve(tokens_1.KnownToken.logger);
|
|
26
|
-
return (0,
|
|
27
|
-
}
|
|
28
|
-
exports.
|
|
29
|
-
|
|
26
|
+
return (0, redux_saga_1.createSagaMiddleware)(logger);
|
|
27
|
+
}
|
|
28
|
+
exports.provideSagaMiddleware = provideSagaMiddleware;
|
|
29
|
+
function provideRender(resolve) {
|
|
30
30
|
const { res } = resolve(tokens_1.KnownToken.Response.context);
|
|
31
31
|
return function render(element) {
|
|
32
32
|
res.emit(constants_1.RESPONSE_EVENT.renderStart);
|
|
@@ -34,33 +34,32 @@ const provideRender = resolve => {
|
|
|
34
34
|
res.emit(constants_1.RESPONSE_EVENT.renderFinish);
|
|
35
35
|
return result;
|
|
36
36
|
};
|
|
37
|
-
}
|
|
37
|
+
}
|
|
38
38
|
exports.provideRender = provideRender;
|
|
39
|
-
|
|
39
|
+
function provideTemplate(resolve) {
|
|
40
40
|
const config = resolve(tokens_1.KnownToken.Config.base);
|
|
41
41
|
return function template(data) {
|
|
42
42
|
return data.type === 'html'
|
|
43
43
|
? (0, template_1.pageTemplate)({ ...data, title: `[dev] ${config.appName}` })
|
|
44
44
|
: data.markup;
|
|
45
45
|
};
|
|
46
|
-
}
|
|
46
|
+
}
|
|
47
47
|
exports.provideTemplate = provideTemplate;
|
|
48
|
-
|
|
48
|
+
function provideMain(resolve) {
|
|
49
49
|
const context = resolve(tokens_1.KnownToken.Response.context);
|
|
50
50
|
const assets = resolve(tokens_1.KnownToken.Response.assets);
|
|
51
51
|
const prepare = resolve(tokens_1.KnownToken.Response.prepare);
|
|
52
52
|
const render = resolve(tokens_1.KnownToken.Response.render);
|
|
53
53
|
const template = resolve(tokens_1.KnownToken.Response.template);
|
|
54
54
|
return async function main() {
|
|
55
|
-
utils_1.PageResponse
|
|
55
|
+
new utils_1.PageResponse()
|
|
56
56
|
.markup(await render(await prepare()))
|
|
57
|
-
.
|
|
58
|
-
.styles(assets.css)
|
|
57
|
+
.assets(assets)
|
|
59
58
|
.format(utils_1.PageResponse.defineFormat(context.req))
|
|
60
59
|
.template(template)
|
|
61
60
|
.send(context.res);
|
|
62
61
|
};
|
|
63
|
-
}
|
|
62
|
+
}
|
|
64
63
|
exports.provideMain = provideMain;
|
|
65
64
|
/**
|
|
66
65
|
* Возвращает express-handler, создающий дочернее di-приложение при запросе.
|
|
@@ -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/tokens.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { Application } from 'express';
|
|
3
3
|
import type { DefaultMiddleware, PageAssets, PageTemplate, ResponseContext } from './http-server/types';
|
|
4
|
-
import type {
|
|
4
|
+
import type { SagaExtendedMiddleware } from './utils/redux-saga';
|
|
5
5
|
import type { Logger } from './logger/types';
|
|
6
6
|
import type { HttpClientFactory } from './http-client/types';
|
|
7
7
|
import type { BaseConfig } from './config/types';
|
|
@@ -16,7 +16,7 @@ export declare const KnownToken: {
|
|
|
16
16
|
};
|
|
17
17
|
readonly cache: import("./di").Token<Cache>;
|
|
18
18
|
readonly logger: import("./di").Token<Logger>;
|
|
19
|
-
readonly
|
|
19
|
+
readonly sagaMiddleware: import("./di").Token<SagaExtendedMiddleware>;
|
|
20
20
|
readonly Tracing: {
|
|
21
21
|
readonly tracer: import("./di").Token<Tracer>;
|
|
22
22
|
readonly spanExporter: import("./di").Token<SpanExporter>;
|
package/tokens.js
CHANGED
|
@@ -13,7 +13,7 @@ exports.KnownToken = {
|
|
|
13
13
|
// logging
|
|
14
14
|
logger: (0, di_1.createToken)('logger'),
|
|
15
15
|
// saga runner
|
|
16
|
-
|
|
16
|
+
sagaMiddleware: (0, di_1.createToken)('saga-middleware'),
|
|
17
17
|
// tracing
|
|
18
18
|
Tracing: {
|
|
19
19
|
tracer: (0, di_1.createToken)('tracing.tracer'),
|
package/tokens.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":";;;AAAA,6BAAmC;AAiBtB,QAAA,UAAU,GAAG;IACxB,SAAS;IACT,MAAM,EAAE;QACN,MAAM,EAAE,IAAA,gBAAW,EAAe,eAAe,CAAC;QAClD,IAAI,EAAE,IAAA,gBAAW,EAAa,aAAa,CAAC;KAC7C;IAED,QAAQ;IACR,KAAK,EAAE,IAAA,gBAAW,EAAQ,OAAO,CAAC;IAElC,UAAU;IACV,MAAM,EAAE,IAAA,gBAAW,EAAS,QAAQ,CAAC;IAErC,cAAc;IACd,
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":";;;AAAA,6BAAmC;AAiBtB,QAAA,UAAU,GAAG;IACxB,SAAS;IACT,MAAM,EAAE;QACN,MAAM,EAAE,IAAA,gBAAW,EAAe,eAAe,CAAC;QAClD,IAAI,EAAE,IAAA,gBAAW,EAAa,aAAa,CAAC;KAC7C;IAED,QAAQ;IACR,KAAK,EAAE,IAAA,gBAAW,EAAQ,OAAO,CAAC;IAElC,UAAU;IACV,MAAM,EAAE,IAAA,gBAAW,EAAS,QAAQ,CAAC;IAErC,cAAc;IACd,cAAc,EAAE,IAAA,gBAAW,EAAyB,iBAAiB,CAAC;IAEtE,UAAU;IACV,OAAO,EAAE;QACP,MAAM,EAAE,IAAA,gBAAW,EAAS,gBAAgB,CAAC;QAC7C,YAAY,EAAE,IAAA,gBAAW,EAAe,uBAAuB,CAAC;QAChE,cAAc,EAAE,IAAA,gBAAW,EAAsB,yBAAyB,CAAC;QAC3E,sBAAsB,EAAE,IAAA,gBAAW,EAAW,kCAAkC,CAAC;KAClF;IAED,UAAU;IACV,OAAO,EAAE;QACP,OAAO,EAAE,IAAA,gBAAW,EAAc,kBAAkB,CAAC;KACtD;IAED,OAAO;IACP,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,OAAO,EAAE,IAAA,gBAAW,EAAoB,qBAAqB,CAAC;SAC/D;QACD,MAAM,EAAE;YACN,OAAO,EAAE,IAAA,gBAAW,EAAoB,qBAAqB,CAAC;YAC9D,QAAQ,EAAE;gBACR,UAAU,EAAE,IAAA,gBAAW,EAAoB,iCAAiC,CAAC;aAC9E;SACF;KACF;IAED,uBAAuB;IACvB,QAAQ,EAAE;QACR,QAAQ,EAAE,IAAA,gBAAW,EAAe,mBAAmB,CAAC;QACxD,OAAO,EAAE,IAAA,gBAAW,EAAkB,kBAAkB,CAAC;QACzD,MAAM,EAAE,IAAA,gBAAW,EAAa,iBAAiB,CAAC;QAClD,OAAO,EAAE,IAAA,gBAAW,EAA2C,kBAAkB,CAAC;QAClF,MAAM,EAAE,IAAA,gBAAW,EAAqD,iBAAiB,CAAC;QAC1F,IAAI,EAAE,IAAA,gBAAW,EAAa,eAAe,CAAC;KAC/C;CACO,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSagaMiddleware = exports.takeChain = void 0;
|
|
4
|
+
var take_chain_1 = require("./take-chain");
|
|
5
|
+
Object.defineProperty(exports, "takeChain", { enumerable: true, get: function () { return take_chain_1.takeChain; } });
|
|
6
|
+
var middleware_1 = require("./middleware");
|
|
7
|
+
Object.defineProperty(exports, "createSagaMiddleware", { enumerable: true, get: function () { return middleware_1.createSagaMiddleware; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/redux-saga/index.ts"],"names":[],"mappings":";;;AACA,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,2CAAoD;AAA3C,kHAAA,oBAAoB,OAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SagaExtendedMiddleware } from './types';
|
|
2
|
+
import { Logger } from '../../logger';
|
|
3
|
+
/**
|
|
4
|
+
* Возвращает расширенную версию SagaMiddleware.
|
|
5
|
+
* @param logger Logger.
|
|
6
|
+
* @return Middleware.
|
|
7
|
+
*/
|
|
8
|
+
declare function createSagaExtendedMiddleware(logger: Logger): SagaExtendedMiddleware;
|
|
9
|
+
export { createSagaExtendedMiddleware as createSagaMiddleware };
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.createSagaMiddleware = void 0;
|
|
27
|
+
const redux_saga_1 = __importStar(require("redux-saga"));
|
|
28
|
+
const error_tracking_1 = require("../../error-tracking");
|
|
29
|
+
/**
|
|
30
|
+
* Возвращает расширенную версию SagaMiddleware.
|
|
31
|
+
* @param logger Logger.
|
|
32
|
+
* @return Middleware.
|
|
33
|
+
*/
|
|
34
|
+
function createSagaExtendedMiddleware(logger) {
|
|
35
|
+
const privates = {};
|
|
36
|
+
const sagaMiddleware = (0, redux_saga_1.default)({
|
|
37
|
+
onError: (error, { sagaStack }) => {
|
|
38
|
+
logger.error(
|
|
39
|
+
// @todo убрать отсюда упоминание sentry, вынести в провайдер, возможно заменить аргумент logger на onError
|
|
40
|
+
new error_tracking_1.SentryError(error.message, {
|
|
41
|
+
extra: {
|
|
42
|
+
key: 'Saga stack',
|
|
43
|
+
data: sagaStack,
|
|
44
|
+
},
|
|
45
|
+
}));
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
const middleware = api => {
|
|
49
|
+
privates.api = api;
|
|
50
|
+
return sagaMiddleware(api);
|
|
51
|
+
};
|
|
52
|
+
middleware.timeout = function timeout(milliseconds) {
|
|
53
|
+
privates.timeout = milliseconds;
|
|
54
|
+
return middleware;
|
|
55
|
+
};
|
|
56
|
+
middleware.run = async function run(saga, ...args) {
|
|
57
|
+
const { api, timeout } = privates;
|
|
58
|
+
const promises = [];
|
|
59
|
+
let ready = false;
|
|
60
|
+
let timerId;
|
|
61
|
+
if (!api) {
|
|
62
|
+
throw Error('Middleware is not applied to the store');
|
|
63
|
+
}
|
|
64
|
+
promises.push(sagaMiddleware
|
|
65
|
+
.run(saga, ...args)
|
|
66
|
+
.toPromise()
|
|
67
|
+
.then(() => {
|
|
68
|
+
ready = true;
|
|
69
|
+
timerId !== undefined && clearTimeout(timerId);
|
|
70
|
+
}));
|
|
71
|
+
if (typeof timeout === 'number' && Number.isFinite(timeout)) {
|
|
72
|
+
promises.push(new Promise(resolve => {
|
|
73
|
+
timerId = setTimeout(() => {
|
|
74
|
+
if (!ready) {
|
|
75
|
+
logger.error(Error(`Сага прервана по таймауту (${timeout} миллисекунд)`));
|
|
76
|
+
api.dispatch(redux_saga_1.END);
|
|
77
|
+
}
|
|
78
|
+
resolve();
|
|
79
|
+
}, timeout);
|
|
80
|
+
}));
|
|
81
|
+
}
|
|
82
|
+
await Promise.race(promises);
|
|
83
|
+
};
|
|
84
|
+
return middleware;
|
|
85
|
+
}
|
|
86
|
+
exports.createSagaMiddleware = createSagaExtendedMiddleware;
|
|
87
|
+
//# sourceMappingURL=middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/utils/redux-saga/middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,yDAA6D;AAC7D,yDAAmD;AAEnD;;;;GAIG;AACH,SAAS,4BAA4B,CAAC,MAAc;IAClD,MAAM,QAAQ,GAGV,EAAE,CAAC;IAEP,MAAM,cAAc,GAAG,IAAA,oBAAoB,EAAC;QAC1C,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YAChC,MAAM,CAAC,KAAK;YACV,2GAA2G;YAC3G,IAAI,4BAAW,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC7B,KAAK,EAAE;oBACL,GAAG,EAAE,YAAY;oBACjB,IAAI,EAAE,SAAS;iBAChB;aACF,CAAC,CACH,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,UAAU,GAA2B,GAAG,CAAC,EAAE;QAC/C,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC;QACnB,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,UAAU,CAAC,OAAO,GAAG,SAAS,OAAO,CAAC,YAAoB;QACxD,QAAQ,CAAC,OAAO,GAAG,YAAY,CAAC;QAChC,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEF,UAAU,CAAC,GAAG,GAAG,KAAK,UAAU,GAAG,CACjC,IAAO,EACP,GAAG,IAAmB;QAEtB,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;QAClC,MAAM,QAAQ,GAAoB,EAAE,CAAC;QAErC,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,OAAuB,CAAC;QAE5B,IAAI,CAAC,GAAG,EAAE;YACR,MAAM,KAAK,CAAC,wCAAwC,CAAC,CAAC;SACvD;QAED,QAAQ,CAAC,IAAI,CACX,cAAc;aACX,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;aAClB,SAAS,EAAE;aACX,IAAI,CAAC,GAAG,EAAE;YACT,KAAK,GAAG,IAAI,CAAC;YACb,OAAO,KAAK,SAAS,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;QACjD,CAAC,CAAC,CACL,CAAC;QAEF,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC3D,QAAQ,CAAC,IAAI,CACX,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;gBAC1B,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;oBACxB,IAAI,CAAC,KAAK,EAAE;wBACV,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,8BAA8B,OAAO,eAAe,CAAC,CAAC,CAAC;wBAC1E,GAAG,CAAC,QAAQ,CAAC,gBAAG,CAAC,CAAC;qBACnB;oBAED,OAAO,EAAE,CAAC;gBACZ,CAAC,EAAE,OAAO,CAAC,CAAC;YACd,CAAC,CAAC,CACH,CAAC;SACH;QAED,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,OAAO,UAAU,CAAC;AACpB,CAAC;AAEwC,4DAAoB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Middleware } from '@reduxjs/toolkit';
|
|
2
|
+
import type { Saga } from 'redux-saga';
|
|
3
|
+
export interface SagaExtendedMiddleware extends Middleware {
|
|
4
|
+
timeout(milliseconds: number): this;
|
|
5
|
+
run: <S extends Saga>(saga: S, ...args: Parameters<S>) => Promise<void>;
|
|
6
|
+
}
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/utils/redux-saga/types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/error-tracker/utils.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,WAAY,SAAQ,KAAK;IAGpC;;;OAGG;IACH,YAAY,OAAe,EAAE,OAAwB,EAAE;QACrD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAXD,kCAWC;AAED;;GAEG;AACH,MAAa,gBAAgB;IAG3B;;OAEG;IACH,YAAY,IAA0B;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AATD,4CASC"}
|
package/saga-runner/index.d.ts
DELETED
package/saga-runner/index.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.createSagaRunner = void 0;
|
|
27
|
-
const redux_saga_1 = __importStar(require("redux-saga"));
|
|
28
|
-
const utils_1 = require("../error-tracker/utils");
|
|
29
|
-
/**
|
|
30
|
-
* Возвращает новый runner для redux-saga.
|
|
31
|
-
* @param logger Logger.
|
|
32
|
-
* @return Runner.
|
|
33
|
-
*/
|
|
34
|
-
function createSagaRunner(logger) {
|
|
35
|
-
const middleware = (0, redux_saga_1.default)({
|
|
36
|
-
onError: (error, { sagaStack }) => {
|
|
37
|
-
logger.error(
|
|
38
|
-
// @todo убрать отсюда упоминание sentry, вынести в провайдер, возможно заменить аргумент logger на onError
|
|
39
|
-
new utils_1.SentryError(error.message, {
|
|
40
|
-
extra: { key: 'Saga stack', data: sagaStack },
|
|
41
|
-
}));
|
|
42
|
-
},
|
|
43
|
-
});
|
|
44
|
-
return {
|
|
45
|
-
middleware,
|
|
46
|
-
// eslint-disable-next-line require-jsdoc, jsdoc/require-jsdoc
|
|
47
|
-
prepare(store, { timeout } = {}) {
|
|
48
|
-
return {
|
|
49
|
-
// eslint-disable-next-line require-jsdoc, jsdoc/require-jsdoc
|
|
50
|
-
async run(saga, ...args) {
|
|
51
|
-
let ready = false;
|
|
52
|
-
await Promise.race([
|
|
53
|
-
// ждем пока сага выполнится
|
|
54
|
-
middleware
|
|
55
|
-
.run(saga, ...args)
|
|
56
|
-
.toPromise()
|
|
57
|
-
.then(() => {
|
|
58
|
-
ready = true;
|
|
59
|
-
}),
|
|
60
|
-
// если сага не выполнилась за положенное время - прерываем
|
|
61
|
-
typeof timeout === 'number' &&
|
|
62
|
-
Number.isFinite(timeout) &&
|
|
63
|
-
new Promise(resolve => {
|
|
64
|
-
setTimeout(() => {
|
|
65
|
-
if (!ready) {
|
|
66
|
-
logger.error(Error('Сага прервана по таймауту'));
|
|
67
|
-
store.dispatch(redux_saga_1.END);
|
|
68
|
-
}
|
|
69
|
-
resolve();
|
|
70
|
-
}, timeout);
|
|
71
|
-
}),
|
|
72
|
-
]);
|
|
73
|
-
},
|
|
74
|
-
};
|
|
75
|
-
},
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
exports.createSagaRunner = createSagaRunner;
|
|
79
|
-
//# sourceMappingURL=index.js.map
|
package/saga-runner/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/saga-runner/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,yDAA6D;AAC7D,kDAAqD;AAErD;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,MAAc;IAC7C,MAAM,UAAU,GAAG,IAAA,oBAAoB,EAAC;QACtC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YAChC,MAAM,CAAC,KAAK;YACV,2GAA2G;YAC3G,IAAI,mBAAW,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC7B,KAAK,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;aAC9C,CAAC,CACH,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,OAAO;QACL,UAAU;QAEV,8DAA8D;QAC9D,OAAO,CAAC,KAAY,EAAE,EAAE,OAAO,KAA2B,EAAE;YAC1D,OAAO;gBACL,8DAA8D;gBAC9D,KAAK,CAAC,GAAG,CAAiB,IAAO,EAAE,GAAG,IAAmB;oBACvD,IAAI,KAAK,GAAG,KAAK,CAAC;oBAElB,MAAM,OAAO,CAAC,IAAI,CAAC;wBACjB,4BAA4B;wBAC5B,UAAU;6BACP,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;6BAClB,SAAS,EAAE;6BACX,IAAI,CAAC,GAAG,EAAE;4BACT,KAAK,GAAG,IAAI,CAAC;wBACf,CAAC,CAAC;wBAEJ,2DAA2D;wBAC3D,OAAO,OAAO,KAAK,QAAQ;4BACzB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;4BACxB,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;gCAC1B,UAAU,CAAC,GAAG,EAAE;oCACd,IAAI,CAAC,KAAK,EAAE;wCACV,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;wCACjD,KAAK,CAAC,QAAQ,CAAC,gBAAG,CAAC,CAAC;qCACrB;oCACD,OAAO,EAAE,CAAC;gCACZ,CAAC,EAAE,OAAO,CAAC,CAAC;4BACd,CAAC,CAAC;qBACL,CAAC,CAAC;gBACL,CAAC;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAhDD,4CAgDC"}
|
package/saga-runner/types.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { Saga, SagaMiddleware } from 'redux-saga';
|
|
2
|
-
import type { Store } from '@reduxjs/toolkit';
|
|
3
|
-
export interface SagaRunner {
|
|
4
|
-
middleware: SagaMiddleware<any>;
|
|
5
|
-
prepare: (store: Store, options?: {
|
|
6
|
-
timeout?: number;
|
|
7
|
-
}) => {
|
|
8
|
-
run: <S extends Saga>(saga: S, ...args: Parameters<S>) => Promise<void>;
|
|
9
|
-
};
|
|
10
|
-
}
|