@tramvai/module-router 2.94.19 → 2.94.24

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.
@@ -4,7 +4,7 @@ export { RouterChildAppModule } from './modules/child-app.browser.js';
4
4
  export { Provider, useNavigate, useRoute, useRouter, useUrl } from '@tinkoff/router';
5
5
  export { Link } from './components/link.browser.js';
6
6
  export * from '@tramvai/tokens-router';
7
- export { generateForRoot } from './modules/utils/forRoot.browser.js';
7
+ export { generateForRoot, routerForRoot } from './modules/utils/forRoot.browser.js';
8
8
  export { RouterStore, setCurrentNavigation, setUrlOnRehydrate } from './stores/RouterStore.browser.js';
9
9
  export { PageErrorStore, deserializeError, serializeError, setPageErrorEvent } from './stores/PageErrorStore.browser.js';
10
10
  export { usePageService } from './hooks/usePageService.browser.js';
package/lib/index.d.ts CHANGED
@@ -3,7 +3,7 @@ export { RouterChildAppModule } from './modules/child-app';
3
3
  export { Provider, useNavigate, useRoute, useRouter, useUrl } from '@tinkoff/router';
4
4
  export { Link } from './components/link';
5
5
  export * from '@tramvai/tokens-router';
6
- export { generateForRoot } from './modules/utils/forRoot';
6
+ export { routerForRoot, generateForRoot } from './modules/utils/forRoot';
7
7
  export * from './stores/RouterStore';
8
8
  export * from './stores/PageErrorStore';
9
9
  export * from './hooks/usePageService';
package/lib/index.es.js CHANGED
@@ -3,7 +3,7 @@ export { RouterChildAppModule } from './modules/child-app.es.js';
3
3
  export { Provider, useNavigate, useRoute, useRouter, useUrl } from '@tinkoff/router';
4
4
  export { Link } from './components/link.es.js';
5
5
  export * from '@tramvai/tokens-router';
6
- export { generateForRoot } from './modules/utils/forRoot.es.js';
6
+ export { generateForRoot, routerForRoot } from './modules/utils/forRoot.es.js';
7
7
  export { RouterStore, setCurrentNavigation, setUrlOnRehydrate } from './stores/RouterStore.es.js';
8
8
  export { PageErrorStore, deserializeError, serializeError, setPageErrorEvent } from './stores/PageErrorStore.es.js';
9
9
  export { usePageService } from './hooks/usePageService.es.js';
package/lib/index.js CHANGED
@@ -15,10 +15,7 @@ var tokens = require('./modules/tokens.js');
15
15
 
16
16
 
17
17
 
18
- Object.defineProperty(exports, 'NoSpaRouterModule', {
19
- enumerable: true,
20
- get: function () { return server.NoSpaRouterModule; }
21
- });
18
+ exports.NoSpaRouterModule = server.NoSpaRouterModule;
22
19
  exports.SpaRouterModule = server.SpaRouterModule;
