@tramvai/module-page-render-mode 2.66.3 → 2.67.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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Module for force CSR mode, only connected when `@tramvai/cli` commands run with `--csr` flag
2
+ * Module for force CSR mode, only add logic when `TRAMVAI_FORCE_CLIENT_SIDE_RENDERING=true` env variable is set
3
3
  */
4
4
  export declare const ForceCSRModule: import("@tinkoff/dippy/lib/modules/module.h").ModuleClass & Partial<import("@tinkoff/dippy/lib/modules/module.h").ModuleSecretParameters> & {
5
5
  [x: string]: (...args: any[]) => {
package/lib/browser.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { declareModule, provide, commandLineListTokens } from '@tramvai/core';
2
- import { COMPONENT_REGISTRY_TOKEN } from '@tramvai/tokens-common';
2
+ import { ENV_USED_TOKEN, ENV_MANAGER_TOKEN, COMPONENT_REGISTRY_TOKEN } from '@tramvai/tokens-common';
3
3
  import { TRAMVAI_RENDER_MODE, LAYOUT_OPTIONS } from '@tramvai/tokens-render';
4
4
  import { ROUTER_TOKEN, PAGE_SERVICE_TOKEN } from '@tramvai/tokens-router';
5
5
  import { createToken } from '@tinkoff/dippy';
@@ -29,6 +29,8 @@ const FALLBACK_GROUP = '__default';
29
29
  const FALLBACK_NAME = '__csr_fallback__';
30
30
  // just some unic path
31
31
  const FALLBACK_PATH = '/__csr_fallback__/';
32
+ // env for force CSR mode
33
+ const FORCE_RENDER_ENV_KEY = 'TRAMVAI_FORCE_CLIENT_SIDE_RENDERING';
32
34
  const FALLBACK_ROUTE = {
33
35
  name: FALLBACK_NAME,
34
36
  path: FALLBACK_PATH,
@@ -38,47 +40,63 @@ const FALLBACK_ROUTE = {
38
40
  },
39
41
  };
40
42
  /**
41
- * Module for force CSR mode, only connected when `@tramvai/cli` commands run with `--csr` flag
43
+ * Module for force CSR mode, only add logic when `TRAMVAI_FORCE_CLIENT_SIDE_RENDERING=true` env variable is set
42
44
  */
43
45
  const ForceCSRModule = declareModule({
44
46
  name: 'ForceCSRModule',
45
47
  providers: [
48
+ provide({
49
+ provide: ENV_USED_TOKEN,
50
+ useValue: [{ key: FORCE_RENDER_ENV_KEY, optional: true }],
51
+ }),
46
52
  // set CSR mode globally
47
53
  provide({
48
54
  provide: TRAMVAI_RENDER_MODE,
49
- useValue: 'client',
55
+ useFactory: ({ envManager }) => envManager.get(FORCE_RENDER_ENV_KEY) === 'true' ? 'client' : 'ssr',
56
+ deps: {
57
+ envManager: ENV_MANAGER_TOKEN,
58
+ },
50
59
  }),
51
60
  // register CSR fallback component
52
61
  provide({
53
62
  provide: commandLineListTokens.listen,
54
- useFactory: ({ componentRegistry, fallback }) => {
63
+ useFactory: ({ componentRegistry, fallback, envManager }) => {
55
64
  return function addCSRFallbackCompnent() {
56
- componentRegistry.add(FALLBACK_NAME, fallback, FALLBACK_GROUP);
65
+ if (envManager.get(FORCE_RENDER_ENV_KEY) === 'true') {
66
+ componentRegistry.add(FALLBACK_NAME, fallback, FALLBACK_GROUP);
67
+ }
57
68
  };
58
69
  },
59
70
  deps: {
60
71
  componentRegistry: COMPONENT_REGISTRY_TOKEN,
61
- fallback: PAGE_RENDER_DEFAULT_FALLBACK_COMPONENT,
72
+ fallback: { token: PAGE_RENDER_DEFAULT_FALLBACK_COMPONENT, optional: true },
73
+ envManager: ENV_MANAGER_TOKEN,
62
74
  },
63
75
  }),
64
76
  // add CSR fallback route
65
77
  provide({
66
78
  provide: commandLineListTokens.customerStart,
67
- useFactory: ({ router }) => {
79
+ useFactory: ({ router, envManager }) => {
68
80
  return function addCSRFallbackRoute() {
69
- router.registerHook('beforeResolve', async () => {
70
- router.addRoute(FALLBACK_ROUTE);
71
- });
81
+ if (envManager.get(FORCE_RENDER_ENV_KEY) === 'true') {
82
+ router.registerHook('beforeResolve', async () => {
83
+ router.addRoute(FALLBACK_ROUTE);
84
+ });
85
+ }
72
86
  };
73
87
  },
74
88
  deps: {
75
89
  router: ROUTER_TOKEN,
90
+ envManager: ENV_MANAGER_TOKEN,
76
91
  },
77
92
  }),
78
93
  // tramvai static will not generate CSR fallback if /bundleInfo is not contains this route
79
94
  {
80
95
  provide: 'router bundleInfoAdditional',
81
- useValue: () => FALLBACK_ROUTE,
96
+ useFactory: ({ envManager }) => () => envManager.get(FORCE_RENDER_ENV_KEY) === 'true' ? FALLBACK_ROUTE : null,
97
+ deps: {
98
+ envManager: ENV_MANAGER_TOKEN,
99
+ },
82
100
  },
83
101
  ],
84
102
  });
@@ -157,7 +175,7 @@ const sharedProviders = [
157
175
  // @todo: перенести в @tramvai/module-render
158
176
  const PageRenderModeModule = declareModule({
159
177
  name: 'PageRenderModeModule',
160
- imports: [...(process.env.__TRAMVAI_FORCE_CLIENT_SIDE_RENDERING ? [ForceCSRModule] : [])],
178
+ imports: [ForceCSRModule],
161
179
  providers: [...sharedProviders],
162
180
  });
163
181
 
package/lib/server.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { declareModule, provide, commandLineListTokens, createToken as createToken$1, Scope, DI_TOKEN } from '@tramvai/core';
2
- import { COMPONENT_REGISTRY_TOKEN, CREATE_CACHE_TOKEN, REQUEST_MANAGER_TOKEN, LOGGER_TOKEN, RESPONSE_MANAGER_TOKEN, ENV_MANAGER_TOKEN } from '@tramvai/tokens-common';
2
+ import { ENV_USED_TOKEN, ENV_MANAGER_TOKEN, COMPONENT_REGISTRY_TOKEN, CREATE_CACHE_TOKEN, REQUEST_MANAGER_TOKEN, LOGGER_TOKEN, RESPONSE_MANAGER_TOKEN } from '@tramvai/tokens-common';
3
3
  import { TRAMVAI_RENDER_MODE, LAYOUT_OPTIONS, MODERN_SATISFIES_TOKEN } from '@tramvai/tokens-render';
4
4
  import { ROUTER_TOKEN, PAGE_SERVICE_TOKEN } from '@tramvai/tokens-router';
5
5
  import { createToken } from '@tinkoff/dippy';
@@ -38,6 +38,8 @@ const FALLBACK_GROUP = '__default';
38
38
  const FALLBACK_NAME = '__csr_fallback__';
39
39
  // just some unic path
40
40
  const FALLBACK_PATH = '/__csr_fallback__/';
41
+ // env for force CSR mode
42
+ const FORCE_RENDER_ENV_KEY = 'TRAMVAI_FORCE_CLIENT_SIDE_RENDERING';
41
43
  const FALLBACK_ROUTE = {
42
44
  name: FALLBACK_NAME,
43
45
  path: FALLBACK_PATH,
@@ -47,47 +49,63 @@ const FALLBACK_ROUTE = {
47
49
  },
48
50
  };
49
51
  /**
50
- * Module for force CSR mode, only connected when `@tramvai/cli` commands run with `--csr` flag
52
+ * Module for force CSR mode, only add logic when `TRAMVAI_FORCE_CLIENT_SIDE_RENDERING=true` env variable is set
51
53
  */
52
54
  const ForceCSRModule = declareModule({
53
55
  name: 'ForceCSRModule',
54
56
  providers: [
57
+ provide({
58
+ provide: ENV_USED_TOKEN,
59
+ useValue: [{ key: FORCE_RENDER_ENV_KEY, optional: true }],
60
+ }),
55
61
  // set CSR mode globally
56
62
  provide({
57
63
  provide: TRAMVAI_RENDER_MODE,
58
- useValue: 'client',
64
+ useFactory: ({ envManager }) => envManager.get(FORCE_RENDER_ENV_KEY) === 'true' ? 'client' : 'ssr',
65
+ deps: {
66
+ envManager: ENV_MANAGER_TOKEN,
67
+ },
59
68
  }),
60
69
  // register CSR fallback component
61
70
  provide({
62
71
  provide: commandLineListTokens.listen,
63
- useFactory: ({ componentRegistry, fallback }) => {
72
+ useFactory: ({ componentRegistry, fallback, envManager }) => {
64
73
  return function addCSRFallbackCompnent() {
65
- componentRegistry.add(FALLBACK_NAME, fallback, FALLBACK_GROUP);
74
+ if (envManager.get(FORCE_RENDER_ENV_KEY) === 'true') {
75
+ componentRegistry.add(FALLBACK_NAME, fallback, FALLBACK_GROUP);
76
+ }
66
77
  };
67
78
  },
68
79
  deps: {
69
80
  componentRegistry: COMPONENT_REGISTRY_TOKEN,
70
- fallback: PAGE_RENDER_DEFAULT_FALLBACK_COMPONENT,
81
+ fallback: { token: PAGE_RENDER_DEFAULT_FALLBACK_COMPONENT, optional: true },
82
+ envManager: ENV_MANAGER_TOKEN,
71
83
  },
72
84
  }),
73
85
  // add CSR fallback route
74
86
  provide({
75
87
  provide: commandLineListTokens.customerStart,
76
- useFactory: ({ router }) => {
88
+ useFactory: ({ router, envManager }) => {
77
89
  return function addCSRFallbackRoute() {
78
- router.registerHook('beforeResolve', async () => {
79
- router.addRoute(FALLBACK_ROUTE);
80
- });
90
+ if (envManager.get(FORCE_RENDER_ENV_KEY) === 'true') {
91
+ router.registerHook('beforeResolve', async () => {
92
+ router.addRoute(FALLBACK_ROUTE);
93
+ });
94
+ }
81
95
  };
82
96
  },
83
97
  deps: {
84
98
  router: ROUTER_TOKEN,
99
+ envManager: ENV_MANAGER_TOKEN,
85
100
  },
86
101
  }),
87
102
  // tramvai static will not generate CSR fallback if /bundleInfo is not contains this route
88
103
  {
89
104
  provide: 'router bundleInfoAdditional',
90
- useValue: () => FALLBACK_ROUTE,
105
+ useFactory: ({ envManager }) => () => envManager.get(FORCE_RENDER_ENV_KEY) === 'true' ? FALLBACK_ROUTE : null,
106
+ deps: {
107
+ envManager: ENV_MANAGER_TOKEN,
108
+ },
91
109
  },
92
110
  ],
93
111
  });
@@ -563,7 +581,7 @@ const staticPagesProviders = [
563
581
  // @todo: перенести в @tramvai/module-render
564
582
  const PageRenderModeModule = declareModule({
565
583
  name: 'PageRenderModeModule',
566
- imports: [...(process.env.__TRAMVAI_FORCE_CLIENT_SIDE_RENDERING ? [ForceCSRModule] : [])],
584
+ imports: [ForceCSRModule],
567
585
  providers: [...sharedProviders, ...staticPagesProviders],
568
586
  });
569
587
 
package/lib/server.js CHANGED
@@ -47,6 +47,8 @@ const FALLBACK_GROUP = '__default';
47
47
  const FALLBACK_NAME = '__csr_fallback__';
48
48
  // just some unic path
49
49
  const FALLBACK_PATH = '/__csr_fallback__/';
50
+ // env for force CSR mode
51
+ const FORCE_RENDER_ENV_KEY = 'TRAMVAI_FORCE_CLIENT_SIDE_RENDERING';
50
52
  const FALLBACK_ROUTE = {
51
53
  name: FALLBACK_NAME,
52
54
  path: FALLBACK_PATH,
@@ -56,47 +58,63 @@ const FALLBACK_ROUTE = {
56
58
  },
57
59
  };
58
60
  /**
59
- * Module for force CSR mode, only connected when `@tramvai/cli` commands run with `--csr` flag
61
+ * Module for force CSR mode, only add logic when `TRAMVAI_FORCE_CLIENT_SIDE_RENDERING=true` env variable is set
60
62
  */
61
63
  const ForceCSRModule = core.declareModule({
62
64
  name: 'ForceCSRModule',
63
65
  providers: [
66
+ core.provide({
67
+ provide: tokensCommon.ENV_USED_TOKEN,
68
+ useValue: [{ key: FORCE_RENDER_ENV_KEY, optional: true }],
69
+ }),
64
70
  // set CSR mode globally
65
71
  core.provide({
66
72
  provide: tokensRender.TRAMVAI_RENDER_MODE,
67
- useValue: 'client',
73
+ useFactory: ({ envManager }) => envManager.get(FORCE_RENDER_ENV_KEY) === 'true' ? 'client' : 'ssr',
74
+ deps: {
75
+ envManager: tokensCommon.ENV_MANAGER_TOKEN,
76
+ },
68
77
  }),
69
78
  // register CSR fallback component
70
79
  core.provide({
71
80
  provide: core.commandLineListTokens.listen,
72
- useFactory: ({ componentRegistry, fallback }) => {
81
+ useFactory: ({ componentRegistry, fallback, envManager }) => {
73
82
  return function addCSRFallbackCompnent() {
74
- componentRegistry.add(FALLBACK_NAME, fallback, FALLBACK_GROUP);
83
+ if (envManager.get(FORCE_RENDER_ENV_KEY) === 'true') {
84
+ componentRegistry.add(FALLBACK_NAME, fallback, FALLBACK_GROUP);
85
+ }
75
86
  };
76
87
  },
77
88
  deps: {
78
89
  componentRegistry: tokensCommon.COMPONENT_REGISTRY_TOKEN,
79
- fallback: PAGE_RENDER_DEFAULT_FALLBACK_COMPONENT,
90
+ fallback: { token: PAGE_RENDER_DEFAULT_FALLBACK_COMPONENT, optional: true },
91
+ envManager: tokensCommon.ENV_MANAGER_TOKEN,
80
92
  },
81
93
  }),
82
94
  // add CSR fallback route
83
95
  core.provide({
84
96
  provide: core.commandLineListTokens.customerStart,
85
- useFactory: ({ router }) => {
97
+ useFactory: ({ router, envManager }) => {
86
98
  return function addCSRFallbackRoute() {
87
- router.registerHook('beforeResolve', async () => {
88
- router.addRoute(FALLBACK_ROUTE);
89
- });
99
+ if (envManager.get(FORCE_RENDER_ENV_KEY) === 'true') {
100
+ router.registerHook('beforeResolve', async () => {
101
+ router.addRoute(FALLBACK_ROUTE);
102
+ });
103
+ }
90
104
  };
91
105
  },
92
106
  deps: {
93
107
  router: tokensRouter.ROUTER_TOKEN,
108
+ envManager: tokensCommon.ENV_MANAGER_TOKEN,
94
109
  },
95
110
  }),
96
111
  // tramvai static will not generate CSR fallback if /bundleInfo is not contains this route
97
112
  {
98
113
  provide: 'router bundleInfoAdditional',
99
- useValue: () => FALLBACK_ROUTE,
114
+ useFactory: ({ envManager }) => () => envManager.get(FORCE_RENDER_ENV_KEY) === 'true' ? FALLBACK_ROUTE : null,
115
+ deps: {
116
+ envManager: tokensCommon.ENV_MANAGER_TOKEN,
117
+ },
100
118
  },
101
119
  ],
102
120
  });
@@ -572,7 +590,7 @@ const staticPagesProviders = [
572
590
  // @todo: перенести в @tramvai/module-render
573
591
  const PageRenderModeModule = core.declareModule({
574
592
  name: 'PageRenderModeModule',
575
- imports: [...(process.env.__TRAMVAI_FORCE_CLIENT_SIDE_RENDERING ? [ForceCSRModule] : [])],
593
+ imports: [ForceCSRModule],
576
594
  providers: [...sharedProviders, ...staticPagesProviders],
577
595
  });
578
596
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tramvai/module-page-render-mode",
3
- "version": "2.66.3",
3
+ "version": "2.67.0",
4
4
  "description": "Enable different rendering modes for pages",
5
5
  "main": "./lib/server.js",
6
6
  "module": "./lib/server.es.js",
@@ -31,18 +31,18 @@
31
31
  "peerDependencies": {
32
32
  "@tinkoff/utils": "^2.1.2",
33
33
  "@tinkoff/dippy": "0.8.12",
34
- "@tramvai/core": "2.66.3",
35
- "@tramvai/react": "2.66.3",
36
- "@tramvai/papi": "2.66.3",
37
- "@tramvai/module-router": "2.66.3",
38
- "@tramvai/module-client-hints": "2.66.3",
39
- "@tramvai/tokens-common": "2.66.3",
40
- "@tramvai/tokens-core": "2.66.3",
41
- "@tramvai/tokens-render": "2.66.3",
42
- "@tramvai/tokens-router": "2.66.3",
43
- "@tramvai/tokens-server": "2.66.3",
44
- "@tramvai/tokens-server-private": "2.66.3",
45
- "@tramvai/tokens-metrics": "2.66.3",
34
+ "@tramvai/core": "2.67.0",
35
+ "@tramvai/react": "2.67.0",
36
+ "@tramvai/papi": "2.67.0",
37
+ "@tramvai/module-router": "2.67.0",
38
+ "@tramvai/module-client-hints": "2.67.0",
39
+ "@tramvai/tokens-common": "2.67.0",
40
+ "@tramvai/tokens-core": "2.67.0",
41
+ "@tramvai/tokens-render": "2.67.0",
42
+ "@tramvai/tokens-router": "2.67.0",
43
+ "@tramvai/tokens-server": "2.67.0",
44
+ "@tramvai/tokens-server-private": "2.67.0",
45
+ "@tramvai/tokens-metrics": "2.67.0",
46
46
  "prom-client": "^12.0.0",
47
47
  "react": ">=16.14.0",
48
48
  "tslib": "^2.4.0"