@tramvai/module-child-app 2.63.0 → 2.65.9
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 +8 -0
- package/lib/server.browser.js +12 -1
- package/lib/server.es.js +12 -1
- package/lib/server.js +11 -0
- package/lib/shared/child/validate.d.ts +2 -0
- package/package.json +11 -11
package/README.md
CHANGED
|
@@ -421,6 +421,14 @@ You may specify a full config to debug to a specific child-app:
|
|
|
421
421
|
```
|
|
422
422
|
2. Run root-app with `CHILD_APP_DEBUG` environment variable with value of child-app names needed to debug
|
|
423
423
|
|
|
424
|
+
## Limitations
|
|
425
|
+
|
|
426
|
+
### Usage of envs
|
|
427
|
+
|
|
428
|
+
Child-app cannot control the environment variables and therefore should not use token `ENV_USED_TOKEN` at all. If you try to specify `ENV_USED_TOKEN` provider you will get error in development mode and in prod mode it will just be ignored.
|
|
429
|
+
|
|
430
|
+
Controlling of the envs content should be fully delegated to the root-app itself. Child-app can only use final values through `ENV_MANAGER_TOKEN` or any other options that passes data from root-app to child-app.
|
|
431
|
+
|
|
424
432
|
## Known issues
|
|
425
433
|
|
|
426
434
|
### This Suspense boundary received an update before it finished hydrating
|
package/lib/server.browser.js
CHANGED
|
@@ -3,7 +3,7 @@ import { provide, COMMAND_LINE_RUNNER_TOKEN, walkOfModules, getModuleParameters,
|
|
|
3
3
|
import { Container, ChildContainer, Scope, DI_TOKEN } from '@tinkoff/dippy';
|
|
4
4
|
import { commandLineListTokens, CHILD_APP_INTERNAL_ROOT_STATE_SUBSCRIPTION_TOKEN, CHILD_APP_INTERNAL_ACTION_TOKEN, CHILD_APP_INTERNAL_CONFIG_TOKEN, IS_CHILD_APP_DI_TOKEN, CHILD_APP_INTERNAL_ROOT_DI_BORROW_TOKEN, CHILD_APP_INTERNAL_ROOT_STATE_ALLOWED_STORE_TOKEN, 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, CHILD_APP_COMMON_INITIAL_STATE_TOKEN, CHILD_APP_INTERNAL_RENDER_TOKEN } from '@tramvai/tokens-child-app';
|
|
5
5
|
export * from '@tramvai/tokens-child-app';
|
|
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
|
|
6
|
+
import { CONTEXT_TOKEN, ACTION_PAGE_RUNNER_TOKEN, LOGGER_TOKEN, DISPATCHER_TOKEN, STORE_TOKEN, ENV_USED_TOKEN, DISPATCHER_CONTEXT_TOKEN, STORE_MIDDLEWARE, INITIAL_APP_STATE_TOKEN, COMBINE_REDUCERS, ENV_MANAGER_TOKEN, REGISTER_CLEAR_CACHE_TOKEN, CLEAR_CACHE_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
9
|
import { resolveLazyComponent, UniversalErrorBoundary, useDi } from '@tramvai/react';
|
|
@@ -130,6 +130,14 @@ const commonModuleStubs = [
|
|
|
130
130
|
};
|
|
131
131
|
});
|
|
132
132
|
|
|
133
|
+
const validateChildAppProvider = (provider) => {
|
|
134
|
+
if (provider.provide.name === ENV_USED_TOKEN.name) {
|
|
135
|
+
throw new Error(`child-app Cannot use 'ENV_USED_TOKEN' as envs should be controlled by the root-app.
|
|
136
|
+
Consider passing configs from the root-app to child-app explicitly and remove defining 'ENV_USED_TOKEN' in the child-app itself.
|
|
137
|
+
You can still use 'ENV_MANAGER_TOKEN' in child-app to get env values`);
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
|
|
133
141
|
class SingletonDiManager {
|
|
134
142
|
constructor({ logger, appDi, loader, }) {
|
|
135
143
|
this.cache = new Map();
|
|
@@ -191,6 +199,9 @@ class SingletonDiManager {
|
|
|
191
199
|
});
|
|
192
200
|
});
|
|
193
201
|
providers.forEach((provider) => {
|
|
202
|
+
if (process.env.NODE_ENV === 'development') {
|
|
203
|
+
validateChildAppProvider(provider);
|
|
204
|
+
}
|
|
194
205
|
di.register(provider);
|
|
195
206
|
});
|
|
196
207
|
di.register({
|
package/lib/server.es.js
CHANGED
|
@@ -3,7 +3,7 @@ import { provide, COMMAND_LINE_RUNNER_TOKEN, walkOfModules, getModuleParameters,
|
|
|
3
3
|
import { Container, ChildContainer, Scope, DI_TOKEN } from '@tinkoff/dippy';
|
|
4
4
|
import { commandLineListTokens, CHILD_APP_INTERNAL_ACTION_TOKEN, CHILD_APP_INTERNAL_CONFIG_TOKEN, IS_CHILD_APP_DI_TOKEN, CHILD_APP_INTERNAL_ROOT_DI_BORROW_TOKEN, CHILD_APP_INTERNAL_ROOT_STATE_ALLOWED_STORE_TOKEN, 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, CHILD_APP_INTERNAL_ROOT_STATE_SUBSCRIPTION_TOKEN, CHILD_APP_STATE_MANAGER_TOKEN, CHILD_APP_INTERNAL_RENDER_TOKEN } from '@tramvai/tokens-child-app';
|
|
5
5
|
export * from '@tramvai/tokens-child-app';
|
|
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,
|
|
6
|
+
import { ACTION_PAGE_RUNNER_TOKEN, LOGGER_TOKEN, DISPATCHER_TOKEN, STORE_TOKEN, CONTEXT_TOKEN, ENV_USED_TOKEN, DISPATCHER_CONTEXT_TOKEN, STORE_MIDDLEWARE, INITIAL_APP_STATE_TOKEN, COMBINE_REDUCERS, ENV_MANAGER_TOKEN, REGISTER_CLEAR_CACHE_TOKEN, CLEAR_CACHE_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
9
|
import { resolveLazyComponent, UniversalErrorBoundary, useDi } from '@tramvai/react';
|
|
@@ -68,6 +68,14 @@ const commonModuleStubs = [
|
|
|
68
68
|
};
|
|
69
69
|
});
|
|
70
70
|
|
|
71
|
+
const validateChildAppProvider = (provider) => {
|
|
72
|
+
if (provider.provide.name === ENV_USED_TOKEN.name) {
|
|
73
|
+
throw new Error(`child-app Cannot use 'ENV_USED_TOKEN' as envs should be controlled by the root-app.
|
|
74
|
+
Consider passing configs from the root-app to child-app explicitly and remove defining 'ENV_USED_TOKEN' in the child-app itself.
|
|
75
|
+
You can still use 'ENV_MANAGER_TOKEN' in child-app to get env values`);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
|
|
71
79
|
class SingletonDiManager {
|
|
72
80
|
constructor({ logger, appDi, loader, }) {
|
|
73
81
|
this.cache = new Map();
|
|
@@ -129,6 +137,9 @@ class SingletonDiManager {
|
|
|
129
137
|
});
|
|
130
138
|
});
|
|
131
139
|
providers.forEach((provider) => {
|
|
140
|
+
if (process.env.NODE_ENV === 'development') {
|
|
141
|
+
validateChildAppProvider(provider);
|
|
142
|
+
}
|
|
132
143
|
di.register(provider);
|
|
133
144
|
});
|
|
134
145
|
di.register({
|
package/lib/server.js
CHANGED
|
@@ -77,6 +77,14 @@ const commonModuleStubs = [
|
|
|
77
77
|
};
|
|
78
78
|
});
|
|
79
79
|
|
|
80
|
+
const validateChildAppProvider = (provider) => {
|
|
81
|
+
if (provider.provide.name === tokensCommon.ENV_USED_TOKEN.name) {
|
|
82
|
+
throw new Error(`child-app Cannot use 'ENV_USED_TOKEN' as envs should be controlled by the root-app.
|
|
83
|
+
Consider passing configs from the root-app to child-app explicitly and remove defining 'ENV_USED_TOKEN' in the child-app itself.
|
|
84
|
+
You can still use 'ENV_MANAGER_TOKEN' in child-app to get env values`);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
|
|
80
88
|
class SingletonDiManager {
|
|
81
89
|
constructor({ logger, appDi, loader, }) {
|
|
82
90
|
this.cache = new Map();
|
|
@@ -138,6 +146,9 @@ class SingletonDiManager {
|
|
|
138
146
|
});
|
|
139
147
|
});
|
|
140
148
|
providers.forEach((provider) => {
|
|
149
|
+
if (process.env.NODE_ENV === 'development') {
|
|
150
|
+
validateChildAppProvider(provider);
|
|
151
|
+
}
|
|
141
152
|
di.register(provider);
|
|
142
153
|
});
|
|
143
154
|
di.register({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tramvai/module-child-app",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.65.9",
|
|
4
4
|
"description": "Module for child apps",
|
|
5
5
|
"browser": {
|
|
6
6
|
"./lib/server.js": "./lib/browser.js",
|
|
@@ -31,21 +31,21 @@
|
|
|
31
31
|
"@tinkoff/env-validators": "0.1.4",
|
|
32
32
|
"@tinkoff/module-loader-client": "0.4.4",
|
|
33
33
|
"@tinkoff/module-loader-server": "0.5.6",
|
|
34
|
-
"@tramvai/child-app-core": "2.
|
|
35
|
-
"@tramvai/module-router": "2.
|
|
34
|
+
"@tramvai/child-app-core": "2.65.9",
|
|
35
|
+
"@tramvai/module-router": "2.65.9",
|
|
36
36
|
"@tramvai/safe-strings": "0.5.6",
|
|
37
|
-
"@tramvai/tokens-child-app": "2.
|
|
37
|
+
"@tramvai/tokens-child-app": "2.65.9"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {},
|
|
40
40
|
"peerDependencies": {
|
|
41
|
-
"@tinkoff/dippy": "0.8.
|
|
41
|
+
"@tinkoff/dippy": "0.8.12",
|
|
42
42
|
"@tinkoff/utils": "^2.1.2",
|
|
43
|
-
"@tramvai/core": "2.
|
|
44
|
-
"@tramvai/state": "2.
|
|
45
|
-
"@tramvai/react": "2.
|
|
46
|
-
"@tramvai/tokens-common": "2.
|
|
47
|
-
"@tramvai/tokens-render": "2.
|
|
48
|
-
"@tramvai/tokens-router": "2.
|
|
43
|
+
"@tramvai/core": "2.65.9",
|
|
44
|
+
"@tramvai/state": "2.65.9",
|
|
45
|
+
"@tramvai/react": "2.65.9",
|
|
46
|
+
"@tramvai/tokens-common": "2.65.9",
|
|
47
|
+
"@tramvai/tokens-render": "2.65.9",
|
|
48
|
+
"@tramvai/tokens-router": "2.65.9",
|
|
49
49
|
"react": ">=16.14.0",
|
|
50
50
|
"react-dom": ">=16.14.0",
|
|
51
51
|
"object-assign": "^4.1.1",
|