@tramvai/module-render 2.63.0 → 2.64.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.
- package/lib/browser.js +36 -34
- package/lib/server.es.js +36 -34
- package/lib/server.js +43 -41
- package/package.json +15 -15
package/lib/browser.js
CHANGED
|
@@ -9,11 +9,41 @@ import { useMemo, createElement, StrictMode } from 'react';
|
|
|
9
9
|
import { jsx } from 'react/jsx-runtime';
|
|
10
10
|
import { createEvent, createReducer, useStore, Provider } from '@tramvai/state';
|
|
11
11
|
import { useDi, ERROR_BOUNDARY_TOKEN, ERROR_BOUNDARY_FALLBACK_COMPONENT_TOKEN, UniversalErrorBoundary, DIContext } from '@tramvai/react';
|
|
12
|
-
import {
|
|
12
|
+
import { useUrl, usePageService } from '@tramvai/module-router';
|
|
13
13
|
import debounce from '@tinkoff/utils/function/debounce';
|
|
14
14
|
import { useIsomorphicLayoutEffect } from '@tinkoff/react-hooks';
|
|
15
15
|
import { composeLayoutOptions, createLayout } from '@tinkoff/layout-factory';
|
|
16
16
|
|
|
17
|
+
function serializeError(error) {
|
|
18
|
+
return {
|
|
19
|
+
...error,
|
|
20
|
+
message: error.message,
|
|
21
|
+
stack: error.stack,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function deserializeError(serializedError) {
|
|
25
|
+
const error = new Error(serializedError.message);
|
|
26
|
+
Object.assign(error, serializedError);
|
|
27
|
+
return error;
|
|
28
|
+
}
|
|
29
|
+
const setPageErrorEvent = createEvent('setPageError');
|
|
30
|
+
const initialState = null;
|
|
31
|
+
const PageErrorStore = createReducer('pageError', initialState).on(setPageErrorEvent, (state, error) => error && serializeError(error));
|
|
32
|
+
|
|
33
|
+
const PageErrorBoundary = (props) => {
|
|
34
|
+
const { children } = props;
|
|
35
|
+
const pageService = useDi(PAGE_SERVICE_TOKEN);
|
|
36
|
+
const url = useUrl();
|
|
37
|
+
const serializedError = useStore(PageErrorStore);
|
|
38
|
+
const error = useMemo(() => {
|
|
39
|
+
return serializedError && deserializeError(serializedError);
|
|
40
|
+
}, [serializedError]);
|
|
41
|
+
const errorHandlers = useDi({ token: ERROR_BOUNDARY_TOKEN, optional: true });
|
|
42
|
+
const fallbackFromDi = useDi({ token: ERROR_BOUNDARY_FALLBACK_COMPONENT_TOKEN, optional: true });
|
|
43
|
+
const fallback = pageService.resolveComponentFromConfig('errorBoundary');
|
|
44
|
+
return (jsx(UniversalErrorBoundary, { url: url, error: error, errorHandlers: errorHandlers, fallback: fallback, fallbackFromDi: fallbackFromDi, children: children }));
|
|
45
|
+
};
|
|
46
|
+
|
|
17
47
|
/**
|
|
18
48
|
* Result component structure:
|
|
19
49
|
*
|
|
@@ -21,7 +51,9 @@ import { composeLayoutOptions, createLayout } from '@tinkoff/layout-factory';
|
|
|
21
51
|
* <RootComponent>
|
|
22
52
|
* <LayoutComponent>
|
|
23
53
|
* <NestedLayoutComponent>
|
|
24
|
-
* <
|
|
54
|
+
* <ErrorBoundaryComponent>
|
|
55
|
+
* <PageComponent />
|
|
56
|
+
* </ErrorBoundaryComponent>
|
|
25
57
|
* </NestedLayoutComponent>
|
|
26
58
|
* </LayoutComponent>
|
|
27
59
|
* </RootComponent>
|
|
@@ -55,7 +87,7 @@ const PageRenderComponent = () => {
|
|
|
55
87
|
throw new Error(`Page component '${pageComponent}' not found`);
|
|
56
88
|
};
|
|
57
89
|
}
|
|
58
|
-
const page = useMemo(() => jsx(PageComponent, {}), [PageComponent]);
|
|
90
|
+
const page = useMemo(() => (jsx(PageErrorBoundary, { children: jsx(PageComponent, {}) })), [PageComponent]);
|
|
59
91
|
return page;
|
|
60
92
|
};
|
|
61
93
|
const Root = () => {
|
|
@@ -64,39 +96,9 @@ const Root = () => {
|
|
|
64
96
|
return jsx(LayoutRenderComponent, { children: nestedLayoutRenderComponent });
|
|
65
97
|
};
|
|
66
98
|
|
|
67
|
-
function serializeError(error) {
|
|
68
|
-
return {
|
|
69
|
-
...error,
|
|
70
|
-
message: error.message,
|
|
71
|
-
stack: error.stack,
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
function deserializeError(serializedError) {
|
|
75
|
-
const error = new Error(serializedError.message);
|
|
76
|
-
Object.assign(error, serializedError);
|
|
77
|
-
return error;
|
|
78
|
-
}
|
|
79
|
-
const setPageErrorEvent = createEvent('setPageError');
|
|
80
|
-
const initialState = null;
|
|
81
|
-
const PageErrorStore = createReducer('pageError', initialState).on(setPageErrorEvent, (state, error) => error && serializeError(error));
|
|
82
|
-
|
|
83
|
-
const PageErrorBoundary = (props) => {
|
|
84
|
-
const { children } = props;
|
|
85
|
-
const pageService = useDi(PAGE_SERVICE_TOKEN);
|
|
86
|
-
const url = useUrl();
|
|
87
|
-
const serializedError = useStore(PageErrorStore);
|
|
88
|
-
const error = useMemo(() => {
|
|
89
|
-
return serializedError && deserializeError(serializedError);
|
|
90
|
-
}, [serializedError]);
|
|
91
|
-
const errorHandlers = useDi({ token: ERROR_BOUNDARY_TOKEN, optional: true });
|
|
92
|
-
const fallbackFromDi = useDi({ token: ERROR_BOUNDARY_FALLBACK_COMPONENT_TOKEN, optional: true });
|
|
93
|
-
const fallback = pageService.resolveComponentFromConfig('errorBoundary');
|
|
94
|
-
return (jsx(UniversalErrorBoundary, { url: url, error: error, errorHandlers: errorHandlers, fallback: fallback, fallbackFromDi: fallbackFromDi, children: children }));
|
|
95
|
-
};
|
|
96
|
-
|
|
97
99
|
function renderReact({ di }, context) {
|
|
98
100
|
const serverState = typeof window !== 'undefined' ? context.getState() : undefined;
|
|
99
|
-
return (jsx(Provider, { context: context, serverState: serverState, children: jsx(DIContext.Provider, { value: di, children: jsx(
|
|
101
|
+
return (jsx(Provider, { context: context, serverState: serverState, children: jsx(DIContext.Provider, { value: di, children: jsx(Root, {}) }) }));
|
|
100
102
|
}
|
|
101
103
|
|
|
102
104
|
let hydrateRoot;
|
package/lib/server.es.js
CHANGED
|
@@ -32,7 +32,7 @@ import { o as onload } from './server_inline.inline.es.js';
|
|
|
32
32
|
import { Writable } from 'stream';
|
|
33
33
|
import { jsx } from 'react/jsx-runtime';
|
|
34
34
|
import { createEvent, createReducer, useStore, Provider } from '@tramvai/state';
|
|
35
|
-
import {
|
|
35
|
+
import { useUrl, usePageService } from '@tramvai/module-router';
|
|
36
36
|
import { composeLayoutOptions, createLayout } from '@tinkoff/layout-factory';
|
|
37
37
|
|
|
38
38
|
const thirtySeconds = 1000 * 30;
|
|
@@ -647,6 +647,36 @@ const htmlPageSchemaFactory = ({ htmlAttrs, }) => {
|
|
|
647
647
|
];
|
|
648
648
|
};
|
|
649
649
|
|
|
650
|
+
function serializeError(error) {
|
|
651
|
+
return {
|
|
652
|
+
...error,
|
|
653
|
+
message: error.message,
|
|
654
|
+
stack: error.stack,
|
|
655
|
+
};
|
|
656
|
+
}
|
|
657
|
+
function deserializeError(serializedError) {
|
|
658
|
+
const error = new Error(serializedError.message);
|
|
659
|
+
Object.assign(error, serializedError);
|
|
660
|
+
return error;
|
|
661
|
+
}
|
|
662
|
+
const setPageErrorEvent = createEvent('setPageError');
|
|
663
|
+
const initialState = null;
|
|
664
|
+
const PageErrorStore = createReducer('pageError', initialState).on(setPageErrorEvent, (state, error) => error && serializeError(error));
|
|
665
|
+
|
|
666
|
+
const PageErrorBoundary = (props) => {
|
|
667
|
+
const { children } = props;
|
|
668
|
+
const pageService = useDi(PAGE_SERVICE_TOKEN);
|
|
669
|
+
const url = useUrl();
|
|
670
|
+
const serializedError = useStore(PageErrorStore);
|
|
671
|
+
const error = useMemo(() => {
|
|
672
|
+
return serializedError && deserializeError(serializedError);
|
|
673
|
+
}, [serializedError]);
|
|
674
|
+
const errorHandlers = useDi({ token: ERROR_BOUNDARY_TOKEN, optional: true });
|
|
675
|
+
const fallbackFromDi = useDi({ token: ERROR_BOUNDARY_FALLBACK_COMPONENT_TOKEN, optional: true });
|
|
676
|
+
const fallback = pageService.resolveComponentFromConfig('errorBoundary');
|
|
677
|
+
return (jsx(UniversalErrorBoundary, { url: url, error: error, errorHandlers: errorHandlers, fallback: fallback, fallbackFromDi: fallbackFromDi, children: children }));
|
|
678
|
+
};
|
|
679
|
+
|
|
650
680
|
/**
|
|
651
681
|
* Result component structure:
|
|
652
682
|
*
|
|
@@ -654,7 +684,9 @@ const htmlPageSchemaFactory = ({ htmlAttrs, }) => {
|
|
|
654
684
|
* <RootComponent>
|
|
655
685
|
* <LayoutComponent>
|
|
656
686
|
* <NestedLayoutComponent>
|
|
657
|
-
* <
|
|
687
|
+
* <ErrorBoundaryComponent>
|
|
688
|
+
* <PageComponent />
|
|
689
|
+
* </ErrorBoundaryComponent>
|
|
658
690
|
* </NestedLayoutComponent>
|
|
659
691
|
* </LayoutComponent>
|
|
660
692
|
* </RootComponent>
|
|
@@ -688,7 +720,7 @@ const PageRenderComponent = () => {
|
|
|
688
720
|
throw new Error(`Page component '${pageComponent}' not found`);
|
|
689
721
|
};
|
|
690
722
|
}
|
|
691
|
-
const page = useMemo(() => jsx(PageComponent, {}), [PageComponent]);
|
|
723
|
+
const page = useMemo(() => (jsx(PageErrorBoundary, { children: jsx(PageComponent, {}) })), [PageComponent]);
|
|
692
724
|
return page;
|
|
693
725
|
};
|
|
694
726
|
const Root = () => {
|
|
@@ -697,39 +729,9 @@ const Root = () => {
|
|
|
697
729
|
return jsx(LayoutRenderComponent, { children: nestedLayoutRenderComponent });
|
|
698
730
|
};
|
|
699
731
|
|
|
700
|
-
function serializeError(error) {
|
|
701
|
-
return {
|
|
702
|
-
...error,
|
|
703
|
-
message: error.message,
|
|
704
|
-
stack: error.stack,
|
|
705
|
-
};
|
|
706
|
-
}
|
|
707
|
-
function deserializeError(serializedError) {
|
|
708
|
-
const error = new Error(serializedError.message);
|
|
709
|
-
Object.assign(error, serializedError);
|
|
710
|
-
return error;
|
|
711
|
-
}
|
|
712
|
-
const setPageErrorEvent = createEvent('setPageError');
|
|
713
|
-
const initialState = null;
|
|
714
|
-
const PageErrorStore = createReducer('pageError', initialState).on(setPageErrorEvent, (state, error) => error && serializeError(error));
|
|
715
|
-
|
|
716
|
-
const PageErrorBoundary = (props) => {
|
|
717
|
-
const { children } = props;
|
|
718
|
-
const pageService = useDi(PAGE_SERVICE_TOKEN);
|
|
719
|
-
const url = useUrl();
|
|
720
|
-
const serializedError = useStore(PageErrorStore);
|
|
721
|
-
const error = useMemo(() => {
|
|
722
|
-
return serializedError && deserializeError(serializedError);
|
|
723
|
-
}, [serializedError]);
|
|
724
|
-
const errorHandlers = useDi({ token: ERROR_BOUNDARY_TOKEN, optional: true });
|
|
725
|
-
const fallbackFromDi = useDi({ token: ERROR_BOUNDARY_FALLBACK_COMPONENT_TOKEN, optional: true });
|
|
726
|
-
const fallback = pageService.resolveComponentFromConfig('errorBoundary');
|
|
727
|
-
return (jsx(UniversalErrorBoundary, { url: url, error: error, errorHandlers: errorHandlers, fallback: fallback, fallbackFromDi: fallbackFromDi, children: children }));
|
|
728
|
-
};
|
|
729
|
-
|
|
730
732
|
function renderReact({ di }, context) {
|
|
731
733
|
const serverState = typeof window !== 'undefined' ? context.getState() : undefined;
|
|
732
|
-
return (jsx(Provider, { context: context, serverState: serverState, children: jsx(DIContext.Provider, { value: di, children: jsx(
|
|
734
|
+
return (jsx(Provider, { context: context, serverState: serverState, children: jsx(DIContext.Provider, { value: di, children: jsx(Root, {}) }) }));
|
|
733
735
|
}
|
|
734
736
|
|
|
735
737
|
const RENDER_TIMEOUT = 500;
|
package/lib/server.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var tslib = require('tslib');
|
|
6
|
-
var react = require('react');
|
|
6
|
+
var react$1 = require('react');
|
|
7
7
|
var server$1 = require('react-dom/server');
|
|
8
8
|
var core = require('@tramvai/core');
|
|
9
9
|
var tokensCommon = require('@tramvai/tokens-common');
|
|
@@ -12,7 +12,7 @@ var moduleClientHints = require('@tramvai/module-client-hints');
|
|
|
12
12
|
var tokensRender = require('@tramvai/tokens-render');
|
|
13
13
|
var dippy = require('@tinkoff/dippy');
|
|
14
14
|
var tokensServerPrivate = require('@tramvai/tokens-server-private');
|
|
15
|
-
var react
|
|
15
|
+
var react = require('@tramvai/react');
|
|
16
16
|
var url = require('@tinkoff/url');
|
|
17
17
|
var userAgent = require('@tinkoff/user-agent');
|
|
18
18
|
var isUndefined = require('@tinkoff/utils/is/undefined');
|
|
@@ -683,6 +683,36 @@ const htmlPageSchemaFactory = ({ htmlAttrs, }) => {
|
|
|
683
683
|
];
|
|
684
684
|
};
|
|
685
685
|
|
|
686
|
+
function serializeError(error) {
|
|
687
|
+
return {
|
|
688
|
+
...error,
|
|
689
|
+
message: error.message,
|
|
690
|
+
stack: error.stack,
|
|
691
|
+
};
|
|
692
|
+
}
|
|
693
|
+
function deserializeError(serializedError) {
|
|
694
|
+
const error = new Error(serializedError.message);
|
|
695
|
+
Object.assign(error, serializedError);
|
|
696
|
+
return error;
|
|
697
|
+
}
|
|
698
|
+
const setPageErrorEvent = state.createEvent('setPageError');
|
|
699
|
+
const initialState = null;
|
|
700
|
+
const PageErrorStore = state.createReducer('pageError', initialState).on(setPageErrorEvent, (state, error) => error && serializeError(error));
|
|
701
|
+
|
|
702
|
+
const PageErrorBoundary = (props) => {
|
|
703
|
+
const { children } = props;
|
|
704
|
+
const pageService = react.useDi(tokensRouter.PAGE_SERVICE_TOKEN);
|
|
705
|
+
const url = moduleRouter.useUrl();
|
|
706
|
+
const serializedError = state.useStore(PageErrorStore);
|
|
707
|
+
const error = react$1.useMemo(() => {
|
|
708
|
+
return serializedError && deserializeError(serializedError);
|
|
709
|
+
}, [serializedError]);
|
|
710
|
+
const errorHandlers = react.useDi({ token: react.ERROR_BOUNDARY_TOKEN, optional: true });
|
|
711
|
+
const fallbackFromDi = react.useDi({ token: react.ERROR_BOUNDARY_FALLBACK_COMPONENT_TOKEN, optional: true });
|
|
712
|
+
const fallback = pageService.resolveComponentFromConfig('errorBoundary');
|
|
713
|
+
return (jsxRuntime.jsx(react.UniversalErrorBoundary, { url: url, error: error, errorHandlers: errorHandlers, fallback: fallback, fallbackFromDi: fallbackFromDi, children: children }));
|
|
714
|
+
};
|
|
715
|
+
|
|
686
716
|
/**
|
|
687
717
|
* Result component structure:
|
|
688
718
|
*
|
|
@@ -690,7 +720,9 @@ const htmlPageSchemaFactory = ({ htmlAttrs, }) => {
|
|
|
690
720
|
* <RootComponent>
|
|
691
721
|
* <LayoutComponent>
|
|
692
722
|
* <NestedLayoutComponent>
|
|
693
|
-
* <
|
|
723
|
+
* <ErrorBoundaryComponent>
|
|
724
|
+
* <PageComponent />
|
|
725
|
+
* </ErrorBoundaryComponent>
|
|
694
726
|
* </NestedLayoutComponent>
|
|
695
727
|
* </LayoutComponent>
|
|
696
728
|
* </RootComponent>
|
|
@@ -706,13 +738,13 @@ const LayoutRenderComponent = ({ children }) => {
|
|
|
706
738
|
const LayoutComponent = pageService.resolveComponentFromConfig('layout');
|
|
707
739
|
const HeaderComponent = pageService.resolveComponentFromConfig('header');
|
|
708
740
|
const FooterComponent = pageService.resolveComponentFromConfig('footer');
|
|
709
|
-
const layout = react.useMemo(() => (jsxRuntime.jsx(LayoutComponent, { Header: HeaderComponent, Footer: FooterComponent, children: children })), [LayoutComponent, HeaderComponent, FooterComponent, children]);
|
|
741
|
+
const layout = react$1.useMemo(() => (jsxRuntime.jsx(LayoutComponent, { Header: HeaderComponent, Footer: FooterComponent, children: children })), [LayoutComponent, HeaderComponent, FooterComponent, children]);
|
|
710
742
|
return layout;
|
|
711
743
|
};
|
|
712
744
|
const NestedLayoutRenderComponent = ({ children }) => {
|
|
713
745
|
const pageService = moduleRouter.usePageService();
|
|
714
746
|
const NestedLayoutComponent = pageService.resolveComponentFromConfig('nestedLayout');
|
|
715
|
-
const nestedLayout = react.useMemo(() => jsxRuntime.jsx(NestedLayoutComponent, { children: children }), [NestedLayoutComponent, children]);
|
|
747
|
+
const nestedLayout = react$1.useMemo(() => jsxRuntime.jsx(NestedLayoutComponent, { children: children }), [NestedLayoutComponent, children]);
|
|
716
748
|
return nestedLayout;
|
|
717
749
|
};
|
|
718
750
|
const PageRenderComponent = () => {
|
|
@@ -724,48 +756,18 @@ const PageRenderComponent = () => {
|
|
|
724
756
|
throw new Error(`Page component '${pageComponent}' not found`);
|
|
725
757
|
};
|
|
726
758
|
}
|
|
727
|
-
const page = react.useMemo(() => jsxRuntime.jsx(PageComponent, {}), [PageComponent]);
|
|
759
|
+
const page = react$1.useMemo(() => (jsxRuntime.jsx(PageErrorBoundary, { children: jsxRuntime.jsx(PageComponent, {}) })), [PageComponent]);
|
|
728
760
|
return page;
|
|
729
761
|
};
|
|
730
762
|
const Root = () => {
|
|
731
|
-
const pageRenderComponent = react.useMemo(() => jsxRuntime.jsx(PageRenderComponent, {}), []);
|
|
732
|
-
const nestedLayoutRenderComponent = react.useMemo(() => jsxRuntime.jsx(NestedLayoutRenderComponent, { children: pageRenderComponent }), [pageRenderComponent]);
|
|
763
|
+
const pageRenderComponent = react$1.useMemo(() => jsxRuntime.jsx(PageRenderComponent, {}), []);
|
|
764
|
+
const nestedLayoutRenderComponent = react$1.useMemo(() => jsxRuntime.jsx(NestedLayoutRenderComponent, { children: pageRenderComponent }), [pageRenderComponent]);
|
|
733
765
|
return jsxRuntime.jsx(LayoutRenderComponent, { children: nestedLayoutRenderComponent });
|
|
734
766
|
};
|
|
735
767
|
|
|
736
|
-
function serializeError(error) {
|
|
737
|
-
return {
|
|
738
|
-
...error,
|
|
739
|
-
message: error.message,
|
|
740
|
-
stack: error.stack,
|
|
741
|
-
};
|
|
742
|
-
}
|
|
743
|
-
function deserializeError(serializedError) {
|
|
744
|
-
const error = new Error(serializedError.message);
|
|
745
|
-
Object.assign(error, serializedError);
|
|
746
|
-
return error;
|
|
747
|
-
}
|
|
748
|
-
const setPageErrorEvent = state.createEvent('setPageError');
|
|
749
|
-
const initialState = null;
|
|
750
|
-
const PageErrorStore = state.createReducer('pageError', initialState).on(setPageErrorEvent, (state, error) => error && serializeError(error));
|
|
751
|
-
|
|
752
|
-
const PageErrorBoundary = (props) => {
|
|
753
|
-
const { children } = props;
|
|
754
|
-
const pageService = react$1.useDi(tokensRouter.PAGE_SERVICE_TOKEN);
|
|
755
|
-
const url = moduleRouter.useUrl();
|
|
756
|
-
const serializedError = state.useStore(PageErrorStore);
|
|
757
|
-
const error = react.useMemo(() => {
|
|
758
|
-
return serializedError && deserializeError(serializedError);
|
|
759
|
-
}, [serializedError]);
|
|
760
|
-
const errorHandlers = react$1.useDi({ token: react$1.ERROR_BOUNDARY_TOKEN, optional: true });
|
|
761
|
-
const fallbackFromDi = react$1.useDi({ token: react$1.ERROR_BOUNDARY_FALLBACK_COMPONENT_TOKEN, optional: true });
|
|
762
|
-
const fallback = pageService.resolveComponentFromConfig('errorBoundary');
|
|
763
|
-
return (jsxRuntime.jsx(react$1.UniversalErrorBoundary, { url: url, error: error, errorHandlers: errorHandlers, fallback: fallback, fallbackFromDi: fallbackFromDi, children: children }));
|
|
764
|
-
};
|
|
765
|
-
|
|
766
768
|
function renderReact({ di }, context) {
|
|
767
769
|
const serverState = typeof window !== 'undefined' ? context.getState() : undefined;
|
|
768
|
-
return (jsxRuntime.jsx(state.Provider, { context: context, serverState: serverState, children: jsxRuntime.jsx(react
|
|
770
|
+
return (jsxRuntime.jsx(state.Provider, { context: context, serverState: serverState, children: jsxRuntime.jsx(react.DIContext.Provider, { value: di, children: jsxRuntime.jsx(Root, {}) }) }));
|
|
769
771
|
}
|
|
770
772
|
|
|
771
773
|
const RENDER_TIMEOUT = 500;
|
|
@@ -1093,7 +1095,7 @@ exports.RenderModule = RenderModule_1 = tslib.__decorate([
|
|
|
1093
1095
|
let body;
|
|
1094
1096
|
try {
|
|
1095
1097
|
log.info({ event: 'render-root-boundary-start' });
|
|
1096
|
-
body = server$1.renderToString(react.createElement(RootErrorBoundary, { error, url: url.parse(request.url) }));
|
|
1098
|
+
body = server$1.renderToString(react$1.createElement(RootErrorBoundary, { error, url: url.parse(request.url) }));
|
|
1097
1099
|
log.info({ event: 'render-root-boundary-success' });
|
|
1098
1100
|
const status = error.status || error.httpStatus || 500;
|
|
1099
1101
|
// log send-server-error only after successful Root Boundary render,
|
|
@@ -1123,7 +1125,7 @@ exports.RenderModule = RenderModule_1 = tslib.__decorate([
|
|
|
1123
1125
|
};
|
|
1124
1126
|
},
|
|
1125
1127
|
deps: {
|
|
1126
|
-
RootErrorBoundary: { token: react
|
|
1128
|
+
RootErrorBoundary: { token: react.ROOT_ERROR_BOUNDARY_COMPONENT_TOKEN, optional: true },
|
|
1127
1129
|
logger: tokensCommon.LOGGER_TOKEN,
|
|
1128
1130
|
},
|
|
1129
1131
|
}),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tramvai/module-render",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.64.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"browser": "lib/browser.js",
|
|
6
6
|
"main": "lib/server.js",
|
|
@@ -26,13 +26,13 @@
|
|
|
26
26
|
"@tinkoff/htmlpagebuilder": "0.5.5",
|
|
27
27
|
"@tinkoff/layout-factory": "0.3.6",
|
|
28
28
|
"@tinkoff/url": "0.8.4",
|
|
29
|
-
"@tinkoff/user-agent": "0.4.
|
|
30
|
-
"@tramvai/module-client-hints": "2.
|
|
31
|
-
"@tramvai/module-router": "2.
|
|
32
|
-
"@tramvai/react": "2.
|
|
29
|
+
"@tinkoff/user-agent": "0.4.152",
|
|
30
|
+
"@tramvai/module-client-hints": "2.64.0",
|
|
31
|
+
"@tramvai/module-router": "2.64.0",
|
|
32
|
+
"@tramvai/react": "2.64.0",
|
|
33
33
|
"@tramvai/safe-strings": "0.5.6",
|
|
34
|
-
"@tramvai/tokens-render": "2.
|
|
35
|
-
"@tramvai/experiments": "2.
|
|
34
|
+
"@tramvai/tokens-render": "2.64.0",
|
|
35
|
+
"@tramvai/experiments": "2.64.0",
|
|
36
36
|
"@types/loadable__server": "^5.12.6",
|
|
37
37
|
"node-fetch": "^2.6.1"
|
|
38
38
|
},
|
|
@@ -40,14 +40,14 @@
|
|
|
40
40
|
"@tinkoff/dippy": "0.8.11",
|
|
41
41
|
"@tinkoff/utils": "^2.1.2",
|
|
42
42
|
"@tinkoff/react-hooks": "0.1.4",
|
|
43
|
-
"@tramvai/cli": "2.
|
|
44
|
-
"@tramvai/core": "2.
|
|
45
|
-
"@tramvai/module-common": "2.
|
|
46
|
-
"@tramvai/state": "2.
|
|
47
|
-
"@tramvai/test-helpers": "2.
|
|
48
|
-
"@tramvai/tokens-common": "2.
|
|
49
|
-
"@tramvai/tokens-router": "2.
|
|
50
|
-
"@tramvai/tokens-server-private": "2.
|
|
43
|
+
"@tramvai/cli": "2.64.0",
|
|
44
|
+
"@tramvai/core": "2.64.0",
|
|
45
|
+
"@tramvai/module-common": "2.64.0",
|
|
46
|
+
"@tramvai/state": "2.64.0",
|
|
47
|
+
"@tramvai/test-helpers": "2.64.0",
|
|
48
|
+
"@tramvai/tokens-common": "2.64.0",
|
|
49
|
+
"@tramvai/tokens-router": "2.64.0",
|
|
50
|
+
"@tramvai/tokens-server-private": "2.64.0",
|
|
51
51
|
"express": "^4.17.1",
|
|
52
52
|
"prop-types": "^15.6.2",
|
|
53
53
|
"react": ">=16.14.0",
|