@tramvai/module-child-app 2.11.0 → 2.20.0

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/README.md CHANGED
@@ -260,11 +260,13 @@ You may preload using next ways:
260
260
  1. Add needed child-apps to the pageComponent or layoutComponent through field `childApps`
261
261
 
262
262
  ```ts
263
- const PageComponent = () => {
263
+ import { PageComponent } from '@tramvai/react';
264
+
265
+ const PageCmp: PageComponent = () => {
264
266
  return 'Page';
265
267
  };
266
268
 
267
- PageComponent.childApps = [{ name: '[name]' }];
269
+ PageCmp.childApps = [{ name: '[name]' }];
268
270
  ```
269
271
 
270
272
  ### Debug child-app
@@ -6,6 +6,7 @@ export * from '@tramvai/tokens-child-app';
6
6
  import { CONTEXT_TOKEN, ACTION_PAGE_RUNNER_TOKEN, LOGGER_TOKEN, DISPATCHER_TOKEN, STORE_TOKEN, DISPATCHER_CONTEXT_TOKEN, STORE_MIDDLEWARE, INITIAL_APP_STATE_TOKEN, COMBINE_REDUCERS, ENV_MANAGER_TOKEN, REGISTER_CLEAR_CACHE_TOKEN, CLEAR_CACHE_TOKEN, ENV_USED_TOKEN } from '@tramvai/tokens-common';
7
7
  import { RENDER_SLOTS, EXTEND_RENDER } from '@tramvai/tokens-render';
8
8
  import { ROUTER_SPA_ACTIONS_RUN_MODE_TOKEN, PAGE_SERVICE_TOKEN, ROUTER_TOKEN } from '@tramvai/tokens-router';
9
+ import { resolveLazyComponent, useDi } from '@tramvai/react';
9
10
  import flatten from '@tinkoff/utils/array/flatten';
10
11
  import noop from '@tinkoff/utils/function/noop';
11
12
  import { Subscription, ChildDispatcherContext, createEvent, createReducer } from '@tramvai/state';
@@ -13,7 +14,6 @@ import { jsx } from 'react/jsx-runtime';
13
14
  import { createContext, useContext, useMemo, useState, useEffect, createElement } from 'react';
14
15
  import applyOrReturn from '@tinkoff/utils/function/applyOrReturn';
15
16
  import { loadModule } from '@tinkoff/module-loader-client';
16
- import { useDi } from '@tramvai/react';
17
17
 
