@tramvai/module-child-app 2.109.1 → 2.110.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.
@@ -0,0 +1,49 @@
1
+ import { provide, commandLineListTokens } from '@tramvai/core';
2
+ import { resolveLazyComponent } from '@tramvai/react';
3
+ import { CHILD_APP_PRELOAD_MANAGER_TOKEN } from '@tramvai/tokens-child-app';
4
+ import { LINK_PREFETCH_HANDLER_TOKEN, PAGE_SERVICE_TOKEN } from '@tramvai/tokens-router';
5
+
6
+ const pagePreload = async ({ pageService, preloadManager, }, route) => {
7
+ const components = await Promise.all([
8
+ resolveLazyComponent(pageService.resolveComponentFromConfig('layout', route)),
9
+ resolveLazyComponent(pageService.resolveComponentFromConfig('nestedLayout', route)),
10
+ resolveLazyComponent(pageService.resolveComponentFromConfig('page', route)),
11
+ ]);
12
+ await Promise.all(components.map(async (component) => {
13
+ if (component === null || component === void 0 ? void 0 : component.childApps) {
14
+ await Promise.all(component.childApps.map((request) => preloadManager.preload(request).catch(() => {
15
+ // actual error will be logged internally
16
+ })));
17
+ }
18
+ }));
19
+ };
20
+ const pagePreloadProviders = [
21
+ provide({
22
+ provide: LINK_PREFETCH_HANDLER_TOKEN,
23
+ useFactory: (deps) => {
24
+ return function prefetchChildApps(route) {
25
+ return pagePreload(deps, route);
26
+ };
27
+ },
28
+ multi: true,
29
+ deps: {
30
+ pageService: PAGE_SERVICE_TOKEN,
31
+ preloadManager: CHILD_APP_PRELOAD_MANAGER_TOKEN,
32
+ },
33
+ }),
34
+ provide({
35
+ provide: commandLineListTokens.resolvePageDeps,
36
+ useFactory: (deps) => {
37
+ return function preloadChildApps() {
38
+ return pagePreload(deps);
39
+ };
40
+ },
41
+ multi: true,
42
+ deps: {
43
+ pageService: PAGE_SERVICE_TOKEN,
44
+ preloadManager: CHILD_APP_PRELOAD_MANAGER_TOKEN,
45
+ },
46
+ }),
47
+ ];
48
+
49
+ export { pagePreloadProviders };
@@ -0,0 +1,2 @@
1
+ import type { Provider } from '@tramvai/core';
2
+ export declare const pagePreloadProviders: Provider[];
@@ -0,0 +1,49 @@
1
+ import { provide, commandLineListTokens } from '@tramvai/core';
2
+ import { resolveLazyComponent } from '@tramvai/react';
3
+ import { CHILD_APP_PRELOAD_MANAGER_TOKEN } from '@tramvai/tokens-child-app';
4
+ import { LINK_PREFETCH_HANDLER_TOKEN, PAGE_SERVICE_TOKEN } from '@tramvai/tokens-router';
5
+
6
+ const pagePreload = async ({ pageService, preloadManager, }, route) => {
7
+ const components = await Promise.all([
8
+ resolveLazyComponent(pageService.resolveComponentFromConfig('layout', route)),
9
+ resolveLazyComponent(pageService.resolveComponentFromConfig('nestedLayout', route)),
10
+ resolveLazyComponent(pageService.resolveComponentFromConfig('page', route)),
11
+ ]);
12
+ await Promise.all(components.map(async (component) => {
13
+ if (component === null || component === void 0 ? void 0 : component.childApps) {
14
+ await Promise.all(component.childApps.map((request) => preloadManager.preload(request).catch(() => {
15
+ // actual error will be logged internally
16
+ })));
17
+ }
18
+ }));
19
+ };
20
+ const pagePreloadProviders = [
21
+ provide({
22
+ provide: LINK_PREFETCH_HANDLER_TOKEN,
23
+ useFactory: (deps) => {
24
+ return function prefetchChildApps(route) {
25
+ return pagePreload(deps, route);
26
+ };
27
+ },
28
+ multi: true,
29
+ deps: {
30
+ pageService: PAGE_SERVICE_TOKEN,
31
+ preloadManager: CHILD_APP_PRELOAD_MANAGER_TOKEN,
32
+ },
33
+ }),
34
+ provide({
35
+ provide: commandLineListTokens.resolvePageDeps,
36
+ useFactory: (deps) => {
37
+ return function preloadChildApps() {
38
+ return pagePreload(deps);
39
+ };
40
+ },
41
+ multi: true,
42
+ deps: {
43
+ pageService: PAGE_SERVICE_TOKEN,
44
+ preloadManager: CHILD_APP_PRELOAD_MANAGER_TOKEN,
45
+ },
46
+ }),
47
+ ];
48
+
49
+ export { pagePreloadProviders };
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var core = require('@tramvai/core');
6
+ var react = require('@tramvai/react');
7
+ var tokensChildApp = require('@tramvai/tokens-child-app');
8
+ var tokensRouter = require('@tramvai/tokens-router');
9
+
10
+ const pagePreload = async ({ pageService, preloadManager, }, route) => {
11
+ const components = await Promise.all([
12
+ react.resolveLazyComponent(pageService.resolveComponentFromConfig('layout', route)),
13
+ react.resolveLazyComponent(pageService.resolveComponentFromConfig('nestedLayout', route)),
14
+ react.resolveLazyComponent(pageService.resolveComponentFromConfig('page', route)),
15
+ ]);
16
+ await Promise.all(components.map(async (component) => {
17
+ if (component === null || component === void 0 ? void 0 : component.childApps) {
18
+ await Promise.all(component.childApps.map((request) => preloadManager.preload(request).catch(() => {
19
+ // actual error will be logged internally
20
+ })));
21
+ }
22
+ }));
23
+ };
24
+ const pagePreloadProviders = [
25
+ core.provide({
26
+ provide: tokensRouter.LINK_PREFETCH_HANDLER_TOKEN,
27
+ useFactory: (deps) => {
28
+ return function prefetchChildApps(route) {
29
+ return pagePreload(deps, route);
30
+ };
31
+ },
32
+ multi: true,
33
+ deps: {
34
+ pageService: tokensRouter.PAGE_SERVICE_TOKEN,
35
+ preloadManager: tokensChildApp.CHILD_APP_PRELOAD_MANAGER_TOKEN,
36
+ },
37
+ }),
38
+ core.provide({
39
+ provide: core.commandLineListTokens.resolvePageDeps,
40
+ useFactory: (deps) => {
41
+ return function preloadChildApps() {
42
+ return pagePreload(deps);
43
+ };
44
+ },
45
+ multi: true,
46
+ deps: {
47
+ pageService: tokensRouter.PAGE_SERVICE_TOKEN,
48
+ preloadManager: tokensChildApp.CHILD_APP_PRELOAD_MANAGER_TOKEN,
49
+ },
50
+ }),
51
+ ];
52
+
53
+ exports.pagePreloadProviders = pagePreloadProviders;
@@ -3,8 +3,6 @@ import { provide, commandLineListTokens, COMMAND_LINE_RUNNER_TOKEN } from '@tram
3
3
  import { CHILD_APP_RESOLUTION_CONFIG_MANAGER_TOKEN, CHILD_APP_RESOLUTION_CONFIGS_TOKEN, CHILD_APP_RESOLVE_CONFIG_TOKEN, CHILD_APP_RESOLVE_BASE_URL_TOKEN, CHILD_APP_SINGLETON_DI_MANAGER_TOKEN, CHILD_APP_LOADER_TOKEN, CHILD_APP_DI_MANAGER_TOKEN, CHILD_APP_COMMAND_LINE_RUNNER_TOKEN, CHILD_APP_PRELOAD_MANAGER_TOKEN, CHILD_APP_RENDER_MANAGER_TOKEN } from '@tramvai/tokens-child-app';
