@sima-land/isomorph 11.0.0-alpha.24 → 11.0.0-alpha.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/di/application.js +0 -1
  2. package/di/application.js.map +1 -1
  3. package/error-tracking/types.d.ts +5 -4
  4. package/http-client/middleware/headers.js.map +1 -1
  5. package/http-client/middleware/logging.d.ts +22 -11
  6. package/http-client/middleware/logging.js +8 -92
  7. package/http-client/middleware/logging.js.map +1 -1
  8. package/http-client/sauce/index.d.ts +16 -4
  9. package/http-client/sauce/index.js +34 -32
  10. package/http-client/sauce/index.js.map +1 -1
  11. package/http-client/utils.d.ts +9 -1
  12. package/http-client/utils.js +22 -1
  13. package/http-client/utils.js.map +1 -1
  14. package/http-server/middleware/logging.js +2 -1
  15. package/http-server/middleware/logging.js.map +1 -1
  16. package/http-server/middleware/tracing.js +1 -1
  17. package/http-server/middleware/tracing.js.map +1 -1
  18. package/http-server/utils.d.ts +2 -0
  19. package/http-server/utils.js +8 -0
  20. package/http-server/utils.js.map +1 -1
  21. package/logger/handler/{console.d.ts → pino.d.ts} +3 -3
  22. package/logger/handler/pino.js +29 -0
  23. package/logger/handler/pino.js.map +1 -0
  24. package/logger/handler/sentry.d.ts +2 -2
  25. package/logger/handler/sentry.js +11 -3
  26. package/logger/handler/sentry.js.map +1 -1
  27. package/package.json +7 -8
  28. package/preset/browser/index.d.ts +1 -5
  29. package/preset/browser/index.js +9 -18
  30. package/preset/browser/index.js.map +1 -1
  31. package/preset/node/index.d.ts +4 -4
  32. package/preset/node/index.js +36 -21
  33. package/preset/node/index.js.map +1 -1
  34. package/preset/node/response.d.ts +0 -2
  35. package/preset/node/response.js +10 -12
  36. package/preset/node/response.js.map +1 -1
  37. package/preset/parts/providers.d.ts +7 -0
  38. package/preset/parts/providers.js +26 -0
  39. package/preset/parts/providers.js.map +1 -0
  40. package/preset/{types.d.ts → parts/types.d.ts} +0 -0
  41. package/preset/{types.js → parts/types.js} +0 -0
  42. package/preset/{types.js.map → parts/types.js.map} +1 -1
  43. package/preset/parts/utils.d.ts +79 -0
  44. package/preset/parts/utils.js +201 -0
  45. package/preset/parts/utils.js.map +1 -0
  46. package/tokens.d.ts +7 -1
  47. package/tokens.js +4 -0
  48. package/tokens.js.map +1 -1
  49. package/utils/function.d.ts +28 -0
  50. package/utils/function.js +23 -0
  51. package/utils/function.js.map +1 -0
  52. package/utils/redux-saga/middleware.d.ts +3 -4
  53. package/utils/redux-saga/middleware.js +11 -14
  54. package/utils/redux-saga/middleware.js.map +1 -1
  55. package/utils/redux-saga/types.d.ts +10 -1
  56. package/utils/webpack/env/index.d.ts +18 -0
  57. package/utils/webpack/env/index.js +69 -0
  58. package/utils/webpack/env/index.js.map +1 -0
  59. package/utils/webpack/env/types.d.ts +11 -0
  60. package/utils/webpack/env/types.js +3 -0
  61. package/utils/webpack/env/types.js.map +1 -0
  62. package/utils/webpack/env/utils.d.ts +13 -0
  63. package/utils/webpack/env/utils.js +46 -0
  64. package/utils/webpack/env/utils.js.map +1 -0
  65. package/utils/webpack/index.d.ts +6 -23
  66. package/utils/webpack/index.js +5 -65
  67. package/utils/webpack/index.js.map +1 -1
  68. package/utils/webpack/module-federation/index.d.ts +4 -1
  69. package/utils/webpack/module-federation/index.js +7 -2
  70. package/utils/webpack/module-federation/index.js.map +1 -1
  71. package/utils/webpack/module-federation/types.d.ts +5 -1
  72. package/utils/webpack/module-federation/utils.d.ts +5 -0
  73. package/utils/webpack/module-federation/utils.js +72 -17
  74. package/utils/webpack/module-federation/utils.js.map +1 -1
  75. package/logger/handler/console.js +0 -46
  76. package/logger/handler/console.js.map +0 -1
  77. package/preset/utils.d.ts +0 -15
  78. package/preset/utils.js +0 -26
  79. package/preset/utils.js.map +0 -1
