@tramvai/module-render 1.30.1 → 1.32.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/lib/browser.js CHANGED
@@ -1,8 +1,9 @@
1
1
  import { __decorate } from 'tslib';
2
2
  import { Module, commandLineListTokens, DI_TOKEN } from '@tramvai/core';
3
- import { LOGGER_TOKEN, COMPONENT_REGISTRY_TOKEN, CONTEXT_TOKEN } from '@tramvai/module-common';
3
+ import { LOGGER_TOKEN, CONTEXT_TOKEN } from '@tramvai/module-common';
4
4
  import { DEFAULT_LAYOUT_COMPONENT, LAYOUT_OPTIONS, DEFAULT_FOOTER_COMPONENT, DEFAULT_HEADER_COMPONENT, RESOURCES_REGISTRY, CUSTOM_RENDER, EXTEND_RENDER, RENDERER_CALLBACK, RENDER_MODE } from '@tramvai/tokens-render';
5
5
  export * from '@tramvai/tokens-render';
6
+ import { PAGE_SERVICE_TOKEN } from '@tramvai/tokens-router';
6
7
  import each from '@tinkoff/utils/array/each';
7
8
  import React, { PureComponent, createElement, StrictMode, useEffect } from 'react';
8
9
  import { Provider } from '@tramvai/state';
@@ -22,24 +23,24 @@ class RootComponent extends PureComponent {
22
23
  }
23
24
  const layoutWrapper = memoOne(withError(), strictEqual);
24
25
  const pageWrapper = memoOne(withError(), strictEqual);
25
- const Root = withError()(({ componentRegistry, }) => {
26
+ const Root = withError()(({ pageService }) => {
26
27
  const { config } = useRoute();
27
- const { bundle, pageComponent, layoutComponent = 'layoutDefault', headerComponent = 'headerDefault', footerComponent = 'footerDefault', } = config;
28
- const PageComponent = componentRegistry.get(pageComponent, bundle);
29
- // Достаем компоненты из бандла, либо берем default реализации
30
- const LayoutComponent = componentRegistry.get(layoutComponent, bundle) || componentRegistry.get('layoutDefault');
31
- const HeaderComponent = componentRegistry.get(headerComponent, bundle) || componentRegistry.get('headerDefault');
32
- const FooterComponent = componentRegistry.get(footerComponent, bundle) || componentRegistry.get('footerDefault');
28
+ const { pageComponent, layoutComponent = 'layoutDefault', headerComponent = 'headerDefault', footerComponent = 'footerDefault', } = config;
29
+ const PageComponent = pageService.getComponent(pageComponent);
30
+ // Достаем компоненты для текущей страницы, либо берем default реализации
31
+ const LayoutComponent = pageService.getComponent(layoutComponent) || pageService.getComponent('layoutDefault');
32
+ const HeaderComponent = pageService.getComponent(headerComponent) || pageService.getComponent('headerDefault');
33
+ const FooterComponent = pageService.getComponent(footerComponent) || pageService.getComponent('footerDefault');
33
34
  if (!PageComponent) {
34
35
  throw new Error(`Page component '${pageComponent}' not found`);
35
36
  }
36
37
  return (React.createElement(RootComponent, { HeaderComponent: HeaderComponent, FooterComponent: FooterComponent, LayoutComponent: layoutWrapper(LayoutComponent), PageComponent: pageWrapper(PageComponent) }));
37
38
  });
38
39
 
39
- function renderReact({ componentRegistry, di }, context) {
40
+ function renderReact({ pageService, di }, context) {
40
41
  return (React.createElement(Provider, { context: context },
41
42
  React.createElement(DIContext.Provider, { value: di },
42
- React.createElement(Root, { componentRegistry: componentRegistry }))));
43
+ React.createElement(Root, { pageService: pageService }))));
43
44
  }
44
45
 
45
46
  const legacyRenderer = ({ element, container, callback }) => hydrate(element, container, callback);