23
20
  Object.defineProperty(exports, 'RouterChildAppModule', {
24
21
  enumerable: true,
@@ -46,6 +43,7 @@ Object.defineProperty(exports, 'useUrl', {
46
43
  });
47
44
  exports.Link = link.Link;
48
45
  exports.generateForRoot = forRoot.generateForRoot;
46
+ exports.routerForRoot = forRoot.routerForRoot;
49
47
  exports.RouterStore = RouterStore.RouterStore;
50
48
  exports.setCurrentNavigation = RouterStore.setCurrentNavigation;
51
49
  exports.setUrlOnRehydrate = RouterStore.setUrlOnRehydrate;
@@ -1,5 +1,5 @@
1
1
  import flatten from '@tinkoff/utils/array/flatten';
2
- import { commandLineListTokens, provide } from '@tramvai/core';
2
+ import { provide, commandLineListTokens } from '@tramvai/core';
3
3
  import { setLogger } from '@tinkoff/router';
4
4
  import { LOGGER_TOKEN, COMPONENT_REGISTRY_TOKEN, COMBINE_REDUCERS } from '@tramvai/tokens-common';
5
5
  import { ROUTER_TOKEN, ROUTES_TOKEN, ROUTE_RESOLVE_TOKEN, ROUTER_GUARD_TOKEN, ROUTER_SPA_ACTIONS_RUN_MODE_TOKEN, PAGE_SERVICE_TOKEN } from '@tramvai/tokens-router';
@@ -16,9 +16,9 @@ const providers = [
16
16
  ...commonHooks,
17
17
  ...commonTokens,
18
18
  ...providers$1,
19
- {
19
+ provide({
20
20
  provide: ROUTER_TOKEN,
21
- useFactory: ({ RouterClass, routes, routeTransform, routeResolve, additionalParameters, }) => {
21
+ useFactory: ({ RouterClass, routes, routeTransform, routeResolve, additionalParameters }) => {
22
22
  const router = new RouterClass({
23
23
  ...additionalParameters,
24
24
  trailingSlash: true,
@@ -57,8 +57,8 @@ const providers = [
57
57
  optional: true,
58
58
  },
59
59
  },
60
- },
61
- {
60
+ }),
61
+ provide({
62
62
  provide: commandLineListTokens.customerStart,
63
63
  multi: true,
64
64
  useFactory: ({ router, guards, onChange, beforeResolve, beforeNavigate, afterNavigate, beforeUpdateCurrent, afterUpdateCurrent, }) => {
@@ -103,8 +103,8 @@ const providers = [
103
103
  optional: true,
104
104
  },
105
105
  },
106
- },
107
- {
106
+ }),
107
+ provide({
108
108
  provide: commandLineListTokens.init,
109
109
  multi: true,
110
110
  useFactory: ({ logger }) => {
@@ -115,14 +115,14 @@ const providers = [
115
115
  deps: {
116
116
  logger: LOGGER_TOKEN,
117
117
  },
118
- },
119
- {
118
+ }),
119
+ provide({
120
120
  provide: ROUTER_SPA_ACTIONS_RUN_MODE_TOKEN,
121
121
  // TODO: пока делаем after т.к. на это рассчитывает большинство приложений и у нас пока нет механизма контроля выполнения экшенов, чтобы
122
122
  // избежать случаев зависания перехода из-за долгих экшенов
123
123
  // рассмотреть возможность замены после доработок экшенов
124
124
  useValue: 'after',
125
- },
125
+ }),
126
126
  provide({
127
127
  provide: PAGE_SERVICE_TOKEN,
128
128
  useClass: PageService,
@@ -131,11 +131,11 @@ const providers = [
131
131
  componentRegistry: COMPONENT_REGISTRY_TOKEN,
132
132
  },
133
133
  }),
134
- {
134
+ provide({
135
135
  provide: COMBINE_REDUCERS,
136
136
  multi: true,
137
137
  useValue: RouterStore,
138
- },
138
+ }),
139
139
  ];
140
140
 
141
141
  export { providers };
@@ -1,5 +1,5 @@
1
1
  import flatten from '@tinkoff/utils/array/flatten';
2
- import { commandLineListTokens, provide } from '@tramvai/core';
2
+ import { provide, commandLineListTokens } from '@tramvai/core';
3
3
  import { setLogger } from '@tinkoff/router';
4
4
  import { LOGGER_TOKEN, COMPONENT_REGISTRY_TOKEN, COMBINE_REDUCERS } from '@tramvai/tokens-common';
5
5
  import { ROUTER_TOKEN, ROUTES_TOKEN, ROUTE_RESOLVE_TOKEN, ROUTER_GUARD_TOKEN, ROUTER_SPA_ACTIONS_RUN_MODE_TOKEN, PAGE_SERVICE_TOKEN } from '@tramvai/tokens-router';
@@ -16,9 +16,9 @@ const providers = [
16
16
  ...commonHooks,
17
17
  ...commonTokens,
18
18
  ...providers$1,
19
- {
19
+ provide({
20
20
  provide: ROUTER_TOKEN,
21
- useFactory: ({ RouterClass, routes, routeTransform, routeResolve, additionalParameters, }) => {
21
+ useFactory: ({ RouterClass, routes, routeTransform, routeResolve, additionalParameters }) => {
22
22
  const router = new RouterClass({
23
23
  ...additionalParameters,
24
24
  trailingSlash: true,
@@ -57,8 +57,8 @@ const providers = [
57
57
  optional: true,
58
58
  },
59
59
  },
60
- },
61
- {
60
+ }),
61
+ provide({
62
62
  provide: commandLineListTokens.customerStart,
63
63
  multi: true,
64
64
  useFactory: ({ router, guards, onChange, beforeResolve, beforeNavigate, afterNavigate, beforeUpdateCurrent, afterUpdateCurrent, }) => {
@@ -103,8 +103,8 @@ const providers = [
103
103
  optional: true,
104
104
  },
105
105
  },
106
- },
107
- {
106
+ }),
107
+ provide({
108
108
  provide: commandLineListTokens.init,
109
109
  multi: true,
110
110
  useFactory: ({ logger }) => {
@@ -115,14 +115,14 @@ const providers = [
115
115
  deps: {
116
116
  logger: LOGGER_TOKEN,
117
117
  },
118
- },
119
- {
118
+ }),
119
+ provide({
120
120
  provide: ROUTER_SPA_ACTIONS_RUN_MODE_TOKEN,
121
121
  // TODO: пока делаем after т.к. на это рассчитывает большинство приложений и у нас пока нет механизма контроля выполнения экшенов, чтобы
122
122
  // избежать случаев зависания перехода из-за долгих экшенов
123
123
  // рассмотреть возможность замены после доработок экшенов
124
124
  useValue: 'after',
125
- },
125
+ }),
126
126
  provide({
127
127
  provide: PAGE_SERVICE_TOKEN,
128
128
  useClass: PageService,
@@ -131,11 +131,11 @@ const providers = [
131
131
  componentRegistry: COMPONENT_REGISTRY_TOKEN,
132
132
  },
133
133
  }),
134
- {
134
+ provide({
135
135
  provide: COMBINE_REDUCERS,
136
136
  multi: true,
137
137
  useValue: RouterStore,
138
- },
138
+ }),
139
139
  ];
140
140
 
141
141
  export { providers };
@@ -24,9 +24,9 @@ const providers = [
24
24
  ...index$1.commonHooks,
25
25
  ...index$2.commonTokens,
26
26
  ...fileSystemPages.providers,
27
- {
27
+ core.provide({
28
28
  provide: tokensRouter.ROUTER_TOKEN,
29
- useFactory: ({ RouterClass, routes, routeTransform, routeResolve, additionalParameters, }) => {
29
+ useFactory: ({ RouterClass, routes, routeTransform, routeResolve, additionalParameters }) => {
30
30
  const router = new RouterClass({
31
31
  ...additionalParameters,
32
32
  trailingSlash: true,
@@ -65,8 +65,8 @@ const providers = [
65
65
  optional: true,
66
66
  },
67
67
  },
68
- },
69
- {
68
+ }),
69
+ core.provide({
70
70
  provide: core.commandLineListTokens.customerStart,
71
71
  multi: true,
72
72
  useFactory: ({ router, guards, onChange, beforeResolve, beforeNavigate, afterNavigate, beforeUpdateCurrent, afterUpdateCurrent, }) => {
@@ -111,8 +111,8 @@ const providers = [
111
111
  optional: true,
112
112
  },
113
113
  },
114
- },
115
- {
114
+ }),
115
+ core.provide({
116
116
  provide: core.commandLineListTokens.init,
117
117
  multi: true,
118
118
  useFactory: ({ logger }) => {
@@ -123,14 +123,14 @@ const providers = [
123
123
  deps: {
124
124
  logger: tokensCommon.LOGGER_TOKEN,
125
125
  },
126
- },
127
- {
126
+ }),
127
+ core.provide({
128
128
  provide: tokensRouter.ROUTER_SPA_ACTIONS_RUN_MODE_TOKEN,
129
129
  // TODO: пока делаем after т.к. на это рассчитывает большинство приложений и у нас пока нет механизма контроля выполнения экшенов, чтобы
130
130
  // избежать случаев зависания перехода из-за долгих экшенов
131
131
  // рассмотреть возможность замены после доработок экшенов
132
132
  useValue: 'after',
133
- },
133
+ }),
134
134
  core.provide({
135
135
  provide: tokensRouter.PAGE_SERVICE_TOKEN,
136
136
  useClass: page.PageService,
@@ -139,11 +139,11 @@ const providers = [
139
139
  componentRegistry: tokensCommon.COMPONENT_REGISTRY_TOKEN,
140
140
  },
141
141
  }),
142
- {
142
+ core.provide({
143
143
  provide: tokensCommon.COMBINE_REDUCERS,
144
144
  multi: true,
145
145
  useValue: RouterStore.RouterStore,
146
- },
146
+ }),
147
147
  ];
148
148
 
149
149
  exports.providers = providers;
@@ -1,21 +1,26 @@
1
- import { Module } from '@tramvai/core';
1
+ import { declareModule, provide } from '@tramvai/core';
2
2
  import { NoSpaRouter } from '@tinkoff/router';
3
+ import { ROUTER_MODE_TOKEN } from '@tramvai/tokens-router';
3
4
  import { providers } from './clientCommon.browser.js';
4
- import { generateForRoot } from './utils/forRoot.browser.js';
5
+ import { routerForRoot } from './utils/forRoot.browser.js';
5
6
  import { routerClassToken } from './tokens.browser.js';
6
7
 
7
- var _a;
8
- const NoSpaRouterModule = /* @__PURE__ */ Module({
8
+ const NoSpaRouterModule = /* @__PURE__ */ declareModule({
9
+ name: 'NoSpaRouterModule',
9
10
  providers: [
10
11
  ...providers,
11
- {
12
+ provide({
12
13
  provide: routerClassToken,
13
14
  useValue: NoSpaRouter,
14
- },
15
+ }),
16
+ provide({
17
+ provide: ROUTER_MODE_TOKEN,
18
+ useValue: 'no-spa',
19
+ }),
15
20
  ],
16
- })((_a = class NoSpaRouterModule {
21
+ extend: {
22
+ forRoot: routerForRoot,
17
23
  },
18
- _a.forRoot = generateForRoot(_a),
19
- _a));
24
+ });
20
25
 
21
26
  export { NoSpaRouterModule };
@@ -1,4 +1,9 @@
1
- export declare const NoSpaRouterModule: import("@tramvai/core").ModuleType<{
2
- new (): {};
3
- forRoot: any;
4
- }>;
1
+ export declare const NoSpaRouterModule: import("@tinkoff/dippy/lib/modules/module.h").ModuleClass & Partial<import("@tinkoff/dippy/lib/modules/module.h").ModuleSecretParameters> & {
2
+ forRoot: (routes: import("@tinkoff/router").Route[], options?: {
3
+ spaActionsMode?: ("before" & {
4
+ __type?: "base token";
5
+ }) | ("after" & {
6
+ __type?: "base token";
7
+ });
8
+ }) => import("@tramvai/core").ModuleType<import("@tinkoff/dippy/lib/modules/module.h").ModuleClass>;
9
+ };
@@ -1,13 +1,18 @@
1
- export declare class NoSpaRouterModule {
2
- static forRoot: (routes: import("@tinkoff/router").Route[], options?: {
1
+ export declare const NoSpaRouterModule: import("@tinkoff/dippy/lib/modules/module.h").ModuleClass & Partial<import("@tinkoff/dippy/lib/modules/module.h").ModuleSecretParameters> & {
2
+ forRoot: (routes: import("@tinkoff/router").Route[], options?: {
3
3
  spaActionsMode?: ("before" & {
4
4
  __type?: "base token";
5
5
  }) | ("after" & {
6
6
  __type?: "base token";
7
7
  });
8
- }) => {
9
- mainModule: typeof NoSpaRouterModule;
10
- providers: import("@tramvai/core").Provider<any, any>[];
11
- };
12
- }
13
- export declare const SpaRouterModule: typeof NoSpaRouterModule;
8
+ }) => import("@tramvai/core").ModuleType<import("@tinkoff/dippy/lib/modules/module.h").ModuleClass>;
9
+ };
10
+ export declare const SpaRouterModule: import("@tinkoff/dippy/lib/modules/module.h").ModuleClass & Partial<import("@tinkoff/dippy/lib/modules/module.h").ModuleSecretParameters> & {
11
+ forRoot: (routes: import("@tinkoff/router").Route[], options?: {
12
+ spaActionsMode?: ("before" & {
13
+ __type?: "base token";
14
+ }) | ("after" & {
15
+ __type?: "base token";
16
+ });
17
+ }) => import("@tramvai/core").ModuleType<import("@tinkoff/dippy/lib/modules/module.h").ModuleClass>;
18
+ };
@@ -1,59 +1,72 @@
1
- import { __decorate } from 'tslib';
2
- import { Module, commandLineListTokens } from '@tramvai/core';
1
+ import { declareModule, provide, commandLineListTokens } from '@tramvai/core';
3
2
  import { Router } from '@tinkoff/router';
4
3
  import { REQUEST_MANAGER_TOKEN, STORE_TOKEN, ACTION_REGISTRY_TOKEN, ACTION_PAGE_RUNNER_TOKEN } from '@tramvai/tokens-common';
5
- import { ROUTER_TOKEN } from '@tramvai/tokens-router';
4
+ import { ROUTER_TOKEN, ROUTER_MODE_TOKEN } from '@tramvai/tokens-router';
6
5
  import { providers } from './common.es.js';
7
6
  import { routerClassToken } from './tokens.es.js';
8
7
  import { serverGuards } from './guards/server/index.es.js';
9
8
  import { runActionsFactory } from './hooks/runActions.es.js';
10
9
  import { serverHooks } from './hooks/server/index.es.js';
11
10
  import { serverTokens } from './tokens/server/index.es.js';
12
- import { generateForRoot } from './utils/forRoot.es.js';
11
+ import { routerForRoot } from './utils/forRoot.es.js';
13
12
 
14
- var NoSpaRouterModule_1;
15
- let NoSpaRouterModule = NoSpaRouterModule_1 = class NoSpaRouterModule {
16
- };
17
- NoSpaRouterModule.forRoot = generateForRoot(NoSpaRouterModule_1);
18
- NoSpaRouterModule = NoSpaRouterModule_1 = __decorate([
19
- Module({
20
- providers: [
21
- ...providers,
22
- ...serverGuards,
23
- ...serverHooks,
24
- ...serverTokens,
25
- {
26
- provide: routerClassToken,
27
- useValue: Router,
13
+ const NoSpaRouterModule = declareModule({
14
+ name: 'NoSpaRouterModule',
15
+ providers: [
16
+ ...providers,
17
+ ...serverGuards,
18
+ ...serverHooks,
19
+ ...serverTokens,
20
+ provide({
21
+ provide: routerClassToken,
22
+ useValue: Router,
23
+ }),
24
+ provide({
25
+ provide: commandLineListTokens.resolveUserDeps,
26
+ multi: true,
27
+ useFactory: ({ router, requestManager }) => {
28
+ return function routerInit() {
29
+ return router.navigate(requestManager.getUrl());
30
+ };
28
31
  },
29
- {
30
- provide: commandLineListTokens.resolveUserDeps,
31
- multi: true,
32
- useFactory: ({ router, requestManager }) => {
33
- return function routerInit() {
34
- return router.navigate(requestManager.getUrl());
35
- };
36
- },
37
- deps: {
38
- router: ROUTER_TOKEN,
39
- requestManager: REQUEST_MANAGER_TOKEN,
40
- },
32
+ deps: {
33
+ router: ROUTER_TOKEN,
34
+ requestManager: REQUEST_MANAGER_TOKEN,
41
35
  },
42
- {
43
- // запускаем экшены отдельно от самого роутинга, чтобы распараллелить задачи
44
- provide: commandLineListTokens.resolvePageDeps,
45
- multi: true,
46
- useFactory: runActionsFactory,
47
- deps: {
48
- store: STORE_TOKEN,
49
- router: ROUTER_TOKEN,
50
- actionRegistry: ACTION_REGISTRY_TOKEN,
51
- actionPageRunner: ACTION_PAGE_RUNNER_TOKEN,
52
- },
36
+ }),
37
+ provide({
38
+ // запускаем экшены отдельно от самого роутинга, чтобы распараллелить задачи
39
+ provide: commandLineListTokens.resolvePageDeps,
40
+ multi: true,
41
+ useFactory: runActionsFactory,
42
+ deps: {
43
+ store: STORE_TOKEN,
44
+ router: ROUTER_TOKEN,
45
+ actionRegistry: ACTION_REGISTRY_TOKEN,
46
+ actionPageRunner: ACTION_PAGE_RUNNER_TOKEN,
53
47
  },
54
- ],
55
- })
56
- ], NoSpaRouterModule);
57
- const SpaRouterModule = NoSpaRouterModule;
48
+ }),
49
+ provide({
50
+ provide: ROUTER_MODE_TOKEN,
51
+ useValue: 'no-spa',
52
+ }),
53
+ ],
54
+ extend: {
55
+ forRoot: routerForRoot,
56
+ },
57
+ });
58
+ const SpaRouterModule = declareModule({
59
+ name: 'SpaRouterModule',
60
+ imports: [NoSpaRouterModule],
61
+ providers: [
62
+ provide({
63
+ provide: ROUTER_MODE_TOKEN,
64
+ useValue: 'spa',
65
+ }),
66
+ ],
67
+ extend: {
68
+ forRoot: routerForRoot,
69
+ },
70
+ });
58
71
 
59
72
  export { NoSpaRouterModule, SpaRouterModule };
@@ -2,7 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var tslib = require('tslib');
6
5
  var core = require('@tramvai/core');
7
6
  var router = require('@tinkoff/router');
8
7
  var tokensCommon = require('@tramvai/tokens-common');
@@ -15,49 +14,64 @@ var index$1 = require('./hooks/server/index.js');
15
14
  var index$2 = require('./tokens/server/index.js');
16
15
  var forRoot = require('./utils/forRoot.js');
17
16
 
18
- var NoSpaRouterModule_1;
19
- exports.NoSpaRouterModule = NoSpaRouterModule_1 = class NoSpaRouterModule {
20
- };
21
- exports.NoSpaRouterModule.forRoot = forRoot.generateForRoot(NoSpaRouterModule_1);
22
- exports.NoSpaRouterModule = NoSpaRouterModule_1 = tslib.__decorate([
23
- core.Module({
24
- providers: [
25
- ...common.providers,
26
- ...index.serverGuards,
27
- ...index$1.serverHooks,
28
- ...index$2.serverTokens,
29
- {
30
- provide: tokens.routerClassToken,
31
- useValue: router.Router,
17
+ const NoSpaRouterModule = core.declareModule({
18
+ name: 'NoSpaRouterModule',
19
+ providers: [
20
+ ...common.providers,
21
+ ...index.serverGuards,
22
+ ...index$1.serverHooks,
23
+ ...index$2.serverTokens,
24
+ core.provide({
25
+ provide: tokens.routerClassToken,
26
+ useValue: router.Router,
27
+ }),
28
+ core.provide({
29
+ provide: core.commandLineListTokens.resolveUserDeps,
30
+ multi: true,
31
+ useFactory: ({ router, requestManager }) => {
32
+ return function routerInit() {
33
+ return router.navigate(requestManager.getUrl());
34
+ };
32
35
  },
33
- {
34
- provide: core.commandLineListTokens.resolveUserDeps,
35
- multi: true,
36
- useFactory: ({ router, requestManager }) => {
37
- return function routerInit() {
38
- return router.navigate(requestManager.getUrl());
39
- };
40
- },
41
- deps: {
42
- router: tokensRouter.ROUTER_TOKEN,
43
- requestManager: tokensCommon.REQUEST_MANAGER_TOKEN,
44
- },
36
+ deps: {
37
+ router: tokensRouter.ROUTER_TOKEN,
38
+ requestManager: tokensCommon.REQUEST_MANAGER_TOKEN,
45
39
  },
46
- {
47
- // запускаем экшены отдельно от самого роутинга, чтобы распараллелить задачи
48
- provide: core.commandLineListTokens.resolvePageDeps,
49
- multi: true,
50
- useFactory: runActions.runActionsFactory,
51
- deps: {
52
- store: tokensCommon.STORE_TOKEN,
53
- router: tokensRouter.ROUTER_TOKEN,
54
- actionRegistry: tokensCommon.ACTION_REGISTRY_TOKEN,
55
- actionPageRunner: tokensCommon.ACTION_PAGE_RUNNER_TOKEN,
56
- },
40
+ }),
41
+ core.provide({
42
+ // запускаем экшены отдельно от самого роутинга, чтобы распараллелить задачи
43
+ provide: core.commandLineListTokens.resolvePageDeps,
44
+ multi: true,
45
+ useFactory: runActions.runActionsFactory,
46
+ deps: {
47
+ store: tokensCommon.STORE_TOKEN,
48
+ router: tokensRouter.ROUTER_TOKEN,
49
+ actionRegistry: tokensCommon.ACTION_REGISTRY_TOKEN,
50
+ actionPageRunner: tokensCommon.ACTION_PAGE_RUNNER_TOKEN,
57
51
  },
58
- ],
59
- })
60
- ], exports.NoSpaRouterModule);
61
- const SpaRouterModule = exports.NoSpaRouterModule;
52
+ }),
53
+ core.provide({
54
+ provide: tokensRouter.ROUTER_MODE_TOKEN,
55
+ useValue: 'no-spa',
56
+ }),
57
+ ],
58
+ extend: {
59
+ forRoot: forRoot.routerForRoot,
60
+ },
61
+ });
62
+ const SpaRouterModule = core.declareModule({
63
+ name: 'SpaRouterModule',
64
+ imports: [NoSpaRouterModule],
65
+ providers: [
66
+ core.provide({
67
+ provide: tokensRouter.ROUTER_MODE_TOKEN,
68
+ useValue: 'spa',
69
+ }),
70
+ ],
71
+ extend: {
72
+ forRoot: forRoot.routerForRoot,
73
+ },
74
+ });
62
75
 
76
+ exports.NoSpaRouterModule = NoSpaRouterModule;
63
77
  exports.SpaRouterModule = SpaRouterModule;
@@ -1,23 +1,28 @@
1
- import { Module } from '@tramvai/core';
1
+ import { declareModule, provide } from '@tramvai/core';
2
2
  import { Router } from '@tinkoff/router';
3
+ import { ROUTER_MODE_TOKEN } from '@tramvai/tokens-router';
3
4
  import { providers } from './clientCommon.browser.js';
4
5
  import { routerClassToken } from './tokens.browser.js';
5
6
  import { spaHooks } from './hooks/spa/index.browser.js';
6
- import { generateForRoot } from './utils/forRoot.browser.js';
7
+ import { routerForRoot } from './utils/forRoot.browser.js';
7
8
 
8
- var _a;
9
- const SpaRouterModule = /* @__PURE__ */ Module({
9
+ const SpaRouterModule = /* @__PURE__ */ declareModule({
10
+ name: 'SpaRouterModule',
10
11
  providers: [
11
12
  ...providers,
12
13
  ...spaHooks,
13
- {
14
+ provide({
14
15
  provide: routerClassToken,
15
16
  useValue: Router,
16
- },
17
+ }),
18
+ provide({
19
+ provide: ROUTER_MODE_TOKEN,
20
+ useValue: 'spa',
21
+ }),
17
22
  ],
18
- })((_a = class SpaRouterModule {
23
+ extend: {
24
+ forRoot: routerForRoot,
19
25
  },
20
- _a.forRoot = generateForRoot(_a),
21
- _a));
26
+ });
22
27
 
23
28
  export { SpaRouterModule };
@@ -1,4 +1,9 @@
1
- export declare const SpaRouterModule: import("@tramvai/core").ModuleType<{
2
- new (): {};
3
- forRoot: any;
4
- }>;
1
+ export declare const SpaRouterModule: import("@tinkoff/dippy/lib/modules/module.h").ModuleClass & Partial<import("@tinkoff/dippy/lib/modules/module.h").ModuleSecretParameters> & {
2
+ forRoot: (routes: import("@tinkoff/router").Route[], options?: {
3
+ spaActionsMode?: ("before" & {
4
+ __type?: "base token";
5
+ }) | ("after" & {
6
+ __type?: "base token";
7
+ });
8
+ }) => import("@tramvai/core").ModuleType<import("@tinkoff/dippy/lib/modules/module.h").ModuleClass>;
9
+ };
@@ -1,6 +1,6 @@
1
1
  import type { NavigationHook, AbstractRouter, NavigationSyncHook, Route } from '@tinkoff/router';
2
2
  import type { RouteTransform } from '@tramvai/tokens-router';
3
- export declare const routerClassToken: AbstractRouter & {
3
+ export declare const routerClassToken: (new (args_0: import("@tinkoff/router").Options) => AbstractRouter) & {
4
4
  __type?: "base token";
5
5
  };
6
6
  export declare const additionalRouterParameters: Record<string, any> & {
@@ -1,22 +1,26 @@
1
1
  import { ROUTES_TOKEN, ROUTER_SPA_ACTIONS_RUN_MODE_TOKEN } from '@tramvai/tokens-router';
2
2
 
3
+ const routerForRoot = (routes, options = {}) => {
4
+ return [
5
+ {
6
+ provide: ROUTES_TOKEN,
7
+ multi: true,
8
+ useValue: routes,
9
+ },
10
+ options.spaActionsMode && {
11
+ provide: ROUTER_SPA_ACTIONS_RUN_MODE_TOKEN,
12
+ useValue: options.spaActionsMode,
13
+ },
14
+ ].filter(Boolean);
15
+ };
16
+ // @TODO: tramvai@3 remove in next major release
3
17
  const generateForRoot = (mainModule) => {
4
18
  return (routes, options = {}) => {
5
19
  return {
6
20
  mainModule,
7
- providers: [
8
- {
9
- provide: ROUTES_TOKEN,
10
- multi: true,
11
- useValue: routes,
12
- },
13
- options.spaActionsMode && {
14
- provide: ROUTER_SPA_ACTIONS_RUN_MODE_TOKEN,
15
- useValue: options.spaActionsMode,
16
- },
17
- ].filter(Boolean),
21
+ providers: routerForRoot(routes, options),
18
22
  };
19
23
  };
20
24
  };
21
25
 
22
- export { generateForRoot };
26
+ export { generateForRoot, routerForRoot };
@@ -1,6 +1,9 @@
1
1
  import type { Provider } from '@tinkoff/dippy';
2
2
  import type { Route } from '@tinkoff/router';
3
3
  import { ROUTER_SPA_ACTIONS_RUN_MODE_TOKEN } from '@tramvai/tokens-router';
4
+ export declare const routerForRoot: (routes: Route[], options?: {
5
+ spaActionsMode?: typeof ROUTER_SPA_ACTIONS_RUN_MODE_TOKEN;
6
+ }) => Provider[];
4
7
  type ForRoot<T = any> = (routes: Route[], options?: {
5
8
  spaActionsMode?: typeof ROUTER_SPA_ACTIONS_RUN_MODE_TOKEN;
6
9
  }) => {
@@ -1,22 +1,26 @@
1
1
  import { ROUTES_TOKEN, ROUTER_SPA_ACTIONS_RUN_MODE_TOKEN } from '@tramvai/tokens-router';
2
2
 
3
+ const routerForRoot = (routes, options = {}) => {
4
+ return [
5
+ {
6
+ provide: ROUTES_TOKEN,
7
+ multi: true,
8
+ useValue: routes,
9
+ },
10
+ options.spaActionsMode && {
11
+ provide: ROUTER_SPA_ACTIONS_RUN_MODE_TOKEN,
12
+ useValue: options.spaActionsMode,
13
+ },
14
+ ].filter(Boolean);
15
+ };
16
+ // @TODO: tramvai@3 remove in next major release
3
17
  const generateForRoot = (mainModule) => {
4
18
  return (routes, options = {}) => {
5
19
  return {
6
20
  mainModule,
7
- providers: [
8
- {
9
- provide: ROUTES_TOKEN,
10
- multi: true,
11
- useValue: routes,
12
- },
13
- options.spaActionsMode && {
14
- provide: ROUTER_SPA_ACTIONS_RUN_MODE_TOKEN,
15
- useValue: options.spaActionsMode,
16
- },
17
- ].filter(Boolean),
21
+ providers: routerForRoot(routes, options),
18
22
  };
19
23
  };
20
24
  };
21
25
 
22
- export { generateForRoot };
26
+ export { generateForRoot, routerForRoot };
@@ -4,23 +4,28 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tokensRouter = require('@tramvai/tokens-router');
6
6
 
7
+ const routerForRoot = (routes, options = {}) => {
8
+ return [
9
+ {
10
+ provide: tokensRouter.ROUTES_TOKEN,
11
+ multi: true,
12
+ useValue: routes,
13
+ },
14
+ options.spaActionsMode && {
15
+ provide: tokensRouter.ROUTER_SPA_ACTIONS_RUN_MODE_TOKEN,
16
+ useValue: options.spaActionsMode,
17
+ },
18
+ ].filter(Boolean);
19
+ };
20
+ // @TODO: tramvai@3 remove in next major release
7
21
  const generateForRoot = (mainModule) => {
8
22
  return (routes, options = {}) => {
9
23
  return {
10
24
  mainModule,
11
- providers: [
12
- {
13
- provide: tokensRouter.ROUTES_TOKEN,
14
- multi: true,
15
- useValue: routes,
16
- },
17
- options.spaActionsMode && {
18
- provide: tokensRouter.ROUTER_SPA_ACTIONS_RUN_MODE_TOKEN,
19
- useValue: options.spaActionsMode,
20
- },
21
- ].filter(Boolean),
25
+ providers: routerForRoot(routes, options),
22
26
  };
23
27
  };
24
28
  };
25
29
 
26
30
  exports.generateForRoot = generateForRoot;
31
+ exports.routerForRoot = routerForRoot;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tramvai/module-router",
3
- "version": "2.94.19",
3
+ "version": "2.94.24",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "browser": {
@@ -28,24 +28,24 @@
28
28
  "@tinkoff/errors": "0.3.8",
29
29
  "@tinkoff/router": "0.2.14",
30
30
  "@tinkoff/url": "0.8.6",
31
- "@tramvai/react": "2.94.19",
32
- "@tramvai/tokens-child-app": "2.94.19",
33
- "@tramvai/tokens-render": "2.94.19",
34
- "@tramvai/tokens-router": "2.94.19",
35
- "@tramvai/tokens-server": "2.94.19",
36
- "@tramvai/experiments": "2.94.19"
31
+ "@tramvai/react": "2.94.24",
32
+ "@tramvai/tokens-child-app": "2.94.24",
33
+ "@tramvai/tokens-render": "2.94.24",
34
+ "@tramvai/tokens-router": "2.94.24",
35
+ "@tramvai/tokens-server": "2.94.24",
36
+ "@tramvai/experiments": "2.94.24"
37
37
  },
38
38
  "peerDependencies": {
39
39
  "@tinkoff/utils": "^2.1.2",
40
- "@tramvai/cli": "2.94.19",
41
- "@tramvai/core": "2.94.19",
42
- "@tramvai/module-log": "2.94.19",
43
- "@tramvai/module-server": "2.94.19",
44
- "@tramvai/papi": "2.94.19",
45
- "@tramvai/state": "2.94.19",
46
- "@tramvai/test-helpers": "2.94.19",
47
- "@tramvai/test-mocks": "2.94.19",
48
- "@tramvai/tokens-common": "2.94.19",
40
+ "@tramvai/cli": "2.94.24",
41
+ "@tramvai/core": "2.94.24",
42
+ "@tramvai/module-log": "2.94.24",
43
+ "@tramvai/module-server": "2.94.24",
44
+ "@tramvai/papi": "2.94.24",
45
+ "@tramvai/state": "2.94.24",
46
+ "@tramvai/test-helpers": "2.94.24",
47
+ "@tramvai/test-mocks": "2.94.24",
48
+ "@tramvai/tokens-common": "2.94.24",
49
49
  "@tinkoff/dippy": "0.8.15",
50
50
  "react": "*",
51
51
  "tslib": "^2.4.0"