@@ -1,68 +1,8 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.EnvPlugin = void 0;
7
- const lodash_1 = require("lodash");
8
- const webpack_1 = __importDefault(require("webpack"));
9
- const dotenv_1 = __importDefault(require("dotenv"));
10
- const path_1 = __importDefault(require("path"));
11
- const env_1 = require("@humanwhocodes/env");
12
- /**
13
- * Плагин для зашивания переменных среды в сборки.
14
- * В браузерную сборку зашьёт только переменные с префиксом "PUBLIC_".
15
- * ВАЖНО: все зашиваемые переменные будут доступны через глобальный объект __ISOMORPH_ENV__.
16
- */
17
- class EnvPlugin {
18
- /**
19
- * @param options Опции.
20
- */
21
- constructor(options = {}) {
22
- this.options = {
23
- additional: options.additional || [],
24
- define: options.define,
25
- };
26
- }
27
- /**
28
- * @param compiler Компилятор.
29
- */
30
- apply(compiler) {
31
- const { NODE_ENV } = new env_1.Env().required;
32
- dotenv_1.default.config({ path: path_1.default.join(process.cwd(), `.env.${NODE_ENV}`) });
33
- const target = Array.isArray(compiler.options.target)
34
- ? compiler.options.target
35
- : [compiler.options.target];
36
- // browser
37
- if (target.includes('web')) {
38
- const valuesWeb = {
39
- ...this.options.define,
40
- ...(0, lodash_1.pick)(process.env, [...this.options.additional, 'NODE_ENV']),
41
- ...(0, lodash_1.pickBy)(process.env, (_, key) => key.startsWith('PUBLIC_')),
42
- };
43
- new webpack_1.default.DefinePlugin({ __ISOMORPH_ENV__: JSON.stringify(valuesWeb) }).apply(compiler);
44
- new webpack_1.default.DefinePlugin(Object.entries(valuesWeb).reduce((acc, [key, value]) => {
45
- acc[`process.env.${key}`] = JSON.stringify(value);
46
- return acc;
47
- }, {})).apply(compiler);
48
- }
49
- // node
50
- if (!target.includes('web')) {
51
- const valuesNode = {
52
- ...this.options.define,
53
- ...(0, lodash_1.pick)(process.env, [...this.options.additional, 'NODE_ENV']),
54
- };
55
- new webpack_1.default.DefinePlugin({ __ISOMORPH_ENV__: JSON.stringify(valuesNode) }).apply(compiler);
56
- if (this.options.define) {
57
- new webpack_1.default.DefinePlugin(
58
- // @todo похоже для консистентности здесь должно быть не this.options.define а valuesNode
59
- Object.entries(this.options.define).reduce((acc, [key, value]) => {
60
- acc[`process.env.${key}`] = JSON.stringify(value);
61
- return acc;
62
- }, {})).apply(compiler);
63
- }
64
- }
65
- }
66
- }
67
- exports.EnvPlugin = EnvPlugin;
3
+ exports.ModuleFederationPlugin = exports.EnvPlugin = void 0;
4
+ const env_1 = require("./env");
5
+ Object.defineProperty(exports, "EnvPlugin", { enumerable: true, get: function () { return env_1.EnvPlugin; } });
6
+ const module_federation_1 = require("./module-federation");
7
+ Object.defineProperty(exports, "ModuleFederationPlugin", { enumerable: true, get: function () { return module_federation_1.ModuleFederationPlugin; } });
68
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/webpack/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/webpack/index.ts"],"names":[],"mappings":";;;AAAA,+BAAkC;AAMzB,0FANA,eAAS,OAMA;AAJlB,2DAA6D;AAIzC,uGAJX,0CAAsB,OAIW"}
@@ -1,5 +1,6 @@
1
1
  import type { ModuleFederationPluginOptions, ReadyOptions } from './types';
