@tramvai/module-child-app 7.11.0 → 7.16.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.
|
@@ -175,7 +175,16 @@ class PreloadManager {
|
|
|
175
175
|
await this.run('customer', config);
|
|
176
176
|
})());
|
|
177
177
|
});
|
|
178
|
-
await Promise.allSettled(promises);
|
|
178
|
+
const childAppInitResult = await Promise.allSettled(promises);
|
|
179
|
+
const errors = childAppInitResult
|
|
180
|
+
.map((promise) => (promise.status === 'rejected' ? promise.reason : undefined))
|
|
181
|
+
.filter(Boolean);
|
|
182
|
+
if (errors.length === 1) {
|
|
183
|
+
throw errors[0];
|
|
184
|
+
}
|
|
185
|
+
else if (errors.length > 1) {
|
|
186
|
+
throw new AggregateError(errors);
|
|
187
|
+
}
|
|
179
188
|
}
|
|
180
189
|
pageRender() {
|
|
181
190
|
this.pageHasRendered = true;
|
|
@@ -72,10 +72,16 @@ const browserProviders = [
|
|
|
72
72
|
isSpaNavigation = true;
|
|
73
73
|
return preloader.runPreloaded().catch((error) => {
|
|
74
74
|
const log = logger('child-app:run-preloaded');
|
|
75
|
-
|
|
75
|
+
const errorForLog = {
|
|
76
76
|
event: 'client-failed',
|
|
77
77
|
error,
|
|
78
|
-
}
|
|
78
|
+
};
|
|
79
|
+
// TODO: TCORE-5465
|
|
80
|
+
if (error instanceof AggregateError) {
|
|
81
|
+
[errorForLog.error] = error.errors;
|
|
82
|
+
errorForLog.otherErrors = error.errors.slice(1);
|
|
83
|
+
}
|
|
84
|
+
log.error(errorForLog);
|
|
79
85
|
});
|
|
80
86
|
};
|
|
81
87
|
},
|
|
@@ -128,10 +128,16 @@ const serverProviders = [
|
|
|
128
128
|
return function childAppRunPreloaded() {
|
|
129
129
|
return preloader.runPreloaded().catch((error) => {
|
|
130
130
|
const log = logger('child-app:run-preloaded');
|
|
131
|
-
|
|
131
|
+
const errorForLog = {
|
|
132
132
|
event: 'server-failed',
|
|
133
133
|
error,
|
|
134
|
-
}
|
|
134
|
+
};
|
|
135
|
+
// TODO: TCORE-5465
|
|
136
|
+
if (error instanceof AggregateError) {
|
|
137
|
+
[errorForLog.error] = error.errors;
|
|
138
|
+
errorForLog.otherErrors = error.errors.slice(1);
|
|
139
|
+
}
|
|
140
|
+
log.error(errorForLog);
|
|
135
141
|
});
|
|
136
142
|
};
|
|
137
143
|
},
|
package/lib/server/providers.js
CHANGED
|
@@ -132,10 +132,16 @@ const serverProviders = [
|
|
|
132
132
|
return function childAppRunPreloaded() {
|
|
133
133
|
return preloader.runPreloaded().catch((error) => {
|
|
134
134
|
const log = logger('child-app:run-preloaded');
|
|
135
|
-
|
|
135
|
+
const errorForLog = {
|
|
136
136
|
event: 'server-failed',
|
|
137
137
|
error,
|
|
138
|
-
}
|
|
138
|
+
};
|
|
139
|
+
// TODO: TCORE-5465
|
|
140
|
+
if (error instanceof AggregateError) {
|
|
141
|
+
[errorForLog.error] = error.errors;
|
|
142
|
+
errorForLog.otherErrors = error.errors.slice(1);
|
|
143
|
+
}
|
|
144
|
+
log.error(errorForLog);
|
|
139
145
|
});
|
|
140
146
|
};
|
|
141
147
|
},
|
|
@@ -88,20 +88,34 @@ async () => {
|
|
|
88
88
|
preloadedConfigs.forEach((config) => {
|
|
89
89
|
const stats = 'getStats' in loader ? loader.getStats(config) : undefined;
|
|
90
90
|
const di = diManager.getChildDi(config);
|
|
91
|
-
const loadableAssets = di?.get(CHILD_APP_INTERNAL_CHUNK_EXTRACTOR)?.getMainAssets();
|
|
92
91
|
addChunk(config.client.entry, true);
|
|
93
92
|
if (config.css) {
|
|
94
93
|
addChunk(config.css.entry);
|
|
95
94
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
95
|
+
// chunkExtractor.getMainAssets() can throw an error if loadable stats is not available
|
|
96
|
+
try {
|
|
97
|
+
const loadableAssets = di?.get(CHILD_APP_INTERNAL_CHUNK_EXTRACTOR)?.getMainAssets();
|
|
98
|
+
loadableAssets
|
|
99
|
+
?.map((asset) => resolve(config.client.baseUrl, asset.filename))
|
|
100
|
+
.filter((file) => {
|
|
101
|
+
// filter entry js and css chunks
|
|
102
|
+
return config.client.entry !== file && config.css?.entry !== file;
|
|
103
|
+
})
|
|
104
|
+
.forEach((file) => {
|
|
105
|
+
addChunk(file);
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
log[config.client.statsLoadable ? 'warn' : 'info']({
|
|
110
|
+
event: 'loadable-assets-failed',
|
|
111
|
+
error,
|
|
112
|
+
childApp: {
|
|
113
|
+
name: config.name,
|
|
114
|
+
version: config.version,
|
|
115
|
+
tag: config.tag,
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
}
|
|
105
119
|
if (stats && stats.federatedModules) {
|
|
106
120
|
for (const federatedModule of stats.federatedModules) {
|
|
107
121
|
// entries are duplicated in the `exposes` field of federated stats for some reason
|
|
@@ -96,20 +96,34 @@ async () => {
|
|
|
96
96
|
preloadedConfigs.forEach((config) => {
|
|
97
97
|
const stats = 'getStats' in loader ? loader.getStats(config) : undefined;
|
|
98
98
|
const di = diManager.getChildDi(config);
|
|
99
|
-
const loadableAssets = di?.get(tokensChildApp.CHILD_APP_INTERNAL_CHUNK_EXTRACTOR)?.getMainAssets();
|
|
100
99
|
addChunk(config.client.entry, true);
|
|
101
100
|
if (config.css) {
|
|
102
101
|
addChunk(config.css.entry);
|
|
103
102
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
.
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
103
|
+
// chunkExtractor.getMainAssets() can throw an error if loadable stats is not available
|
|
104
|
+
try {
|
|
105
|
+
const loadableAssets = di?.get(tokensChildApp.CHILD_APP_INTERNAL_CHUNK_EXTRACTOR)?.getMainAssets();
|
|
106
|
+
loadableAssets
|
|
107
|
+
?.map((asset) => url.resolve(config.client.baseUrl, asset.filename))
|
|
108
|
+
.filter((file) => {
|
|
109
|
+
// filter entry js and css chunks
|
|
110
|
+
return config.client.entry !== file && config.css?.entry !== file;
|
|
111
|
+
})
|
|
112
|
+
.forEach((file) => {
|
|
113
|
+
addChunk(file);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
log[config.client.statsLoadable ? 'warn' : 'info']({
|
|
118
|
+
event: 'loadable-assets-failed',
|
|
119
|
+
error,
|
|
120
|
+
childApp: {
|
|
121
|
+
name: config.name,
|
|
122
|
+
version: config.version,
|
|
123
|
+
tag: config.tag,
|
|
124
|
+
},
|
|
125
|
+
});
|
|
126
|
+
}
|
|
113
127
|
if (stats && stats.federatedModules) {
|
|
114
128
|
for (const federatedModule of stats.federatedModules) {
|
|
115
129
|
// entries are duplicated in the `exposes` field of federated stats for some reason
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tramvai/module-child-app",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.16.0",
|
|
4
4
|
"description": "Module for child apps",
|
|
5
5
|
"browser": {
|
|
6
6
|
"./lib/server.es.js": "./lib/browser.js",
|
|
@@ -35,22 +35,22 @@
|
|
|
35
35
|
"@tinkoff/module-loader-client": "0.9.1",
|
|
36
36
|
"@tinkoff/module-loader-server": "0.10.3",
|
|
37
37
|
"@tinkoff/url": "0.13.1",
|
|
38
|
-
"@tramvai/child-app-core": "7.
|
|
39
|
-
"@tramvai/module-common": "7.
|
|
40
|
-
"@tramvai/module-router": "7.
|
|
38
|
+
"@tramvai/child-app-core": "7.16.0",
|
|
39
|
+
"@tramvai/module-common": "7.16.0",
|
|
40
|
+
"@tramvai/module-router": "7.16.0",
|
|
41
41
|
"@tramvai/safe-strings": "0.10.1",
|
|
42
|
-
"@tramvai/tokens-child-app": "7.
|
|
42
|
+
"@tramvai/tokens-child-app": "7.16.0"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
|
-
"@tinkoff/dippy": "0.
|
|
46
|
-
"@tinkoff/router": "0.7.
|
|
45
|
+
"@tinkoff/dippy": "^1.0.0",
|
|
46
|
+
"@tinkoff/router": "0.7.55",
|
|
47
47
|
"@tinkoff/utils": "^2.1.2",
|
|
48
|
-
"@tramvai/core": "7.
|
|
49
|
-
"@tramvai/react": "7.
|
|
50
|
-
"@tramvai/state": "7.
|
|
51
|
-
"@tramvai/tokens-common": "7.
|
|
52
|
-
"@tramvai/tokens-render": "7.
|
|
53
|
-
"@tramvai/tokens-router": "7.
|
|
48
|
+
"@tramvai/core": "7.16.0",
|
|
49
|
+
"@tramvai/react": "7.16.0",
|
|
50
|
+
"@tramvai/state": "7.16.0",
|
|
51
|
+
"@tramvai/tokens-common": "7.16.0",
|
|
52
|
+
"@tramvai/tokens-render": "7.16.0",
|
|
53
|
+
"@tramvai/tokens-router": "7.16.0",
|
|
54
54
|
"object-assign": "^4.1.1",
|
|
55
55
|
"react": ">=16.14.0",
|
|
56
56
|
"react-dom": ">=16.14.0",
|