@tramvai/module-child-app 2.10.2 → 2.20.1
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 +4 -2
- package/lib/server.browser.js +4 -13
- package/lib/server.es.js +4 -13
- package/lib/server.js +4 -13
- package/lib/shared/providers.d.ts +5 -2
- package/package.json +14 -14
- package/lib/shared/utils/resolveComponent.d.ts +0 -6
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
|
-
|
|
263
|
+
import { PageComponent } from '@tramvai/react';
|
|
264
|
+
|
|
265
|
+
const PageCmp: PageComponent = () => {
|
|
264
266
|
return 'Page';
|
|
265
267
|
};
|
|
266
268
|
|
|
267
|
-
|
|
269
|
+
PageCmp.childApps = [{ name: '[name]' }];
|
|
268
270
|
```
|
|
269
271
|
|
|
270
272
|
### Debug child-app
|
package/lib/server.browser.js
CHANGED
|
@@ -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
|
-
|
|
565
|
-
|
|
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
|
-
|
|
503
|
-
|
|
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
|
-
|
|
512
|
-
|
|
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/
|
|
4
|
-
interface
|
|
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.
|
|
3
|
+
"version": "2.20.1",
|
|
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.
|
|
32
|
-
"@tinkoff/module-loader-client": "0.
|
|
33
|
-
"@tinkoff/module-loader-server": "0.
|
|
34
|
-
"@tramvai/child-app-core": "2.
|
|
35
|
-
"@tramvai/safe-strings": "0.
|
|
36
|
-
"@tramvai/tokens-child-app": "2.
|
|
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.1",
|
|
35
|
+
"@tramvai/safe-strings": "0.5.2",
|
|
36
|
+
"@tramvai/tokens-child-app": "2.20.1"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {},
|
|
39
39
|
"peerDependencies": {
|
|
40
|
-
"@tinkoff/dippy": "0.
|
|
40
|
+
"@tinkoff/dippy": "0.8.2",
|
|
41
41
|
"@tinkoff/utils": "^2.1.2",
|
|
42
|
-
"@tramvai/core": "2.
|
|
43
|
-
"@tramvai/state": "2.
|
|
44
|
-
"@tramvai/react": "2.
|
|
45
|
-
"@tramvai/tokens-common": "2.
|
|
46
|
-
"@tramvai/tokens-render": "2.
|
|
47
|
-
"@tramvai/tokens-router": "2.
|
|
42
|
+
"@tramvai/core": "2.20.1",
|
|
43
|
+
"@tramvai/state": "2.20.1",
|
|
44
|
+
"@tramvai/react": "2.20.1",
|
|
45
|
+
"@tramvai/tokens-common": "2.20.1",
|
|
46
|
+
"@tramvai/tokens-render": "2.20.1",
|
|
47
|
+
"@tramvai/tokens-router": "2.20.1",
|
|
48
48
|
"react": ">=16.14.0",
|
|
49
49
|
"react-dom": ">=16.14.0",
|
|
50
50
|
"object-assign": "^4.1.1",
|