2
2
  import { Compiler } from 'webpack';
3
+ import { DEFAULT_SHARED } from './utils';
3
4
  /** @internal */
4
5
  export declare const LIBRARY_ERROR_TEXT: string;
5
6
  /** @internal */
@@ -14,6 +15,8 @@ declare class CustomModuleFederationPlugin {
14
15
  readonly readyOptions: ReadyOptions;
15
16
  /**
16
17
  * @param options Опции.
18
+ * @param options.shared Общие модули. Если не переданы, используются дефолтные модули.
19
+ * Для отключения общих модулей задать false.
17
20
  */
18
21
  constructor(options: ModuleFederationPluginOptions);
19
22
  /**
@@ -21,4 +24,4 @@ declare class CustomModuleFederationPlugin {
21
24
  */
22
25
  apply(compiler: Compiler): void;
23
26
  }
24
- export { CustomModuleFederationPlugin as ModuleFederationPlugin };
27
+ export { CustomModuleFederationPlugin as ModuleFederationPlugin, DEFAULT_SHARED };
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModuleFederationPlugin = exports.REMOTE_ERROR_TEXT = exports.LIBRARY_ERROR_TEXT = void 0;
3
+ exports.DEFAULT_SHARED = exports.ModuleFederationPlugin = exports.REMOTE_ERROR_TEXT = exports.LIBRARY_ERROR_TEXT = void 0;
4
4
  const webpack_1 = require("webpack");
5
5
  const utils_1 = require("./utils");
6
+ Object.defineProperty(exports, "DEFAULT_SHARED", { enumerable: true, get: function () { return utils_1.DEFAULT_SHARED; } });
6
7
  /** @internal */