4
4
  import { COMBINE_REDUCERS, LOGGER_TOKEN, ENV_MANAGER_TOKEN, REGISTER_CLEAR_CACHE_TOKEN, CLEAR_CACHE_TOKEN, ENV_USED_TOKEN } from '@tramvai/tokens-common';
5
5
  import { EXTEND_RENDER } from '@tramvai/tokens-render';
6
- import { PAGE_SERVICE_TOKEN } from '@tramvai/tokens-router';
7
- import { resolveLazyComponent } from '@tramvai/react';
8
6
  import { SingletonDiManager } from './singletonDi.browser.js';
9
7
  import { DiManager } from './di.browser.js';
10
8
  import { CommandLineRunner } from './command.browser.js';
@@ -12,8 +10,10 @@ import { ChildAppStore } from './store.browser.js';
12
10
  import { extendRender } from './render.browser.js';
13
11
  import { initModuleFederation } from './webpack/moduleFederation.browser.js';
14
12
  import { ChildAppResolutionConfigManager } from './resolutionConfigManager.browser.js';
13
+ import { pagePreloadProviders } from './pagePreload.browser.js';
15
14
 
16
15
  const sharedProviders = [
16
+ ...pagePreloadProviders,
17
17
  provide({
18
18
  provide: COMBINE_REDUCERS,
19
19
  multi: true,
@@ -136,29 +136,6 @@ const sharedProviders = [
136
136
  diManager: CHILD_APP_DI_MANAGER_TOKEN,
137
137
  },
138
138
  }),
139
- provide({
140
- provide: commandLineListTokens.resolvePageDeps,
141
- useFactory: ({ pageService, preloadManager }) => {
142
- return async function preloadChildAppByComponent() {
143
- var _a, _b, _c, _d, _e, _f;
144
- const [layoutComponent, nestedLayoutComponent, pageComponent] = await Promise.all([
145
- resolveLazyComponent(pageService.resolveComponentFromConfig('layout')),
146
- resolveLazyComponent(pageService.resolveComponentFromConfig('nestedLayout')),
147
- resolveLazyComponent(pageService.resolveComponentFromConfig('page')),
148
- ]);
149
- await Promise.all([
150
- ...((_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 : []),
151
- ...((_d = (_c = nestedLayoutComponent === null || nestedLayoutComponent === void 0 ? void 0 : nestedLayoutComponent.childApps) === null || _c === void 0 ? void 0 : _c.map((request) => preloadManager.preload(request))) !== null && _d !== void 0 ? _d : []),
152
- ...((_f = (_e = pageComponent === null || pageComponent === void 0 ? void 0 : pageComponent.childApps) === null || _e === void 0 ? void 0 : _e.map((request) => preloadManager.preload(request))) !== null && _f !== void 0 ? _f : []),
153
- ]);
154
- };
155
- },
156
- multi: true,
157
- deps: {
158
- pageService: PAGE_SERVICE_TOKEN,
159
- preloadManager: CHILD_APP_PRELOAD_MANAGER_TOKEN,
160
- },
161
- }),
162
139
  provide({
163
140
  provide: commandLineListTokens.generatePage,
164
141
  multi: true,
@@ -3,8 +3,6 @@ import { provide, commandLineListTokens, COMMAND_LINE_RUNNER_TOKEN } from '@tram
3
3
  import { CHILD_APP_RESOLUTION_CONFIG_MANAGER_TOKEN, CHILD_APP_RESOLUTION_CONFIGS_TOKEN, CHILD_APP_RESOLVE_CONFIG_TOKEN, CHILD_APP_RESOLVE_BASE_URL_TOKEN, CHILD_APP_SINGLETON_DI_MANAGER_TOKEN, CHILD_APP_LOADER_TOKEN, CHILD_APP_DI_MANAGER_TOKEN, CHILD_APP_COMMAND_LINE_RUNNER_TOKEN, CHILD_APP_PRELOAD_MANAGER_TOKEN, CHILD_APP_RENDER_MANAGER_TOKEN } from '@tramvai/tokens-child-app';
4
4
  import { COMBINE_REDUCERS, LOGGER_TOKEN, ENV_MANAGER_TOKEN, REGISTER_CLEAR_CACHE_TOKEN, CLEAR_CACHE_TOKEN, ENV_USED_TOKEN } from '@tramvai/tokens-common';
5
5
  import { EXTEND_RENDER } from '@tramvai/tokens-render';
6
- import { PAGE_SERVICE_TOKEN } from '@tramvai/tokens-router';
7
- import { resolveLazyComponent } from '@tramvai/react';
8
6
  import { SingletonDiManager } from './singletonDi.es.js';
9
7
  import { DiManager } from './di.es.js';
10
8
  import { CommandLineRunner } from './command.es.js';
@@ -12,8 +10,10 @@ import { ChildAppStore } from './store.es.js';
12
10
  import { extendRender } from './render.es.js';
13
11
  import { initModuleFederation } from './webpack/moduleFederation.es.js';
14
12
  import { ChildAppResolutionConfigManager } from './resolutionConfigManager.es.js';
13
+ import { pagePreloadProviders } from './pagePreload.es.js';
15
14
 
16
15
  const sharedProviders = [
16
+ ...pagePreloadProviders,
17
17
  provide({
18
18
  provide: COMBINE_REDUCERS,
19
19
  multi: true,
@@ -136,29 +136,6 @@ const sharedProviders = [
136
136
  diManager: CHILD_APP_DI_MANAGER_TOKEN,
137
137
  },
138
138
  }),
139
- provide({
140
- provide: commandLineListTokens.resolvePageDeps,
141
- useFactory: ({ pageService, preloadManager }) => {
142
- return async function preloadChildAppByComponent() {
143
- var _a, _b, _c, _d, _e, _f;
144
- const [layoutComponent, nestedLayoutComponent, pageComponent] = await Promise.all([
145
- resolveLazyComponent(pageService.resolveComponentFromConfig('layout')),
146
- resolveLazyComponent(pageService.resolveComponentFromConfig('nestedLayout')),
147
- resolveLazyComponent(pageService.resolveComponentFromConfig('page')),
148
- ]);
149
- await Promise.all([
150
- ...((_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 : []),
151
- ...((_d = (_c = nestedLayoutComponent === null || nestedLayoutComponent === void 0 ? void 0 : nestedLayoutComponent.childApps) === null || _c === void 0 ? void 0 : _c.map((request) => preloadManager.preload(request))) !== null && _d !== void 0 ? _d : []),
152
- ...((_f = (_e = pageComponent === null || pageComponent === void 0 ? void 0 : pageComponent.childApps) === null || _e === void 0 ? void 0 : _e.map((request) => preloadManager.preload(request))) !== null && _f !== void 0 ? _f : []),
153
- ]);
154
- };
155
- },
156
- multi: true,
157
- deps: {
158
- pageService: PAGE_SERVICE_TOKEN,
159
- preloadManager: CHILD_APP_PRELOAD_MANAGER_TOKEN,
160
- },
161
- }),
162
139
  provide({
163
140
  provide: commandLineListTokens.generatePage,
164
141
  multi: true,
@@ -7,8 +7,6 @@ var core = require('@tramvai/core');
7
7
  var tokensChildApp = require('@tramvai/tokens-child-app');
8
8
  var tokensCommon = require('@tramvai/tokens-common');
9
9
  var tokensRender = require('@tramvai/tokens-render');
10
- var tokensRouter = require('@tramvai/tokens-router');
11
- var react = require('@tramvai/react');
12
10
  var singletonDi = require('./singletonDi.js');
13
11
  var di = require('./di.js');
14
12
  var command = require('./command.js');
@@ -16,8 +14,10 @@ var store = require('./store.js');
16
14
  var render = require('./render.js');
17
15
  var moduleFederation = require('./webpack/moduleFederation.js');
18
16
  var resolutionConfigManager = require('./resolutionConfigManager.js');
17
+ var pagePreload = require('./pagePreload.js');
19
18
 
20
19
  const sharedProviders = [
20
+ ...pagePreload.pagePreloadProviders,
21
21
  core.provide({
22
22
  provide: tokensCommon.COMBINE_REDUCERS,
23
23
  multi: true,
@@ -140,29 +140,6 @@ const sharedProviders = [
140
140
  diManager: tokensChildApp.CHILD_APP_DI_MANAGER_TOKEN,
141
141
  },
142
142
  }),
143
- core.provide({
144
- provide: core.commandLineListTokens.resolvePageDeps,
145
- useFactory: ({ pageService, preloadManager }) => {
146
- return async function preloadChildAppByComponent() {
147
- var _a, _b, _c, _d, _e, _f;
148
- const [layoutComponent, nestedLayoutComponent, pageComponent] = await Promise.all([
149
- react.resolveLazyComponent(pageService.resolveComponentFromConfig('layout')),
150
- react.resolveLazyComponent(pageService.resolveComponentFromConfig('nestedLayout')),
151
- react.resolveLazyComponent(pageService.resolveComponentFromConfig('page')),
152
- ]);
153
- await Promise.all([
154
- ...((_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 : []),
155
- ...((_d = (_c = nestedLayoutComponent === null || nestedLayoutComponent === void 0 ? void 0 : nestedLayoutComponent.childApps) === null || _c === void 0 ? void 0 : _c.map((request) => preloadManager.preload(request))) !== null && _d !== void 0 ? _d : []),
156
- ...((_f = (_e = pageComponent === null || pageComponent === void 0 ? void 0 : pageComponent.childApps) === null || _e === void 0 ? void 0 : _e.map((request) => preloadManager.preload(request))) !== null && _f !== void 0 ? _f : []),
157
- ]);
158
- };
159
- },
160
- multi: true,
161
- deps: {
162
- pageService: tokensRouter.PAGE_SERVICE_TOKEN,
163
- preloadManager: tokensChildApp.CHILD_APP_PRELOAD_MANAGER_TOKEN,
164
- },
165
- }),
166
143
  core.provide({
167
144
  provide: core.commandLineListTokens.generatePage,
168
145
  multi: true,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tramvai/module-child-app",
3
- "version": "2.109.1",
3
+ "version": "2.110.0",
4
4
  "description": "Module for child apps",
5
5
  "browser": {
6
6
  "./lib/server.js": "./lib/browser.js",
@@ -31,20 +31,21 @@
31
31
  "@tinkoff/module-loader-client": "0.4.8",
32
32
  "@tinkoff/module-loader-server": "0.5.12",
33
33
  "@tinkoff/url": "0.8.6",
34
- "@tramvai/child-app-core": "2.109.1",
34
+ "@tramvai/child-app-core": "2.110.0",
35
35
  "@tramvai/safe-strings": "0.5.9",
36
- "@tramvai/tokens-child-app": "2.109.1"
36
+ "@tramvai/tokens-child-app": "2.110.0"
37
37
  },
38
38
  "devDependencies": {},
39
39
  "peerDependencies": {
40
40
  "@tinkoff/dippy": "0.8.15",
41
+ "@tinkoff/router": "0.2.16",
41
42
  "@tinkoff/utils": "^2.1.2",
42
- "@tramvai/core": "2.109.1",
43
- "@tramvai/state": "2.109.1",
44
- "@tramvai/react": "2.109.1",
45
- "@tramvai/tokens-common": "2.109.1",
46
- "@tramvai/tokens-render": "2.109.1",
47
- "@tramvai/tokens-router": "2.109.1",
43
+ "@tramvai/core": "2.110.0",
44
+ "@tramvai/state": "2.110.0",
45
+ "@tramvai/react": "2.110.0",
46
+ "@tramvai/tokens-common": "2.110.0",
47
+ "@tramvai/tokens-render": "2.110.0",
48
+ "@tramvai/tokens-router": "2.110.0",
48
49
  "react": ">=16.14.0",
49
50
  "react-dom": ">=16.14.0",
50
51
  "object-assign": "^4.1.1",