18
18
  const getChildProviders$2 = (appDi) => {
19
19
  const context = appDi.get(CONTEXT_TOKEN);
@@ -383,15 +383,6 @@ const getModuleFederation = async (container, name = 'entry') => {
383
383
  return container.get(name);
384
384
  };
385
385
 
386
- const resolveComponent = async (componentOrLoader) => {
387
- if (!componentOrLoader) {
388
- return;
389
- }
390
- return 'load' in componentOrLoader && typeof componentOrLoader.load === 'function'
391
- ? (await componentOrLoader.load()).default
392
- : componentOrLoader;
393
- };
394
-
395
386
  class ChildAppResolutionConfigManager {
396
387
  constructor({ configs, }) {
397
388
  this.hasInitialized = false;
@@ -446,7 +437,7 @@ const sharedProviders = [
446
437
  provide({
447
438
  provide: commandLineListTokens$1.init,
448
439
  multi: true,
449
- useValue: initModuleFederation,
440
+ useValue: () => initModuleFederation(),
450
441
  }),
451
442
  provide({
452
443
  provide: CHILD_APP_RESOLUTION_CONFIG_MANAGER_TOKEN,
@@ -561,8 +552,8 @@ const sharedProviders = [
561
552
  return async function preloadChildAppByComponent() {
562
553
  var _a, _b, _c, _d;
563
554
  const [layoutComponent, pageComponent] = await Promise.all([
564
- resolveComponent(pageService.resolveComponentFromConfig('layout')),
565
- resolveComponent(pageService.resolveComponentFromConfig('page')),
555
+ resolveLazyComponent(pageService.resolveComponentFromConfig('layout')),
556
+ resolveLazyComponent(pageService.resolveComponentFromConfig('page')),
566
557
  ]);
567
558
  await Promise.all([
568
559
  ...((_b = (_a = layoutComponent === null || layoutComponent === void 0 ? void 0 : layoutComponent.childApps) === null || _a === void 0 ? void 0 : _a.map((request) => preloadManager.preload(request))) !== null && _b !== void 0 ? _b : []),
package/lib/server.es.js CHANGED
@@ -6,6 +6,7 @@ export * from '@tramvai/tokens-child-app';
6
6
  import { ACTION_PAGE_RUNNER_TOKEN, LOGGER_TOKEN, DISPATCHER_TOKEN, STORE_TOKEN, CONTEXT_TOKEN, DISPATCHER_CONTEXT_TOKEN, STORE_MIDDLEWARE, INITIAL_APP_STATE_TOKEN, COMBINE_REDUCERS, ENV_MANAGER_TOKEN, REGISTER_CLEAR_CACHE_TOKEN, CLEAR_CACHE_TOKEN, ENV_USED_TOKEN, CREATE_CACHE_TOKEN } from '@tramvai/tokens-common';
7
7
  import { RENDER_SLOTS, EXTEND_RENDER, ResourceType, ResourceSlot, RESOURCES_REGISTRY } from '@tramvai/tokens-render';
8
8
  import { PAGE_SERVICE_TOKEN } from '@tramvai/tokens-router';
9
+ import { resolveLazyComponent, useDi } from '@tramvai/react';
9
10
  import flatten from '@tinkoff/utils/array/flatten';
10
11
  import { ChildDispatcherContext, createEvent, createReducer } from '@tramvai/state';
11
12
  import { jsx } from 'react/jsx-runtime';
@@ -15,7 +16,6 @@ import { combineValidators, isUrl, endsWith } from '@tinkoff/env-validators';
15
16
  import { safeDehydrate } from '@tramvai/safe-strings';
16
17
  import { ServerLoader as ServerLoader$1 } from '@tinkoff/module-loader-server';
17
18
  import noop from '@tinkoff/utils/function/noop';
18
- import { useDi } from '@tramvai/react';
19
19
 
20
20
  const getChildProviders$2 = (appDi) => {
21
21
  return [
@@ -321,15 +321,6 @@ const getModuleFederation = async (container, name = 'entry') => {
321
321
  return container.get(name);
322
322
  };
323
323
 
324
- const resolveComponent = async (componentOrLoader) => {
325
- if (!componentOrLoader) {
326
- return;
327
- }
328
- return 'load' in componentOrLoader && typeof componentOrLoader.load === 'function'
329
- ? (await componentOrLoader.load()).default
330
- : componentOrLoader;
331
- };
332
-
333
324
  class ChildAppResolutionConfigManager {
334
325
  constructor({ configs, }) {
335
326
  this.hasInitialized = false;
@@ -384,7 +375,7 @@ const sharedProviders = [
384
375
  provide({
385
376
  provide: commandLineListTokens$1.init,
386
377
  multi: true,
387
- useValue: initModuleFederation,
378
+ useValue: () => initModuleFederation(),
388
379
  }),
389
380
  provide({
390
381
  provide: CHILD_APP_RESOLUTION_CONFIG_MANAGER_TOKEN,
@@ -499,8 +490,8 @@ const sharedProviders = [
499
490
  return async function preloadChildAppByComponent() {
500
491
  var _a, _b, _c, _d;
501
492
  const [layoutComponent, pageComponent] = await Promise.all([
502
- resolveComponent(pageService.resolveComponentFromConfig('layout')),
503
- resolveComponent(pageService.resolveComponentFromConfig('page')),
493
+ resolveLazyComponent(pageService.resolveComponentFromConfig('layout')),
494
+ resolveLazyComponent(pageService.resolveComponentFromConfig('page')),
504
495
  ]);
505
496
  await Promise.all([
506
497
  ...((_b = (_a = layoutComponent === null || layoutComponent === void 0 ? void 0 : layoutComponent.childApps) === null || _a === void 0 ? void 0 : _a.map((request) => preloadManager.preload(request))) !== null && _b !== void 0 ? _b : []),
package/lib/server.js CHANGED
@@ -9,6 +9,7 @@ var tokensChildApp = require('@tramvai/tokens-child-app');
9
9
  var tokensCommon = require('@tramvai/tokens-common');
10
10
  var tokensRender = require('@tramvai/tokens-render');
11
11
  var tokensRouter = require('@tramvai/tokens-router');
12
+ var react$1 = require('@tramvai/react');
12
13
  var flatten = require('@tinkoff/utils/array/flatten');
13
14
  var state = require('@tramvai/state');
14
15
  var jsxRuntime = require('react/jsx-runtime');
@@ -18,7 +19,6 @@ var envValidators = require('@tinkoff/env-validators');
18
19
  var safeStrings = require('@tramvai/safe-strings');
19
20
  var moduleLoaderServer = require('@tinkoff/module-loader-server');
20
21
  var noop = require('@tinkoff/utils/function/noop');
21
- var react$1 = require('@tramvai/react');
22
22
 
23
23
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
24
24
 
@@ -330,15 +330,6 @@ const getModuleFederation = async (container, name = 'entry') => {
330
330
  return container.get(name);
331
331
  };
332
332
 
333
- const resolveComponent = async (componentOrLoader) => {
334
- if (!componentOrLoader) {
335
- return;
336
- }
337
- return 'load' in componentOrLoader && typeof componentOrLoader.load === 'function'
338
- ? (await componentOrLoader.load()).default
339
- : componentOrLoader;
340
- };
341
-
342
333
  class ChildAppResolutionConfigManager {
343
334
  constructor({ configs, }) {
344
335
  this.hasInitialized = false;
@@ -393,7 +384,7 @@ const sharedProviders = [
393
384
  core.provide({
394
385
  provide: core.commandLineListTokens.init,
395
386
  multi: true,
396
- useValue: initModuleFederation,
387
+ useValue: () => initModuleFederation(),
397
388
  }),
398
389
  core.provide({
399
390
  provide: tokensChildApp.CHILD_APP_RESOLUTION_CONFIG_MANAGER_TOKEN,
@@ -508,8 +499,8 @@ const sharedProviders = [
508
499
  return async function preloadChildAppByComponent() {
509
500
  var _a, _b, _c, _d;
510
501
  const [layoutComponent, pageComponent] = await Promise.all([
511
- resolveComponent(pageService.resolveComponentFromConfig('layout')),
512
- resolveComponent(pageService.resolveComponentFromConfig('page')),
502
+ react$1.resolveLazyComponent(pageService.resolveComponentFromConfig('layout')),
503
+ react$1.resolveLazyComponent(pageService.resolveComponentFromConfig('page')),
513
504
  ]);
514
505
  await Promise.all([
515
506
  ...((_b = (_a = layoutComponent === null || layoutComponent === void 0 ? void 0 : layoutComponent.childApps) === null || _a === void 0 ? void 0 : _a.map((request) => preloadManager.preload(request))) !== null && _b !== void 0 ? _b : []),
@@ -1,7 +1,10 @@
1
1
  import type { Provider } from '@tinkoff/dippy';
2
2
  import type { ChildAppRequestConfig } from '@tramvai/tokens-child-app';
3
- declare module '@tramvai/tokens-common' {
4
- interface RegistryComponentExtend {
3
+ declare module '@tramvai/react' {
4
+ interface PageComponentOptions {
5
+ childApps?: ChildAppRequestConfig[];
6
+ }
7
+ interface LayoutComponentOptions {
5
8
  childApps?: ChildAppRequestConfig[];
6
9
  }
7
10
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tramvai/module-child-app",
3
- "version": "2.11.0",
3
+ "version": "2.20.0",
4
4
  "description": "Module for child apps",
5
5
  "browser": {
6
6
  "./lib/server.js": "./lib/browser.js",
@@ -28,23 +28,23 @@
28
28
  "registry": "https://registry.npmjs.org/"
29
29
  },
30
30
  "dependencies": {
31
- "@tinkoff/env-validators": "0.0.5",
32
- "@tinkoff/module-loader-client": "0.3.28",
33
- "@tinkoff/module-loader-server": "0.4.46",
34
- "@tramvai/child-app-core": "2.11.0",
35
- "@tramvai/safe-strings": "0.4.5",
36
- "@tramvai/tokens-child-app": "2.11.0"
31
+ "@tinkoff/env-validators": "0.1.2",
32
+ "@tinkoff/module-loader-client": "0.4.2",
33
+ "@tinkoff/module-loader-server": "0.5.2",
34
+ "@tramvai/child-app-core": "2.20.0",
35
+ "@tramvai/safe-strings": "0.5.2",
36
+ "@tramvai/tokens-child-app": "2.20.0"
37
37
  },
38
38
  "devDependencies": {},
39
39
  "peerDependencies": {
40
- "@tinkoff/dippy": "0.7.45",
40
+ "@tinkoff/dippy": "0.8.2",
41
41
  "@tinkoff/utils": "^2.1.2",
42
- "@tramvai/core": "2.11.0",
43
- "@tramvai/state": "2.11.0",
44
- "@tramvai/react": "2.11.0",
45
- "@tramvai/tokens-common": "2.11.0",
46
- "@tramvai/tokens-render": "2.11.0",
47
- "@tramvai/tokens-router": "2.11.0",
42
+ "@tramvai/core": "2.20.0",
43
+ "@tramvai/state": "2.20.0",
44
+ "@tramvai/react": "2.20.0",
45
+ "@tramvai/tokens-common": "2.20.0",
46
+ "@tramvai/tokens-render": "2.20.0",
47
+ "@tramvai/tokens-router": "2.20.0",
48
48
  "react": ">=16.14.0",
49
49
  "react-dom": ">=16.14.0",
50
50
  "object-assign": "^4.1.1",
@@ -1,6 +0,0 @@
1
- import type { Component } from '@tramvai/tokens-common';
2
- export declare const resolveComponent: <T extends Component>(componentOrLoader: T | {
3
- load: () => Promise<{
4
- default: T;
5
- }>;
6
- }) => Promise<T>;