7
8
  exports.LIBRARY_ERROR_TEXT = [
8
9
  'Property "library" set internally as "global" and not overridden.',
@@ -21,6 +22,8 @@ exports.REMOTE_ERROR_TEXT = [
21
22
  class CustomModuleFederationPlugin {
22
23
  /**
23
24
  * @param options Опции.
25
+ * @param options.shared Общие модули. Если не переданы, используются дефолтные модули.
26
+ * Для отключения общих модулей задать false.
24
27
  */
25
28
  constructor(options) {
26
29
  const { name, remotes, remoteEntriesGlobalKey = '__RemoteEntriesList__', containersGlobalKey = '__FederationContainers__', } = options;
@@ -48,7 +51,8 @@ class CustomModuleFederationPlugin {
48
51
  * @param compiler Компилятор.
49
52
  */
50
53
  apply(compiler) {
51
- const { remotes, remoteEntriesGlobalKey, containersGlobalKey, ...restOptions } = this.readyOptions;
54
+ const { remotes, remoteEntriesGlobalKey, containersGlobalKey, shared, ...restOptions } = this.readyOptions;
55
+ const configuredShared = shared || utils_1.DEFAULT_SHARED;
52
56
  const configuredRemotes = {};
53
57
  if (remotes) {
54
58
  for (const [key, value] of Object.entries(remotes)) {
@@ -67,6 +71,7 @@ class CustomModuleFederationPlugin {
67
71
  compiler.hooks.environment.tap('[isomorph]ModuleFederationPlugin', () => {
68
72
  new webpack_1.container.ModuleFederationPlugin({
69
73
  ...(remotes && { remotes: configuredRemotes }),
74
+ ...(shared !== false && { shared: configuredShared }),
70
75
  ...restOptions,
71
76
  }).apply(compiler);
72
77
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/webpack/module-federation/index.ts"],"names":[],"mappings":";;;AACA,qCAA4D;AAC5D,mCAA+C;AAE/C,gBAAgB;AACH,QAAA,kBAAkB,GAAG;IAChC,mEAAmE;IACnE,uEAAuE;IACvE,yDAAyD;CAC1D,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,gBAAgB;AACH,QAAA,iBAAiB,GAAG;IAC/B,mDAAmD;IACnD,yEAAyE;IACzE,2EAA2E;CAC5E,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ;;GAEG;AACH,MAAM,4BAA4B;IAMhC;;OAEG;IACH,YAAY,OAAsC;QAChD,MAAM,EACJ,IAAI,EACJ,OAAO,EACP,sBAAsB,GAAG,uBAAuB,EAChD,mBAAmB,GAAG,0BAA0B,GACjD,GAAG,OAAO,CAAC;QAEZ,IAAI,SAAS,IAAI,OAAO,EAAE;YACxB,MAAM,IAAI,sBAAY,CAAC,0BAAkB,CAAC,CAAC;SAC5C;QAED,IAAI,OAAO,EAAE;YACX,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;gBAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;oBAC5C,MAAM,IAAI,sBAAY,CAAC,yBAAiB,CAAC,CAAC;iBAC3C;aACF;SACF;QAED,IAAI,CAAC,YAAY,GAAG;YAClB,GAAG,OAAO;YACV,sBAAsB;YACtB,mBAAmB;YACnB,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,mBAAmB,EAAE,IAAI,CAAC;aAClC;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAkB;QACtB,MAAM,EAAE,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,GAAG,WAAW,EAAE,GAC5E,IAAI,CAAC,YAAY,CAAC;QAEpB,MAAM,iBAAiB,GAAwB,EAAE,CAAC;QAElD,IAAI,OAAO,EAAE;YACX,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAClD,MAAM,WAAW,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gBACnE,MAAM,eAAe,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;gBAEtF,iBAAiB,CAAC,GAAG,CAAC,GAAG;oBACvB,QAAQ,EAAE,IAAA,4BAAoB,EAAC;wBAC7B,WAAW;wBACX,eAAe;wBACf,sBAAsB;wBACtB,mBAAmB;qBACpB,CAAC;iBACH,CAAC;aACH;SACF;QAED,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,kCAAkC,EAAE,GAAG,EAAE;YACtE,IAAI,mBAAS,CAAC,sBAAsB,CAAC;gBACnC,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;gBAC9C,GAAG,WAAW;aACf,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAEwC,8DAAsB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/webpack/module-federation/index.ts"],"names":[],"mappings":";;;AACA,qCAA4D;AAC5D,mCAA+D;AAiGE,+FAjGlC,sBAAc,OAiGkC;AA/F/E,gBAAgB;AACH,QAAA,kBAAkB,GAAG;IAChC,mEAAmE;IACnE,uEAAuE;IACvE,yDAAyD;CAC1D,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,gBAAgB;AACH,QAAA,iBAAiB,GAAG;IAC/B,mDAAmD;IACnD,yEAAyE;IACzE,2EAA2E;CAC5E,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ;;GAEG;AACH,MAAM,4BAA4B;IAMhC;;;;OAIG;IACH,YAAY,OAAsC;QAChD,MAAM,EACJ,IAAI,EACJ,OAAO,EACP,sBAAsB,GAAG,uBAAuB,EAChD,mBAAmB,GAAG,0BAA0B,GACjD,GAAG,OAAO,CAAC;QAEZ,IAAI,SAAS,IAAI,OAAO,EAAE;YACxB,MAAM,IAAI,sBAAY,CAAC,0BAAkB,CAAC,CAAC;SAC5C;QAED,IAAI,OAAO,EAAE;YACX,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;gBAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;oBAC5C,MAAM,IAAI,sBAAY,CAAC,yBAAiB,CAAC,CAAC;iBAC3C;aACF;SACF;QAED,IAAI,CAAC,YAAY,GAAG;YAClB,GAAG,OAAO;YACV,sBAAsB;YACtB,mBAAmB;YACnB,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,mBAAmB,EAAE,IAAI,CAAC;aAClC;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAkB;QACtB,MAAM,EAAE,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,GACpF,IAAI,CAAC,YAAY,CAAC;QAEpB,MAAM,gBAAgB,GAAG,MAAM,IAAI,sBAAc,CAAC;QAClD,MAAM,iBAAiB,GAAwB,EAAE,CAAC;QAElD,IAAI,OAAO,EAAE;YACX,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAClD,MAAM,WAAW,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gBACnE,MAAM,eAAe,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;gBAEtF,iBAAiB,CAAC,GAAG,CAAC,GAAG;oBACvB,QAAQ,EAAE,IAAA,4BAAoB,EAAC;wBAC7B,WAAW;wBACX,eAAe;wBACf,sBAAsB;wBACtB,mBAAmB;qBACpB,CAAC;iBACH,CAAC;aACH;SACF;QAED,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,kCAAkC,EAAE,GAAG,EAAE;YACtE,IAAI,mBAAS,CAAC,sBAAsB,CAAC;gBACnC,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;gBAC9C,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;gBACrD,GAAG,WAAW;aACf,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAEwC,8DAAsB"}
@@ -8,6 +8,8 @@ export interface RemoteProperty {
8
8
  /** @internal */
9
9
  export declare type OriginalModuleFederationPluginOptions = ConstructorParameters<typeof container.ModuleFederationPlugin>[0];
10
10
  /** @internal */
11
+ export declare type Shared = OriginalModuleFederationPluginOptions['shared'];
12
+ /** @internal */
11
13
  export interface ModuleFederationPluginOptions {
12
14
  /** Имя сервиса. */
13
15
  name: string;
@@ -18,7 +20,7 @@ export interface ModuleFederationPluginOptions {
18
20
  /** Предоставляемые сервисы. */
19
21
  exposes?: OriginalModuleFederationPluginOptions['exposes'];
20
22
  /** Общие зависимости. */
21
- shared?: OriginalModuleFederationPluginOptions['shared'];
23
+ shared?: Shared | false;
22
24
  /** Ключ свойства в глобальном объекте,в котором хранится карта точек входа в удаленные сервисы. */
23
25
  remoteEntriesGlobalKey?: string;
24
26
  /** Ключ свойства в глобальном объекте, в который добавляются контейнеры удаленных сервисов. */
@@ -28,3 +30,5 @@ export interface ModuleFederationPluginOptions {
28
30
  export declare type ReadyOptions = Omit<ModuleFederationPluginOptions, 'remoteEntriesGlobalKey' | 'containersGlobalKey'> & Required<Pick<ModuleFederationPluginOptions, 'remoteEntriesGlobalKey' | 'containersGlobalKey'>> & {
29
31
  library: Required<OriginalModuleFederationPluginOptions>['library'];
30
32
  };
33
+ /** @internal */
34
+ export declare type SharedArray = Extract<Shared, Array<unknown>>;
@@ -1,3 +1,4 @@
1
+ import type { SharedArray } from './types';
1
2
  /**
2
3
  * Возвращает скрипт инициализации удаленного модуля.
3
4
  * @internal
@@ -14,3 +15,7 @@ export declare function createExternalConfig({ serviceName, containersGlobalKey,
14
15
  containersGlobalKey: string;
15
16
  remoteEntryPath?: string;
16
17
  }): string;
18
+ /**
19
+ * Перечень общих для всех сервисов зависимостей.
20
+ */
21
+ export declare const DEFAULT_SHARED: SharedArray;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createExternalConfig = void 0;
3
+ exports.DEFAULT_SHARED = exports.createExternalConfig = void 0;
4
4
  /**
5
5
  * Возвращает скрипт инициализации удаленного модуля.
6
6
  * @internal
@@ -12,26 +12,81 @@ exports.createExternalConfig = void 0;
12
12
  * @return Скрипт инициализации.
13
13
  */
14
14
  function createExternalConfig({ serviceName, containersGlobalKey, remoteEntriesGlobalKey, remoteEntryPath, }) {
15
- return `promise new Promise((resolve, reject) => {
16
- if (window['${remoteEntriesGlobalKey}']) {
17
- const scriptElement = document.createElement('script');
18
- scriptElement.onload = () => {
19
- scriptElement.remove();
20
- resolve(window['${containersGlobalKey}']['${serviceName}']);
21
- };
22
- scriptElement.onerror = () => {
23
- scriptElement.remove();
24
- reject(new Error('Failed loading remoteEntry for "${serviceName}".'));
25
- };
26
- scriptElement.src = ${remoteEntryPath
15
+ return `promise new Promise((resolveProxy, rejectProxy) => {
16
+ let installed = false;
17
+ let shareScope;
18
+
19
+ if (window["${remoteEntriesGlobalKey}"]) {
20
+ const proxy = {
21
+ get(request) {
22
+ return installed
23
+ ? window["${containersGlobalKey}"]["${serviceName}"].get(request)
24
+ : new Promise((resolveRequest, rejectRequest) => {
25
+ const scriptElement = document.createElement("script");
26
+
27
+ scriptElement.onload = () => {
28
+ scriptElement.remove();
29
+ const container = window["${containersGlobalKey}"]["${serviceName}"];
30
+ try {
31
+ container.init(shareScope);
32
+ installed = true;
33
+ } catch (e) {}
34
+ resolveRequest(container.get(request));
35
+ };
36
+
37
+ scriptElement.onerror = () => {
38
+ scriptElement.remove();
39
+ rejectRequest(
40
+ new Error('Failed loading remoteEntry for "${serviceName}".')
41
+ );
42
+ };
43
+
44
+ scriptElement.src = ${remoteEntryPath
27
45
  ? `'${remoteEntryPath}'`
28
46
  : `window['${remoteEntriesGlobalKey}']['${serviceName}']`};
29
- scriptElement.async = true;
30
- document.head.append(scriptElement);
47
+
48
+ scriptElement.async = true;
49
+ document.head.append(scriptElement);
50
+ });
51
+ },
52
+ init(scope) {
53
+ shareScope = scope;
54
+ },
55
+ };
56
+
57
+ resolveProxy(proxy);
31
58
  } else {
32
- reject(new ReferenceError('Object "${remoteEntriesGlobalKey}" unavailable.'));
59
+ rejectProxy(
60
+ new ReferenceError('Object "${remoteEntriesGlobalKey}" unavailable.')
61
+ );
33
62
  }
34
- })`;
63
+ });`;
35
64
  }
36
65
  exports.createExternalConfig = createExternalConfig;
66
+ /**
67
+ * Перечень общих для всех сервисов зависимостей.
68
+ */
69
+ exports.DEFAULT_SHARED = [
70
+ {
71
+ react: {
72
+ singleton: true,
73
+ },
74
+ 'react-dom': {
75
+ singleton: true,
76
+ },
77
+ },
78
+ /* Инжектится транспайлером в [jt]sx для преобразования JSX */
79
+ 'react/jsx-runtime',
80
+ 'react-redux',
81
+ '@reduxjs/toolkit',
82
+ 'redux-saga',
83
+ /* Шарим модули, импортируемые из поддиректорий, например `/effects` */
84
+ 'redux-saga/',
85
+ 'classnames',
86
+ /* Шарим модули, импортируемые из поддиректорий, например `/bind` */
87
+ 'classnames/',
88
+ 'axios',
89
+ '@olime/cq-ch',
90
+ '@sentry/browser',
91
+ ];
37
92
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/utils/webpack/module-federation/utils.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;GASG;AACH,SAAgB,oBAAoB,CAAC,EACnC,WAAW,EACX,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,GAMhB;IACC,OAAO;gBACO,sBAAsB;;;;wBAId,mBAAmB,OAAO,WAAW;;;;0DAIH,WAAW;;0BAG/D,eAAe;QACb,CAAC,CAAC,IAAI,eAAe,GAAG;QACxB,CAAC,CAAC,WAAW,sBAAsB,OAAO,WAAW,IACzD;;;;yCAIqC,sBAAsB;;GAE5D,CAAC;AACJ,CAAC;AAjCD,oDAiCC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/utils/webpack/module-federation/utils.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;GASG;AACH,SAAgB,oBAAoB,CAAC,EACnC,WAAW,EACX,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,GAMhB;IACC,OAAO;;;;gBAIO,sBAAsB;;;;sBAIhB,mBAAmB,OAAO,WAAW;;;;;;4CAMf,mBAAmB,OAAO,WAAW;;;;;;;;;;;+DAWlB,WAAW;;;;oCAK1D,eAAe;QACb,CAAC,CAAC,IAAI,eAAe,GAAG;QACxB,CAAC,CAAC,WAAW,sBAAsB,OAAO,WAAW,IACzD;;;;;;;;;;;;;;oCAcsB,sBAAsB;;;IAGtD,CAAC;AACL,CAAC;AA9DD,oDA8DC;AAED;;GAEG;AACU,QAAA,cAAc,GAAgB;IACzC;QACE,KAAK,EAAE;YACL,SAAS,EAAE,IAAI;SAChB;QACD,WAAW,EAAE;YACX,SAAS,EAAE,IAAI;SAChB;KACF;IAED,8DAA8D;IAC9D,mBAAmB;IACnB,aAAa;IACb,kBAAkB;IAClB,YAAY;IAEZ,uEAAuE;IACvE,aAAa;IACb,YAAY;IACZ,oEAAoE;IACpE,aAAa;IACb,OAAO;IACP,cAAc;IACd,iBAAiB;CAClB,CAAC"}
@@ -1,46 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createConsoleHandler = void 0;
7
- const pino_1 = __importDefault(require("pino"));
8
- const pino_pretty_1 = __importDefault(require("pino-pretty"));
9
- /**
10
- * Возвращает новый handler для logger'а для вывода событий в терминал.
11
- * @param config Конфиг.
12
- * @return Handler.
13
- */
14
- function createConsoleHandler(config) {
15
- const isProd = config.env === 'production';
16
- const logger = (0, pino_1.default)(isProd
17
- ? {
18
- formatters: {
19
- // ВАЖНО: для Fluent необходимо наличие поля level: string
20
- level: label => ({ level: label }),
21
- },
22
- }
23
- : (0, pino_pretty_1.default)({
24
- colorize: true,
25
- translateTime: 'yyyy-mm-dd HH:MM:ss.l o',
26
- }));
27
- return function handler(event) {
28
- switch (event.type) {
29
- case 'log':
30
- case 'info':
31
- logger.info(event.data);
32
- break;
33
- case 'warn':
34
- logger.warn(event.data);
35
- break;
36
- case 'debug':
37
- logger.debug(event.data);
38
- break;
39
- case 'error':
40
- logger.error(event.data);
41
- break;
42
- }
43
- };
44
- }
45
- exports.createConsoleHandler = createConsoleHandler;
46
- //# sourceMappingURL=console.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/logger/handler/console.ts"],"names":[],"mappings":";;;;;;AAEA,gDAAwB;AACxB,8DAAqC;AAErC;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,MAAkB;IACrD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,KAAK,YAAY,CAAC;IAE3C,MAAM,MAAM,GAAG,IAAA,cAAI,EACjB,MAAM;QACJ,CAAC,CAAC;YACE,UAAU,EAAE;gBACV,0DAA0D;gBAC1D,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;aACnC;SACF;QACH,CAAC,CAAC,IAAA,qBAAU,EAAC;YACT,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,yBAAyB;SACzC,CAAC,CACP,CAAC;IAEF,OAAO,SAAS,OAAO,CAAC,KAAK;QAC3B,QAAQ,KAAK,CAAC,IAAI,EAAE;YAClB,KAAK,KAAK,CAAC;YACX,KAAK,MAAM;gBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzB,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzB,MAAM;SACT;IACH,CAAC,CAAC;AACJ,CAAC;AAlCD,oDAkCC"}
package/preset/utils.d.ts DELETED
@@ -1,15 +0,0 @@
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 DELETED
@@ -1,26 +0,0 @@
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
@@ -1 +0,0 @@
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"}