@tramvai/module-render 6.79.24 → 6.80.6
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/lib/browser.js +18 -1
- package/lib/client/index.browser.js +17 -5
- package/lib/client/index.d.ts +3 -1
- package/lib/client/renderer.browser.js +4 -4
- package/lib/client/types.d.ts +2 -0
- package/package.json +22 -23
package/lib/browser.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { __decorate } from 'tslib';
|
|
2
|
-
import { Module, provide, commandLineListTokens, DI_TOKEN, optional } from '@tramvai/core';
|
|
2
|
+
import { Module, provide, commandLineListTokens, TRAMVAI_HOOKS_TOKEN, DI_TOKEN, optional } from '@tramvai/core';
|
|
3
3
|
import { STORE_TOKEN, LOGGER_TOKEN, CONTEXT_TOKEN } from '@tramvai/tokens-common';
|
|
4
4
|
import { RESOURCES_REGISTRY, CUSTOM_RENDER, EXTEND_RENDER, RENDERER_CALLBACK, USE_REACT_STRICT_MODE, REACT_SERVER_RENDER_MODE, DEFAULT_ERROR_BOUNDARY_COMPONENT, RENDER_MODE } from '@tramvai/tokens-render';
|
|
5
5
|
export * from '@tramvai/tokens-render';
|
|
6
6
|
import { beforeResolveHooksToken, PageErrorStore, setPageErrorEvent } from '@tramvai/module-router';
|
|
7
7
|
export { PageErrorStore, setPageErrorEvent } from '@tramvai/module-router';
|
|
8
|
+
import { ERROR_BOUNDARY_TOKEN } from '@tramvai/react';
|
|
8
9
|
import { rendering } from './client/index.browser.js';
|
|
9
10
|
import { LayoutModule } from './shared/LayoutModule.browser.js';
|
|
10
11
|
import { providers } from './shared/providers.browser.js';
|
|
@@ -72,6 +73,7 @@ RenderModule = RenderModule_1 = __decorate([
|
|
|
72
73
|
};
|
|
73
74
|
},
|
|
74
75
|
deps: {
|
|
76
|
+
hooks: TRAMVAI_HOOKS_TOKEN,
|
|
75
77
|
logger: LOGGER_TOKEN,
|
|
76
78
|
customRender: { token: CUSTOM_RENDER, optional: true },
|
|
77
79
|
extendRender: { token: EXTEND_RENDER, optional: true },
|
|
@@ -84,6 +86,21 @@ RenderModule = RenderModule_1 = __decorate([
|
|
|
84
86
|
},
|
|
85
87
|
multi: true,
|
|
86
88
|
}),
|
|
89
|
+
provide({
|
|
90
|
+
provide: ERROR_BOUNDARY_TOKEN,
|
|
91
|
+
useFactory: ({ hooks }) => {
|
|
92
|
+
return (error, errorInfo) => {
|
|
93
|
+
hooks['react:error'].call({
|
|
94
|
+
event: 'page-error-boundary',
|
|
95
|
+
error,
|
|
96
|
+
errorInfo,
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
},
|
|
100
|
+
deps: {
|
|
101
|
+
hooks: TRAMVAI_HOOKS_TOKEN,
|
|
102
|
+
},
|
|
103
|
+
}),
|
|
87
104
|
provide({
|
|
88
105
|
provide: RENDERER_CALLBACK,
|
|
89
106
|
useFactory: ({ consumerContext }) => () => {
|
|
@@ -2,7 +2,7 @@ import { createElement } from 'react';
|
|
|
2
2
|
import { renderer } from './renderer.browser.js';
|
|
3
3
|
import RootClientComponentWithBoundary, { createRootElement } from './RootClientComponent.browser.js';
|
|
4
4
|
|
|
5
|
-
function rendering({ logger, consumerContext, customRender, extendRender, di, useStrictMode, rendererCallback, renderMode, defaultErrorBoundary, }) {
|
|
5
|
+
function rendering({ logger, consumerContext, customRender, extendRender, di, useStrictMode, rendererCallback, renderMode, defaultErrorBoundary, hooks, }) {
|
|
6
6
|
const log = logger('module-render');
|
|
7
7
|
return new Promise((resolve, reject) => {
|
|
8
8
|
if (customRender) {
|
|
@@ -32,15 +32,27 @@ function rendering({ logger, consumerContext, customRender, extendRender, di, us
|
|
|
32
32
|
log.debug('App rendering');
|
|
33
33
|
document.querySelector('html').classList.remove('no-js');
|
|
34
34
|
executeRendererCallbacks();
|
|
35
|
+
hooks['react:render'].call({});
|
|
35
36
|
resolve();
|
|
36
37
|
};
|
|
37
|
-
const params = {
|
|
38
|
+
const params = {
|
|
39
|
+
element: renderResult,
|
|
40
|
+
container,
|
|
41
|
+
callback,
|
|
42
|
+
log,
|
|
43
|
+
renderMode,
|
|
44
|
+
hooks,
|
|
45
|
+
};
|
|
38
46
|
try {
|
|
39
47
|
renderer(params);
|
|
40
48
|
}
|
|
41
|
-
catch (
|
|
42
|
-
executeRendererCallbacks(
|
|
43
|
-
|
|
49
|
+
catch (error) {
|
|
50
|
+
executeRendererCallbacks(error);
|
|
51
|
+
hooks['react:error'].call({
|
|
52
|
+
event: 'hydrate:failed',
|
|
53
|
+
error,
|
|
54
|
+
});
|
|
55
|
+
reject(error);
|
|
44
56
|
}
|
|
45
57
|
});
|
|
46
58
|
}
|
package/lib/client/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { EXTEND_RENDER, REACT_SERVER_RENDER_MODE, RENDERER_CALLBACK, USE_REACT_STRICT_MODE, DEFAULT_ERROR_BOUNDARY_COMPONENT } from '@tramvai/tokens-render';
|
|
2
2
|
import type { ExtractDependencyType } from '@tinkoff/dippy';
|
|
3
|
-
|
|
3
|
+
import { TRAMVAI_HOOKS_TOKEN } from '@tramvai/core';
|
|
4
|
+
export declare function rendering({ logger, consumerContext, customRender, extendRender, di, useStrictMode, rendererCallback, renderMode, defaultErrorBoundary, hooks, }: {
|
|
4
5
|
logger: any;
|
|
5
6
|
consumerContext: any;
|
|
6
7
|
extendRender?: ExtractDependencyType<typeof EXTEND_RENDER>;
|
|
@@ -10,5 +11,6 @@ export declare function rendering({ logger, consumerContext, customRender, exten
|
|
|
10
11
|
rendererCallback?: ExtractDependencyType<typeof RENDERER_CALLBACK>;
|
|
11
12
|
renderMode?: ExtractDependencyType<typeof REACT_SERVER_RENDER_MODE>;
|
|
12
13
|
defaultErrorBoundary?: ExtractDependencyType<typeof DEFAULT_ERROR_BOUNDARY_COMPONENT>;
|
|
14
|
+
hooks: ExtractDependencyType<typeof TRAMVAI_HOOKS_TOKEN>;
|
|
13
15
|
}): Promise<void>;
|
|
14
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -18,7 +18,7 @@ const ExecuteRenderCallback = ({ children, callback, }) => {
|
|
|
18
18
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
19
19
|
return children;
|
|
20
20
|
};
|
|
21
|
-
const renderer = ({ element, container, callback,
|
|
21
|
+
const renderer = ({ hooks, element, container, callback, renderMode }) => {
|
|
22
22
|
// in case of react 19 we should always use hydrateRoot
|
|
23
23
|
if (process.env.__TRAMVAI_CONCURRENT_FEATURES && typeof hydrateRoot === 'function') {
|
|
24
24
|
const wrappedElement = createElement(ExecuteRenderCallback, { callback }, element);
|
|
@@ -29,7 +29,7 @@ const renderer = ({ element, container, callback, log, renderMode }) => {
|
|
|
29
29
|
}
|
|
30
30
|
const [{ error, errorInfo }, ...otherErrors] = Array.from(allErrors.values());
|
|
31
31
|
allErrors = new Map();
|
|
32
|
-
|
|
32
|
+
hooks['react:error'].call({
|
|
33
33
|
event: 'hydrate:recover-after-error',
|
|
34
34
|
error,
|
|
35
35
|
errorInfo,
|
|
@@ -39,7 +39,7 @@ const renderer = ({ element, container, callback, log, renderMode }) => {
|
|
|
39
39
|
const hydrateRootFn = () => startTransition(() => {
|
|
40
40
|
hydrateRoot(container(), wrappedElement, {
|
|
41
41
|
onUncaughtError: (error, errorInfo) => {
|
|
42
|
-
|
|
42
|
+
hooks['react:error'].call({
|
|
43
43
|
event: 'hydrate:on-uncaught-error',
|
|
44
44
|
error,
|
|
45
45
|
errorInfo: {
|
|
@@ -48,7 +48,7 @@ const renderer = ({ element, container, callback, log, renderMode }) => {
|
|
|
48
48
|
});
|
|
49
49
|
},
|
|
50
50
|
onCaughtError: (error, errorInfo) => {
|
|
51
|
-
|
|
51
|
+
hooks['react:error'].call({
|
|
52
52
|
event: 'hydrate:on-caught-error',
|
|
53
53
|
error,
|
|
54
54
|
errorInfo: {
|
package/lib/client/types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ExtractDependencyType } from '@tinkoff/dippy';
|
|
2
|
+
import { TRAMVAI_HOOKS_TOKEN } from '@tramvai/core';
|
|
2
3
|
import type { REACT_SERVER_RENDER_MODE } from '@tramvai/tokens-render';
|
|
3
4
|
type Renderer = (params: {
|
|
4
5
|
element: any;
|
|
@@ -6,6 +7,7 @@ type Renderer = (params: {
|
|
|
6
7
|
callback: () => void;
|
|
7
8
|
log: any;
|
|
8
9
|
renderMode?: ExtractDependencyType<typeof REACT_SERVER_RENDER_MODE>;
|
|
10
|
+
hooks: ExtractDependencyType<typeof TRAMVAI_HOOKS_TOKEN>;
|
|
9
11
|
}) => any;
|
|
10
12
|
export { Renderer };
|
|
11
13
|
//# sourceMappingURL=types.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tramvai/module-render",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.80.6",
|
|
4
4
|
"description": "",
|
|
5
5
|
"browser": "lib/browser.js",
|
|
6
6
|
"main": "lib/server.js",
|
|
@@ -22,34 +22,33 @@
|
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@loadable/server": "^5.15.0",
|
|
25
|
-
"@tinkoff/errors": "0.7.
|
|
26
|
-
"@tinkoff/htmlpagebuilder": "0.9.
|
|
27
|
-
"@tinkoff/layout-factory": "0.7.
|
|
25
|
+
"@tinkoff/errors": "0.7.4",
|
|
26
|
+
"@tinkoff/htmlpagebuilder": "0.9.3",
|
|
27
|
+
"@tinkoff/layout-factory": "0.7.4",
|
|
28
28
|
"@tinkoff/request-core": "^0.10.0",
|
|
29
29
|
"@tinkoff/request-plugin-protocol-http": "0.16.0",
|
|
30
|
-
"@tinkoff/url": "0.12.
|
|
31
|
-
"@
|
|
32
|
-
"@tramvai/
|
|
33
|
-
"@tramvai/module-
|
|
34
|
-
"@tramvai/
|
|
35
|
-
"@tramvai/
|
|
36
|
-
"@tramvai/
|
|
37
|
-
"@tramvai/tokens-render": "6.79.24",
|
|
30
|
+
"@tinkoff/url": "0.12.4",
|
|
31
|
+
"@tramvai/experiments": "6.80.6",
|
|
32
|
+
"@tramvai/module-client-hints": "6.80.6",
|
|
33
|
+
"@tramvai/module-router": "6.80.6",
|
|
34
|
+
"@tramvai/react": "6.80.6",
|
|
35
|
+
"@tramvai/safe-strings": "0.9.3",
|
|
36
|
+
"@tramvai/tokens-render": "6.80.6",
|
|
38
37
|
"@types/loadable__server": "^5.12.6",
|
|
39
|
-
"undici": "^7.
|
|
38
|
+
"undici": "^7.24.4"
|
|
40
39
|
},
|
|
41
40
|
"peerDependencies": {
|
|
42
|
-
"@tinkoff/dippy": "0.
|
|
43
|
-
"@tinkoff/react-hooks": "0.5.
|
|
41
|
+
"@tinkoff/dippy": "^1.0.0",
|
|
42
|
+
"@tinkoff/react-hooks": "0.5.4",
|
|
44
43
|
"@tinkoff/utils": "^2.1.2",
|
|
45
|
-
"@tramvai/cli": "6.
|
|
46
|
-
"@tramvai/core": "6.
|
|
47
|
-
"@tramvai/module-common": "6.
|
|
48
|
-
"@tramvai/state": "6.
|
|
49
|
-
"@tramvai/test-helpers": "6.
|
|
50
|
-
"@tramvai/tokens-common": "6.
|
|
51
|
-
"@tramvai/tokens-router": "6.
|
|
52
|
-
"@tramvai/tokens-server-private": "6.
|
|
44
|
+
"@tramvai/cli": "6.80.6",
|
|
45
|
+
"@tramvai/core": "6.80.6",
|
|
46
|
+
"@tramvai/module-common": "6.80.6",
|
|
47
|
+
"@tramvai/state": "6.80.6",
|
|
48
|
+
"@tramvai/test-helpers": "6.80.6",
|
|
49
|
+
"@tramvai/tokens-common": "6.80.6",
|
|
50
|
+
"@tramvai/tokens-router": "6.80.6",
|
|
51
|
+
"@tramvai/tokens-server-private": "6.80.6",
|
|
53
52
|
"express": "^4.21.2",
|
|
54
53
|
"react": ">=16.14.0",
|
|
55
54
|
"react-dom": ">=16.14.0",
|