@@ -69,8 +70,8 @@ const blockingRenderer = rendererFactory(ReactDOM.createBlockingRoot);
69
70
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
70
71
  const concurrentRenderer = rendererFactory(ReactDOM.createRoot);
71
72
 
72
- function rendering({ componentRegistry, log, consumerContext, customRender, extendRender, di, mode, rendererCallback, }) {
73
- let renderResult = renderReact({ componentRegistry, di }, consumerContext);
73
+ function rendering({ pageService, log, consumerContext, customRender, extendRender, di, mode, rendererCallback, }) {
74
+ let renderResult = renderReact({ pageService, di }, consumerContext);
74
75
  if (extendRender) {
75
76
  each((render) => {
76
77
  renderResult = render(renderResult);
@@ -191,7 +192,7 @@ RenderModule = RenderModule_1 = __decorate([
191
192
  };
192
193
  },
193
194
  deps: {
194
- componentRegistry: COMPONENT_REGISTRY_TOKEN,
195
+ pageService: PAGE_SERVICE_TOKEN,
195
196
  log: LOGGER_TOKEN,
196
197
  customRender: { token: CUSTOM_RENDER, optional: true },
197
198
  extendRender: { token: EXTEND_RENDER, optional: true },
@@ -1,6 +1,7 @@
1
1
  import type { EXTEND_RENDER, RenderMode, RENDERER_CALLBACK } from '@tramvai/tokens-render';
2
- export declare function rendering({ componentRegistry, log, consumerContext, customRender, extendRender, di, mode, rendererCallback, }: {
3
- componentRegistry: any;
2
+ import type { PAGE_SERVICE_TOKEN } from '@tramvai/tokens-router';
3
+ export declare function rendering({ pageService, log, consumerContext, customRender, extendRender, di, mode, rendererCallback, }: {
4
+ pageService: typeof PAGE_SERVICE_TOKEN;
4
5
  log: any;
5
6
  consumerContext: any;
6
7
  extendRender?: typeof EXTEND_RENDER;
@@ -1,4 +1,4 @@
1
- export declare function renderReact({ componentRegistry, di }: {
2
- componentRegistry: any;
1
+ export declare function renderReact({ pageService, di }: {
2
+ pageService: any;
3
3
  di: any;
4
4
  }, context: any): JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import type { COMPONENT_REGISTRY_TOKEN } from '@tramvai/tokens-common';
3
- export declare const Root: ({ componentRegistry, }: {
4
- componentRegistry: typeof COMPONENT_REGISTRY_TOKEN;
2
+ import type { PAGE_SERVICE_TOKEN } from '@tramvai/tokens-router';
3
+ export declare const Root: ({ pageService }: {
4
+ pageService: typeof PAGE_SERVICE_TOKEN;
5
5
  children?: React.ReactNode;
6
6
  }) => JSX.Element;
@@ -1,15 +1,16 @@
1
1
  import type { DI_TOKEN } from '@tramvai/core';
2
- import type { COMPONENT_REGISTRY_TOKEN, CONTEXT_TOKEN } from '@tramvai/module-common';
2
+ import type { CONTEXT_TOKEN } from '@tramvai/module-common';
3
3
  import type { EXTEND_RENDER, CUSTOM_RENDER } from '@tramvai/tokens-render';
4
+ import type { PAGE_SERVICE_TOKEN } from '@tramvai/tokens-router';
4
5
  import type { ChunkExtractor } from '@loadable/server';
5
6
  export declare class ReactRenderServer {
6
7
  customRender: typeof CUSTOM_RENDER;
7
8
  extendRender: typeof EXTEND_RENDER;
8
9
  context: typeof CONTEXT_TOKEN;
9
- componentRegistry: typeof COMPONENT_REGISTRY_TOKEN;
10
+ pageService: typeof PAGE_SERVICE_TOKEN;
10
11
  di: typeof DI_TOKEN;
11
- constructor({ componentRegistry, context, customRender, extendRender, di }: {
12
- componentRegistry: any;
12
+ constructor({ pageService, context, customRender, extendRender, di }: {
13
+ pageService: any;
13
14
  context: any;
14
15
  customRender: any;
15
16
  extendRender: any;
package/lib/server.es.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { __decorate } from 'tslib';
2
2
  import { Module, commandLineListTokens, DI_TOKEN, provide } from '@tramvai/core';
3
- import { CREATE_CACHE_TOKEN, RESPONSE_MANAGER_TOKEN, CONTEXT_TOKEN, COMPONENT_REGISTRY_TOKEN } from '@tramvai/module-common';
3
+ import { CREATE_CACHE_TOKEN, RESPONSE_MANAGER_TOKEN, CONTEXT_TOKEN } from '@tramvai/module-common';
4
4
  import { PAGE_SERVICE_TOKEN } from '@tramvai/tokens-router';
5
5
  import { ClientHintsModule, USER_AGENT_TOKEN } from '@tramvai/module-client-hints';
6
6
  import { ResourceType, ResourceSlot, DEFAULT_LAYOUT_COMPONENT, LAYOUT_OPTIONS, DEFAULT_FOOTER_COMPONENT, DEFAULT_HEADER_COMPONENT, RESOURCES_REGISTRY, RESOURCE_INLINE_OPTIONS, RENDER_SLOTS, POLYFILL_CONDITION, HTML_ATTRS, CUSTOM_RENDER, EXTEND_RENDER } from '@tramvai/tokens-render';
@@ -607,29 +607,29 @@ class RootComponent extends PureComponent {
607
607
  }
608
608
  const layoutWrapper = memoOne(withError(), strictEqual);
609
609
  const pageWrapper = memoOne(withError(), strictEqual);
610
- const Root = withError()(({ componentRegistry, }) => {
610
+ const Root = withError()(({ pageService }) => {
611
611
  const { config } = useRoute();
612
- const { bundle, pageComponent, layoutComponent = 'layoutDefault', headerComponent = 'headerDefault', footerComponent = 'footerDefault', } = config;
613
- const PageComponent = componentRegistry.get(pageComponent, bundle);
614
- // Достаем компоненты из бандла, либо берем default реализации
615
- const LayoutComponent = componentRegistry.get(layoutComponent, bundle) || componentRegistry.get('layoutDefault');
616
- const HeaderComponent = componentRegistry.get(headerComponent, bundle) || componentRegistry.get('headerDefault');
617
- const FooterComponent = componentRegistry.get(footerComponent, bundle) || componentRegistry.get('footerDefault');
612
+ const { pageComponent, layoutComponent = 'layoutDefault', headerComponent = 'headerDefault', footerComponent = 'footerDefault', } = config;
613
+ const PageComponent = pageService.getComponent(pageComponent);
614
+ // Достаем компоненты для текущей страницы, либо берем default реализации
615
+ const LayoutComponent = pageService.getComponent(layoutComponent) || pageService.getComponent('layoutDefault');
616
+ const HeaderComponent = pageService.getComponent(headerComponent) || pageService.getComponent('headerDefault');
617
+ const FooterComponent = pageService.getComponent(footerComponent) || pageService.getComponent('footerDefault');
618
618
  if (!PageComponent) {
619
619
  throw new Error(`Page component '${pageComponent}' not found`);
620
620
  }
621
621
  return (React.createElement(RootComponent, { HeaderComponent: HeaderComponent, FooterComponent: FooterComponent, LayoutComponent: layoutWrapper(LayoutComponent), PageComponent: pageWrapper(PageComponent) }));
622
622
  });
623
623
 
624
- function renderReact({ componentRegistry, di }, context) {
624
+ function renderReact({ pageService, di }, context) {
625
625
  return (React.createElement(Provider, { context: context },
626
626
  React.createElement(DIContext.Provider, { value: di },
627
- React.createElement(Root, { componentRegistry: componentRegistry }))));
627
+ React.createElement(Root, { pageService: pageService }))));
628
628
  }
629
629
 
630
630
  class ReactRenderServer {
631
- constructor({ componentRegistry, context, customRender, extendRender, di }) {
632
- this.componentRegistry = componentRegistry;
631
+ constructor({ pageService, context, customRender, extendRender, di }) {
632
+ this.pageService = pageService;
633
633
  this.context = context;
634
634
  this.customRender = customRender;
635
635
  this.extendRender = extendRender;
@@ -637,7 +637,7 @@ class ReactRenderServer {
637
637
  }
638
638
  render(extractor) {
639
639
  var _a;
640
- let renderResult = renderReact({ componentRegistry: this.componentRegistry, di: this.di }, this.context);
640
+ let renderResult = renderReact({ pageService: this.pageService, di: this.di }, this.context);
641
641
  each((render) => {
642
642
  renderResult = render(renderResult);
643
643
  }, (_a = this.extendRender) !== null && _a !== void 0 ? _a : []);
@@ -769,7 +769,7 @@ RenderModule = RenderModule_1 = __decorate([
769
769
  useClass: ReactRenderServer,
770
770
  deps: {
771
771
  context: CONTEXT_TOKEN,
772
- componentRegistry: COMPONENT_REGISTRY_TOKEN,
772
+ pageService: PAGE_SERVICE_TOKEN,
773
773
  customRender: { token: CUSTOM_RENDER, optional: true },
774
774
  extendRender: { token: EXTEND_RENDER, optional: true },
775
775
  di: DI_TOKEN,
package/lib/server.js CHANGED
@@ -646,29 +646,29 @@ class RootComponent extends React.PureComponent {
646
646
  }
647
647
  const layoutWrapper = memoOne__default["default"](react.withError(), strictEqual__default["default"]);
648
648
  const pageWrapper = memoOne__default["default"](react.withError(), strictEqual__default["default"]);
649
- const Root = react.withError()(({ componentRegistry, }) => {
649
+ const Root = react.withError()(({ pageService }) => {
650
650
  const { config } = moduleRouter.useRoute();
651
- const { bundle, pageComponent, layoutComponent = 'layoutDefault', headerComponent = 'headerDefault', footerComponent = 'footerDefault', } = config;
652
- const PageComponent = componentRegistry.get(pageComponent, bundle);
653
- // Достаем компоненты из бандла, либо берем default реализации
654
- const LayoutComponent = componentRegistry.get(layoutComponent, bundle) || componentRegistry.get('layoutDefault');
655
- const HeaderComponent = componentRegistry.get(headerComponent, bundle) || componentRegistry.get('headerDefault');
656
- const FooterComponent = componentRegistry.get(footerComponent, bundle) || componentRegistry.get('footerDefault');
651
+ const { pageComponent, layoutComponent = 'layoutDefault', headerComponent = 'headerDefault', footerComponent = 'footerDefault', } = config;
652
+ const PageComponent = pageService.getComponent(pageComponent);
653
+ // Достаем компоненты для текущей страницы, либо берем default реализации
654
+ const LayoutComponent = pageService.getComponent(layoutComponent) || pageService.getComponent('layoutDefault');
655
+ const HeaderComponent = pageService.getComponent(headerComponent) || pageService.getComponent('headerDefault');
656
+ const FooterComponent = pageService.getComponent(footerComponent) || pageService.getComponent('footerDefault');
657
657
  if (!PageComponent) {
658
658
  throw new Error(`Page component '${pageComponent}' not found`);
659
659
  }
660
660
  return (React__default["default"].createElement(RootComponent, { HeaderComponent: HeaderComponent, FooterComponent: FooterComponent, LayoutComponent: layoutWrapper(LayoutComponent), PageComponent: pageWrapper(PageComponent) }));
661
661
  });
662
662
 
663
- function renderReact({ componentRegistry, di }, context) {
663
+ function renderReact({ pageService, di }, context) {
664
664
  return (React__default["default"].createElement(state.Provider, { context: context },
665
665
  React__default["default"].createElement(react.DIContext.Provider, { value: di },
666
- React__default["default"].createElement(Root, { componentRegistry: componentRegistry }))));
666
+ React__default["default"].createElement(Root, { pageService: pageService }))));
667
667
  }
668
668
 
669
669
  class ReactRenderServer {
670
- constructor({ componentRegistry, context, customRender, extendRender, di }) {
671
- this.componentRegistry = componentRegistry;
670
+ constructor({ pageService, context, customRender, extendRender, di }) {
671
+ this.pageService = pageService;
672
672
  this.context = context;
673
673
  this.customRender = customRender;
674
674
  this.extendRender = extendRender;
@@ -676,7 +676,7 @@ class ReactRenderServer {
676
676
  }
677
677
  render(extractor) {
678
678
  var _a;
679
- let renderResult = renderReact({ componentRegistry: this.componentRegistry, di: this.di }, this.context);
679
+ let renderResult = renderReact({ pageService: this.pageService, di: this.di }, this.context);
680
680
  each__default["default"]((render) => {
681
681
  renderResult = render(renderResult);
682
682
  }, (_a = this.extendRender) !== null && _a !== void 0 ? _a : []);
@@ -808,7 +808,7 @@ exports.RenderModule = RenderModule_1 = tslib.__decorate([
808
808
  useClass: ReactRenderServer,
809
809
  deps: {
810
810
  context: moduleCommon.CONTEXT_TOKEN,
811
- componentRegistry: moduleCommon.COMPONENT_REGISTRY_TOKEN,
811
+ pageService: tokensRouter.PAGE_SERVICE_TOKEN,
812
812
  customRender: { token: tokensRender.CUSTOM_RENDER, optional: true },
813
813
  extendRender: { token: tokensRender.EXTEND_RENDER, optional: true },
814
814
  di: core.DI_TOKEN,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tramvai/module-render",
3
- "version": "1.30.1",
3
+ "version": "1.32.1",
4
4
  "description": "",
5
5
  "browser": "lib/browser.js",
6
6
  "main": "lib/server.js",
@@ -24,26 +24,26 @@
24
24
  "@tinkoff/htmlpagebuilder": "0.4.22",
25
25
  "@tinkoff/layout-factory": "0.2.28",
26
26
  "@tinkoff/url": "0.7.37",
27
- "@tinkoff/user-agent": "0.3.151",
28
- "@tramvai/module-client-hints": "1.30.1",
29
- "@tramvai/module-router": "1.30.1",
30
- "@tramvai/react": "1.30.1",
27
+ "@tinkoff/user-agent": "0.3.156",
28
+ "@tramvai/module-client-hints": "1.32.1",
29
+ "@tramvai/module-router": "1.32.1",
30
+ "@tramvai/react": "1.32.1",
31
31
  "@tramvai/safe-strings": "0.4.3",
32
- "@tramvai/tokens-render": "1.30.1",
33
- "@tramvai/experiments": "1.30.1",
32
+ "@tramvai/tokens-render": "1.32.1",
33
+ "@tramvai/experiments": "1.32.1",
34
34
  "@types/loadable__server": "^5.12.6",
35
35
  "node-fetch": "^2.6.1"
36
36
  },
37
37
  "peerDependencies": {
38
38
  "@tinkoff/dippy": "0.7.35",
39
39
  "@tinkoff/utils": "^2.1.2",
40
- "@tramvai/cli": "1.30.1",
41
- "@tramvai/core": "1.30.1",
42
- "@tramvai/module-common": "1.30.1",
43
- "@tramvai/state": "1.30.1",
44
- "@tramvai/test-helpers": "1.30.1",
45
- "@tramvai/tokens-common": "1.30.1",
46
- "@tramvai/tokens-router": "1.30.1",
40
+ "@tramvai/cli": "1.32.1",
41
+ "@tramvai/core": "1.32.1",
42
+ "@tramvai/module-common": "1.32.1",
43
+ "@tramvai/state": "1.32.1",
44
+ "@tramvai/test-helpers": "1.32.1",
45
+ "@tramvai/tokens-common": "1.32.1",
46
+ "@tramvai/tokens-router": "1.32.1",
47
47
  "prop-types": "^15.6.2",
48
48
  "react": ">=16.8.0",
49
49
  "react-dom": ">=16.8.0",