@tramvai/module-router 5.50.0 → 6.59.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/__migrations__/1-link-from-module.js +27 -41
- package/__migrations__/d2025-05-29b-view-transitions-hook-expansion.js +31 -0
- package/__migrations__/d2025-05-30b-view-transitions-provider-expansion.js +78 -0
- package/lib/components/link.browser.js +9 -2
- package/lib/components/link.d.ts +4 -0
- package/lib/components/link.es.js +9 -2
- package/lib/components/link.js +9 -2
- package/lib/index.browser.js +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.es.js +1 -1
- package/lib/index.js +3 -0
- package/lib/modules/common.browser.js +8 -3
- package/lib/modules/common.es.js +8 -3
- package/lib/modules/common.js +7 -2
- package/lib/modules/tokens/common/pageRegistry.browser.js +6 -0
- package/lib/modules/tokens/common/pageRegistry.es.js +6 -0
- package/lib/modules/tokens/common/pageRegistry.js +6 -0
- package/lib/modules/tokens/common/pageService.browser.js +2 -0
- package/lib/modules/tokens/common/pageService.es.js +2 -0
- package/lib/modules/tokens/common/pageService.js +2 -0
- package/lib/modules/tokens.browser.js +3 -2
- package/lib/modules/tokens.d.ts +5 -0
- package/lib/modules/tokens.es.js +2 -1
- package/lib/modules/tokens.js +2 -0
- package/package.json +21 -21
|
@@ -1,49 +1,35 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
3
|
+
var _1LinkFromModule = async (api) => {
|
|
4
|
+
await api.transform(({ source }, { j }, { printOptions }) => {
|
|
5
|
+
const parsed = j(source);
|
|
6
|
+
const routerLibImport = parsed.find(j.ImportDeclaration, {
|
|
7
|
+
source: { value: '@tinkoff/router' },
|
|
8
|
+
});
|
|
9
|
+
if (routerLibImport) {
|
|
10
|
+
let linkImportSpecifier;
|
|
11
|
+
routerLibImport.forEach((p) => {
|
|
12
|
+
p.node.specifiers?.forEach((specifier) => {
|
|
13
|
+
if ('imported' in specifier && specifier.imported.name === 'Link') {
|
|
14
|
+
linkImportSpecifier = specifier;
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
if (linkImportSpecifier) {
|
|
19
|
+
routerLibImport.forEach((p) => {
|
|
20
|
+
// eslint-disable-next-line no-param-reassign
|
|
21
|
+
p.node.specifiers = p.node.specifiers?.filter((specifier) => {
|
|
22
|
+
return !('imported' in specifier && specifier.imported.name === 'Link');
|
|
15
23
|
});
|
|
16
|
-
if (
|
|
17
|
-
|
|
18
|
-
routerLibImport.forEach(function (p) {
|
|
19
|
-
var _a;
|
|
20
|
-
(_a = p.node.specifiers) === null || _a === void 0 ? void 0 : _a.forEach(function (specifier) {
|
|
21
|
-
if ('imported' in specifier && specifier.imported.name === 'Link') {
|
|
22
|
-
linkImportSpecifier_1 = specifier;
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
if (linkImportSpecifier_1) {
|
|
27
|
-
routerLibImport.forEach(function (p) {
|
|
28
|
-
var _a, _b;
|
|
29
|
-
// eslint-disable-next-line no-param-reassign
|
|
30
|
-
p.node.specifiers = (_a = p.node.specifiers) === null || _a === void 0 ? void 0 : _a.filter(function (specifier) {
|
|
31
|
-
return !('imported' in specifier && specifier.imported.name === 'Link');
|
|
32
|
-
});
|
|
33
|
-
if (((_b = p.node.specifiers) === null || _b === void 0 ? void 0 : _b.length) === 0) {
|
|
34
|
-
routerLibImport.remove();
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
parsed.addImport(j.importDeclaration([linkImportSpecifier_1], j.stringLiteral('@tramvai/module-router')));
|
|
38
|
-
return parsed.toSource(printOptions);
|
|
39
|
-
}
|
|
24
|
+
if (p.node.specifiers?.length === 0) {
|
|
25
|
+
routerLibImport.remove();
|
|
40
26
|
}
|
|
41
|
-
})
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
27
|
+
});
|
|
28
|
+
parsed.addImport(j.importDeclaration([linkImportSpecifier], j.stringLiteral('@tramvai/module-router')));
|
|
29
|
+
return parsed.toSource(printOptions);
|
|
30
|
+
}
|
|
45
31
|
}
|
|
46
32
|
});
|
|
47
|
-
}
|
|
33
|
+
};
|
|
48
34
|
|
|
49
35
|
module.exports = _1LinkFromModule;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var d20250529bViewTransitionsHookExpansion = async (api) => {
|
|
4
|
+
await api.transform(({ source }, { j }, { printOptions }) => {
|
|
5
|
+
const parsed = j(source);
|
|
6
|
+
const variableDeclarators = parsed.find(j.VariableDeclarator).filter((path) => {
|
|
7
|
+
const { node } = path;
|
|
8
|
+
if (node.id.type !== 'Identifier') {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
if (!node.init || node.init.type !== 'CallExpression') {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
const { callee } = node.init;
|
|
15
|
+
return callee.type === 'Identifier' && callee.name === 'useViewTransition';
|
|
16
|
+
});
|
|
17
|
+
variableDeclarators.forEach((path) => {
|
|
18
|
+
const { node } = path;
|
|
19
|
+
const variableName = node.id.name;
|
|
20
|
+
const targetVarName = 'isTransitioning';
|
|
21
|
+
const objectProperty = j.property('init', j.identifier(targetVarName), j.identifier(variableName));
|
|
22
|
+
const newDeclarator = j.variableDeclarator(j.objectPattern([objectProperty]), node.init);
|
|
23
|
+
j(path).replaceWith(newDeclarator);
|
|
24
|
+
});
|
|
25
|
+
if (variableDeclarators.length) {
|
|
26
|
+
return parsed.toSource(printOptions);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
module.exports = d20250529bViewTransitionsHookExpansion;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _import = require('@tramvai/tools-migrate/lib/transform/import');
|
|
4
|
+
|
|
5
|
+
// eslint-disable-next-line import/no-extraneous-dependencies,no-restricted-imports
|
|
6
|
+
const TOKEN_NAME = 'ROUTER_VIEW_TRANSITIONS_ENABLED';
|
|
7
|
+
const MODULE_IMPORT = '@tramvai/module-router';
|
|
8
|
+
const checkForExistingProvider = (providersArray) => {
|
|
9
|
+
return providersArray.elements.some((element) => {
|
|
10
|
+
if (element &&
|
|
11
|
+
element.type === 'CallExpression' &&
|
|
12
|
+
element.callee.type === 'Identifier' &&
|
|
13
|
+
element.callee.name === 'provide') {
|
|
14
|
+
const configArg = element.arguments[0];
|
|
15
|
+
if (configArg && configArg.type === 'ObjectExpression') {
|
|
16
|
+
return configArg.properties.some((prop) => prop.key.name === 'provide' &&
|
|
17
|
+
prop.value.type === 'Identifier' &&
|
|
18
|
+
prop.value.name === TOKEN_NAME);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return false;
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
const addNewProvider = (providersArray, j) => {
|
|
25
|
+
const newProvider = j.callExpression(j.identifier('provide'), [
|
|
26
|
+
j.objectExpression([
|
|
27
|
+
j.property('init', j.identifier('provide'), j.identifier(TOKEN_NAME)),
|
|
28
|
+
j.property('init', j.identifier('useValue'), j.literal(true)),
|
|
29
|
+
]),
|
|
30
|
+
]);
|
|
31
|
+
providersArray.elements.push(newProvider);
|
|
32
|
+
};
|
|
33
|
+
const processConfigObject = (configObject, parsed, j) => {
|
|
34
|
+
const providersProperty = configObject.properties.find((prop) => prop.type === 'ObjectProperty' &&
|
|
35
|
+
prop.key.type === 'Identifier' &&
|
|
36
|
+
prop.key.name === 'providers');
|
|
37
|
+
if (providersProperty && providersProperty.value.type === 'ArrayExpression') {
|
|
38
|
+
const providersArray = providersProperty.value;
|
|
39
|
+
const hasExistingProvider = checkForExistingProvider(providersArray);
|
|
40
|
+
if (!hasExistingProvider) {
|
|
41
|
+
addNewProvider(providersArray, j);
|
|
42
|
+
_import.addImport.call(parsed, j.importDeclaration([j.importSpecifier(j.identifier(TOKEN_NAME))], j.literal(MODULE_IMPORT)));
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return false;
|
|
47
|
+
};
|
|
48
|
+
var d20250530bViewTransitionsProviderExpansion = async (api) => {
|
|
49
|
+
await api.transform(({ source }, { j }, { printOptions }) => {
|
|
50
|
+
const config = api.tramvaiJSON.source;
|
|
51
|
+
const isVTEnabled = Object.values(config.projects).some((project) => {
|
|
52
|
+
return project.experiments && project.experiments.viewTransitions;
|
|
53
|
+
});
|
|
54
|
+
if (!isVTEnabled)
|
|
55
|
+
return;
|
|
56
|
+
let isProcessed = false;
|
|
57
|
+
const parsed = j(source);
|
|
58
|
+
const callExpressions = parsed.find(j.CallExpression, {
|
|
59
|
+
callee: {
|
|
60
|
+
type: 'Identifier',
|
|
61
|
+
name: 'createApp',
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
callExpressions.forEach((path) => {
|
|
65
|
+
const callExpression = path.value;
|
|
66
|
+
if (callExpression.arguments.length > 0 &&
|
|
67
|
+
callExpression.arguments[0].type === 'ObjectExpression') {
|
|
68
|
+
const configObject = callExpression.arguments[0];
|
|
69
|
+
isProcessed = processConfigObject(configObject, parsed, j);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
if (callExpressions.length && isProcessed) {
|
|
73
|
+
return parsed.toSource(printOptions);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
module.exports = d20250530bViewTransitionsProviderExpansion;
|
|
@@ -4,8 +4,15 @@ import { useNavigate } from '@tinkoff/router';
|
|
|
4
4
|
import { usePrefetch } from '../hooks/usePrefetch.browser.browser.js';
|
|
5
5
|
|
|
6
6
|
function Link(props) {
|
|
7
|
-
const { children, onClick, url, query, replace, target, navigateOptions, prefetch = true, viewTransition = false, ...otherProps } = props;
|
|
8
|
-
const navigate = useNavigate({
|
|
7
|
+
const { children, onClick, url, query, replace, target, navigateOptions, prefetch = true, viewTransition = false, viewTransitionTypes, ...otherProps } = props;
|
|
8
|
+
const navigate = useNavigate({
|
|
9
|
+
url,
|
|
10
|
+
query,
|
|
11
|
+
replace,
|
|
12
|
+
viewTransition,
|
|
13
|
+
viewTransitionTypes,
|
|
14
|
+
...navigateOptions,
|
|
15
|
+
});
|
|
9
16
|
const [linkElement, setLinkElement] = useState(null);
|
|
10
17
|
usePrefetch({
|
|
11
18
|
url,
|
package/lib/components/link.d.ts
CHANGED
|
@@ -19,6 +19,10 @@ interface Props extends Partial<AnchorLinkProps> {
|
|
|
19
19
|
* @default false
|
|
20
20
|
*/
|
|
21
21
|
viewTransition?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* @description allows you to assign one or more types to an active view transition
|
|
24
|
+
*/
|
|
25
|
+
viewTransitionTypes?: string[];
|
|
22
26
|
}
|
|
23
27
|
declare function Link(props: Props): import("react/jsx-runtime").JSX.Element;
|
|
24
28
|
declare namespace Link {
|
|
@@ -3,8 +3,15 @@ import { useState, useCallback, isValidElement, cloneElement } from 'react';
|
|
|
3
3
|
import { useNavigate } from '@tinkoff/router';
|
|
4
4
|
|
|
5
5
|
function Link(props) {
|
|
6
|
-
const { children, onClick, url, query, replace, target, navigateOptions, prefetch = true, viewTransition = false, ...otherProps } = props;
|
|
7
|
-
const navigate = useNavigate({
|
|
6
|
+
const { children, onClick, url, query, replace, target, navigateOptions, prefetch = true, viewTransition = false, viewTransitionTypes, ...otherProps } = props;
|
|
7
|
+
const navigate = useNavigate({
|
|
8
|
+
url,
|
|
9
|
+
query,
|
|
10
|
+
replace,
|
|
11
|
+
viewTransition,
|
|
12
|
+
viewTransitionTypes,
|
|
13
|
+
...navigateOptions,
|
|
14
|
+
});
|
|
8
15
|
const [linkElement, setLinkElement] = useState(null);
|
|
9
16
|
const handleClick = useCallback((event) => {
|
|
10
17
|
// ignores the navigation when clicked using right mouse button or
|
package/lib/components/link.js
CHANGED
|
@@ -7,8 +7,15 @@ var react = require('react');
|
|
|
7
7
|
var router = require('@tinkoff/router');
|
|
8
8
|
|
|
9
9
|
function Link(props) {
|
|
10
|
-
const { children, onClick, url, query, replace, target, navigateOptions, prefetch = true, viewTransition = false, ...otherProps } = props;
|
|
11
|
-
const navigate = router.useNavigate({
|
|
10
|
+
const { children, onClick, url, query, replace, target, navigateOptions, prefetch = true, viewTransition = false, viewTransitionTypes, ...otherProps } = props;
|
|
11
|
+
const navigate = router.useNavigate({
|
|
12
|
+
url,
|
|
13
|
+
query,
|
|
14
|
+
replace,
|
|
15
|
+
viewTransition,
|
|
16
|
+
viewTransitionTypes,
|
|
17
|
+
...navigateOptions,
|
|
18
|
+
});
|
|
12
19
|
const [linkElement, setLinkElement] = react.useState(null);
|
|
13
20
|
const handleClick = react.useCallback((event) => {
|
|
14
21
|
// ignores the navigation when clicked using right mouse button or
|
package/lib/index.browser.js
CHANGED
|
@@ -8,5 +8,5 @@ export { generateForRoot, routerForRoot } from './modules/utils/forRoot.browser.
|
|
|
8
8
|
export { RouterStore, setCurrentNavigation, setUrlOnRehydrate } from './stores/RouterStore.browser.js';
|
|
9
9
|
export { PageErrorStore, setPageErrorEvent } from './stores/PageErrorStore.browser.js';
|
|
10
10
|
export { usePageService } from './hooks/usePageService.browser.js';
|
|
11
|
-
export { afterNavigateHooksToken, afterUpdateCurrentHooksToken, beforeNavigateHooksToken, beforeResolveHooksToken, beforeUpdateCurrentHooksToken, onChangeHooksToken } from './modules/tokens.browser.js';
|
|
11
|
+
export { ROUTER_VIEW_TRANSITIONS_ENABLED, afterNavigateHooksToken, afterUpdateCurrentHooksToken, beforeNavigateHooksToken, beforeResolveHooksToken, beforeUpdateCurrentHooksToken, onChangeHooksToken, routeTransformToken, routerBundleInfoAdditionalToken } from './modules/tokens.browser.js';
|
|
12
12
|
export { deserializeError, serializeError } from '@tramvai/safe-strings';
|
package/lib/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ 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';
|
|
10
|
-
export { onChangeHooksToken, beforeNavigateHooksToken, afterNavigateHooksToken, beforeResolveHooksToken, beforeUpdateCurrentHooksToken, afterUpdateCurrentHooksToken, } from './modules/tokens';
|
|
10
|
+
export { onChangeHooksToken, beforeNavigateHooksToken, afterNavigateHooksToken, beforeResolveHooksToken, beforeUpdateCurrentHooksToken, afterUpdateCurrentHooksToken, routerBundleInfoAdditionalToken, routeTransformToken, ROUTER_VIEW_TRANSITIONS_ENABLED, } from './modules/tokens';
|
|
11
11
|
declare module '@tinkoff/router' {
|
|
12
12
|
interface RouteConfig {
|
|
13
13
|
bundle?: string;
|
package/lib/index.es.js
CHANGED
|
@@ -7,5 +7,5 @@ export { generateForRoot, routerForRoot } from './modules/utils/forRoot.es.js';
|
|
|
7
7
|
export { RouterStore, setCurrentNavigation, setUrlOnRehydrate } from './stores/RouterStore.es.js';
|
|
8
8
|
export { PageErrorStore, setPageErrorEvent } from './stores/PageErrorStore.es.js';
|
|
9
9
|
export { usePageService } from './hooks/usePageService.es.js';
|
|
10
|
-
export { afterNavigateHooksToken, afterUpdateCurrentHooksToken, beforeNavigateHooksToken, beforeResolveHooksToken, beforeUpdateCurrentHooksToken, onChangeHooksToken } from './modules/tokens.es.js';
|
|
10
|
+
export { ROUTER_VIEW_TRANSITIONS_ENABLED, afterNavigateHooksToken, afterUpdateCurrentHooksToken, beforeNavigateHooksToken, beforeResolveHooksToken, beforeUpdateCurrentHooksToken, onChangeHooksToken, routeTransformToken, routerBundleInfoAdditionalToken } from './modules/tokens.es.js';
|
|
11
11
|
export { deserializeError, serializeError } from '@tramvai/safe-strings';
|
package/lib/index.js
CHANGED
|
@@ -55,12 +55,15 @@ exports.setUrlOnRehydrate = RouterStore.setUrlOnRehydrate;
|
|
|
55
55
|
exports.PageErrorStore = PageErrorStore.PageErrorStore;
|
|
56
56
|
exports.setPageErrorEvent = PageErrorStore.setPageErrorEvent;
|
|
57
57
|
exports.usePageService = usePageService.usePageService;
|
|
58
|
+
exports.ROUTER_VIEW_TRANSITIONS_ENABLED = tokens.ROUTER_VIEW_TRANSITIONS_ENABLED;
|
|
58
59
|
exports.afterNavigateHooksToken = tokens.afterNavigateHooksToken;
|
|
59
60
|
exports.afterUpdateCurrentHooksToken = tokens.afterUpdateCurrentHooksToken;
|
|
60
61
|
exports.beforeNavigateHooksToken = tokens.beforeNavigateHooksToken;
|
|
61
62
|
exports.beforeResolveHooksToken = tokens.beforeResolveHooksToken;
|
|
62
63
|
exports.beforeUpdateCurrentHooksToken = tokens.beforeUpdateCurrentHooksToken;
|
|
63
64
|
exports.onChangeHooksToken = tokens.onChangeHooksToken;
|
|
65
|
+
exports.routeTransformToken = tokens.routeTransformToken;
|
|
66
|
+
exports.routerBundleInfoAdditionalToken = tokens.routerBundleInfoAdditionalToken;
|
|
64
67
|
Object.defineProperty(exports, 'deserializeError', {
|
|
65
68
|
enumerable: true,
|
|
66
69
|
get: function () { return safeStrings.deserializeError; }
|
|
@@ -4,7 +4,7 @@ import { setLogger } from '@tinkoff/router';
|
|
|
4
4
|
import { LOGGER_TOKEN, COMBINE_REDUCERS } from '@tramvai/tokens-common';
|
|
5
5
|
import { ROUTER_TOKEN, ROUTES_TOKEN, ROUTE_RESOLVE_TOKEN, ROUTER_PLUGIN, ROUTER_GUARD_TOKEN, ROUTER_SPA_ACTIONS_RUN_MODE_TOKEN } from '@tramvai/tokens-router';
|
|
6
6
|
import { RENDER_SLOTS, ResourceType, ResourceSlot } from '@tramvai/tokens-render';
|
|
7
|
-
import { routerClassToken, additionalRouterParameters, routeTransformToken, onChangeHooksToken, beforeResolveHooksToken, beforeNavigateHooksToken, afterNavigateHooksToken, beforeUpdateCurrentHooksToken, afterUpdateCurrentHooksToken } from './tokens.browser.js';
|
|
7
|
+
import { ROUTER_VIEW_TRANSITIONS_ENABLED, routerClassToken, additionalRouterParameters, routeTransformToken, onChangeHooksToken, beforeResolveHooksToken, beforeNavigateHooksToken, afterNavigateHooksToken, beforeUpdateCurrentHooksToken, afterUpdateCurrentHooksToken } from './tokens.browser.js';
|
|
8
8
|
import { RouterStore } from '../stores/RouterStore.browser.js';
|
|
9
9
|
import { commonGuards } from './guards/common/index.browser.js';
|
|
10
10
|
import { commonHooks } from './hooks/common/index.browser.js';
|
|
@@ -16,14 +16,18 @@ const providers = [
|
|
|
16
16
|
...commonHooks,
|
|
17
17
|
...commonTokens,
|
|
18
18
|
...providers$1,
|
|
19
|
+
provide({
|
|
20
|
+
provide: ROUTER_VIEW_TRANSITIONS_ENABLED,
|
|
21
|
+
useValue: false,
|
|
22
|
+
}),
|
|
19
23
|
provide({
|
|
20
24
|
provide: ROUTER_TOKEN,
|
|
21
|
-
useFactory: ({ RouterClass, routes, routeTransform, routeResolve, additionalParameters, plugins, }) => {
|
|
25
|
+
useFactory: ({ RouterClass, routes, routeTransform, routeResolve, additionalParameters, plugins, viewTransitionsEnabled, }) => {
|
|
22
26
|
const router = new RouterClass({
|
|
23
27
|
...additionalParameters,
|
|
24
28
|
trailingSlash: true,
|
|
25
29
|
mergeSlashes: true,
|
|
26
|
-
enableViewTransitions: process.env.__TRAMVAI_VIEW_TRANSITIONS === 'true',
|
|
30
|
+
enableViewTransitions: process.env.__TRAMVAI_VIEW_TRANSITIONS === 'true' && viewTransitionsEnabled,
|
|
27
31
|
routes: flatten(routes ?? []).map(routeTransform),
|
|
28
32
|
plugins,
|
|
29
33
|
});
|
|
@@ -58,6 +62,7 @@ const providers = [
|
|
|
58
62
|
optional: true,
|
|
59
63
|
},
|
|
60
64
|
plugins: optional(ROUTER_PLUGIN),
|
|
65
|
+
viewTransitionsEnabled: ROUTER_VIEW_TRANSITIONS_ENABLED,
|
|
61
66
|
},
|
|
62
67
|
}),
|
|
63
68
|
provide({
|
package/lib/modules/common.es.js
CHANGED
|
@@ -4,7 +4,7 @@ import { setLogger } from '@tinkoff/router';
|
|
|
4
4
|
import { LOGGER_TOKEN, COMBINE_REDUCERS } from '@tramvai/tokens-common';
|
|
5
5
|
import { ROUTER_TOKEN, ROUTES_TOKEN, ROUTE_RESOLVE_TOKEN, ROUTER_PLUGIN, ROUTER_GUARD_TOKEN, ROUTER_SPA_ACTIONS_RUN_MODE_TOKEN } from '@tramvai/tokens-router';
|
|
6
6
|
import { RENDER_SLOTS, ResourceType, ResourceSlot } from '@tramvai/tokens-render';
|
|
7
|
-
import { routerClassToken, additionalRouterParameters, routeTransformToken, onChangeHooksToken, beforeResolveHooksToken, beforeNavigateHooksToken, afterNavigateHooksToken, beforeUpdateCurrentHooksToken, afterUpdateCurrentHooksToken } from './tokens.es.js';
|
|
7
|
+
import { ROUTER_VIEW_TRANSITIONS_ENABLED, routerClassToken, additionalRouterParameters, routeTransformToken, onChangeHooksToken, beforeResolveHooksToken, beforeNavigateHooksToken, afterNavigateHooksToken, beforeUpdateCurrentHooksToken, afterUpdateCurrentHooksToken } from './tokens.es.js';
|
|
8
8
|
import { RouterStore } from '../stores/RouterStore.es.js';
|
|
9
9
|
import { commonGuards } from './guards/common/index.es.js';
|
|
10
10
|
import { commonHooks } from './hooks/common/index.es.js';
|
|
@@ -16,14 +16,18 @@ const providers = [
|
|
|
16
16
|
...commonHooks,
|
|
17
17
|
...commonTokens,
|
|
18
18
|
...providers$1,
|
|
19
|
+
provide({
|
|
20
|
+
provide: ROUTER_VIEW_TRANSITIONS_ENABLED,
|
|
21
|
+
useValue: false,
|
|
22
|
+
}),
|
|
19
23
|
provide({
|
|
20
24
|
provide: ROUTER_TOKEN,
|
|
21
|
-
useFactory: ({ RouterClass, routes, routeTransform, routeResolve, additionalParameters, plugins, }) => {
|
|
25
|
+
useFactory: ({ RouterClass, routes, routeTransform, routeResolve, additionalParameters, plugins, viewTransitionsEnabled, }) => {
|
|
22
26
|
const router = new RouterClass({
|
|
23
27
|
...additionalParameters,
|
|
24
28
|
trailingSlash: true,
|
|
25
29
|
mergeSlashes: true,
|
|
26
|
-
enableViewTransitions: process.env.__TRAMVAI_VIEW_TRANSITIONS === 'true',
|
|
30
|
+
enableViewTransitions: process.env.__TRAMVAI_VIEW_TRANSITIONS === 'true' && viewTransitionsEnabled,
|
|
27
31
|
routes: flatten(routes ?? []).map(routeTransform),
|
|
28
32
|
plugins,
|
|
29
33
|
});
|
|
@@ -58,6 +62,7 @@ const providers = [
|
|
|
58
62
|
optional: true,
|
|
59
63
|
},
|
|
60
64
|
plugins: optional(ROUTER_PLUGIN),
|
|
65
|
+
viewTransitionsEnabled: ROUTER_VIEW_TRANSITIONS_ENABLED,
|
|
61
66
|
},
|
|
62
67
|
}),
|
|
63
68
|
provide({
|
package/lib/modules/common.js
CHANGED
|
@@ -24,14 +24,18 @@ const providers = [
|
|
|
24
24
|
...index$1.commonHooks,
|
|
25
25
|
...index$2.commonTokens,
|
|
26
26
|
...fileSystemPages.providers,
|
|
27
|
+
core.provide({
|
|
28
|
+
provide: tokens.ROUTER_VIEW_TRANSITIONS_ENABLED,
|
|
29
|
+
useValue: false,
|
|
30
|
+
}),
|
|
27
31
|
core.provide({
|
|
28
32
|
provide: tokensRouter.ROUTER_TOKEN,
|
|
29
|
-
useFactory: ({ RouterClass, routes, routeTransform, routeResolve, additionalParameters, plugins, }) => {
|
|
33
|
+
useFactory: ({ RouterClass, routes, routeTransform, routeResolve, additionalParameters, plugins, viewTransitionsEnabled, }) => {
|
|
30
34
|
const router = new RouterClass({
|
|
31
35
|
...additionalParameters,
|
|
32
36
|
trailingSlash: true,
|
|
33
37
|
mergeSlashes: true,
|
|
34
|
-
enableViewTransitions: process.env.__TRAMVAI_VIEW_TRANSITIONS === 'true',
|
|
38
|
+
enableViewTransitions: process.env.__TRAMVAI_VIEW_TRANSITIONS === 'true' && viewTransitionsEnabled,
|
|
35
39
|
routes: flatten__default["default"](routes ?? []).map(routeTransform),
|
|
36
40
|
plugins,
|
|
37
41
|
});
|
|
@@ -66,6 +70,7 @@ const providers = [
|
|
|
66
70
|
optional: true,
|
|
67
71
|
},
|
|
68
72
|
plugins: core.optional(tokensRouter.ROUTER_PLUGIN),
|
|
73
|
+
viewTransitionsEnabled: tokens.ROUTER_VIEW_TRANSITIONS_ENABLED,
|
|
69
74
|
},
|
|
70
75
|
}),
|
|
71
76
|
core.provide({
|
|
@@ -4,6 +4,12 @@ import eachObj from '@tinkoff/utils/object/each';
|
|
|
4
4
|
import { resolveLazyComponent } from '@tramvai/react';
|
|
5
5
|
|
|
6
6
|
class PageRegistry {
|
|
7
|
+
bundleManager;
|
|
8
|
+
pageService;
|
|
9
|
+
componentRegistry;
|
|
10
|
+
actionRegistry;
|
|
11
|
+
dispatcher;
|
|
12
|
+
dispatcherContext;
|
|
7
13
|
constructor({ bundleManager, pageService, componentRegistry, actionRegistry, dispatcher, dispatcherContext, }) {
|
|
8
14
|
this.bundleManager = bundleManager;
|
|
9
15
|
this.pageService = pageService;
|
|
@@ -4,6 +4,12 @@ import eachObj from '@tinkoff/utils/object/each';
|
|
|
4
4
|
import { resolveLazyComponent } from '@tramvai/react';
|
|
5
5
|
|
|
6
6
|
class PageRegistry {
|
|
7
|
+
bundleManager;
|
|
8
|
+
pageService;
|
|
9
|
+
componentRegistry;
|
|
10
|
+
actionRegistry;
|
|
11
|
+
dispatcher;
|
|
12
|
+
dispatcherContext;
|
|
7
13
|
constructor({ bundleManager, pageService, componentRegistry, actionRegistry, dispatcher, dispatcherContext, }) {
|
|
8
14
|
this.bundleManager = bundleManager;
|
|
9
15
|
this.pageService = pageService;
|
|
@@ -14,6 +14,12 @@ var isObject__default = /*#__PURE__*/_interopDefaultLegacy(isObject);
|
|
|
14
14
|
var eachObj__default = /*#__PURE__*/_interopDefaultLegacy(eachObj);
|
|
15
15
|
|
|
16
16
|
class PageRegistry {
|
|
17
|
+
bundleManager;
|
|
18
|
+
pageService;
|
|
19
|
+
componentRegistry;
|
|
20
|
+
actionRegistry;
|
|
21
|
+
dispatcher;
|
|
22
|
+
dispatcherContext;
|
|
17
23
|
constructor({ bundleManager, pageService, componentRegistry, actionRegistry, dispatcher, dispatcherContext, }) {
|
|
18
24
|
this.bundleManager = bundleManager;
|
|
19
25
|
this.pageService = pageService;
|
|
@@ -5,6 +5,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var experiments = require('@tramvai/experiments');
|
|
6
6
|
|
|
7
7
|
class PageService {
|
|
8
|
+
router;
|
|
9
|
+
componentRegistry;
|
|
8
10
|
constructor({ router, componentRegistry }) {
|
|
9
11
|
this.router = router;
|
|
10
12
|
this.componentRegistry = componentRegistry;
|
|
@@ -17,6 +17,7 @@ const afterNavigateHooksToken = createToken('router afterNavigateHooks', {
|
|
|
17
17
|
const beforeUpdateCurrentHooksToken = createToken('router beforeUpdateCurrentHooks', { multi: true });
|
|
18
18
|
const afterUpdateCurrentHooksToken = createToken('router afterUpdateCurrentHooks', { multi: true });
|
|
19
19
|
const routeTransformToken = createToken('router finalRouteTransform');
|
|
20
|
-
createToken('router bundleInfoAdditional');
|
|
20
|
+
const routerBundleInfoAdditionalToken = createToken('router bundleInfoAdditional');
|
|
21
|
+
const ROUTER_VIEW_TRANSITIONS_ENABLED = createToken('router viewTransitionsEnabled');
|
|
21
22
|
|
|
22
|
-
export { additionalRouterParameters, afterNavigateHooksToken, afterUpdateCurrentHooksToken, beforeNavigateHooksToken, beforeResolveHooksToken, beforeUpdateCurrentHooksToken, onChangeHooksToken, routeTransformToken, routerClassToken };
|
|
23
|
+
export { ROUTER_VIEW_TRANSITIONS_ENABLED, additionalRouterParameters, afterNavigateHooksToken, afterUpdateCurrentHooksToken, beforeNavigateHooksToken, beforeResolveHooksToken, beforeUpdateCurrentHooksToken, onChangeHooksToken, routeTransformToken, routerBundleInfoAdditionalToken, routerClassToken };
|
package/lib/modules/tokens.d.ts
CHANGED
|
@@ -30,4 +30,9 @@ export declare const routeTransformToken: RouteTransform & {
|
|
|
30
30
|
export declare const routerBundleInfoAdditionalToken: (() => Promise<Route[]>) & {
|
|
31
31
|
__type?: "base token";
|
|
32
32
|
};
|
|
33
|
+
export declare const ROUTER_VIEW_TRANSITIONS_ENABLED: (false & {
|
|
34
|
+
__type?: "base token";
|
|
35
|
+
}) | (true & {
|
|
36
|
+
__type?: "base token";
|
|
37
|
+
});
|
|
33
38
|
//# sourceMappingURL=tokens.d.ts.map
|
package/lib/modules/tokens.es.js
CHANGED
|
@@ -18,5 +18,6 @@ const beforeUpdateCurrentHooksToken = createToken('router beforeUpdateCurrentHoo
|
|
|
18
18
|
const afterUpdateCurrentHooksToken = createToken('router afterUpdateCurrentHooks', { multi: true });
|
|
19
19
|
const routeTransformToken = createToken('router finalRouteTransform');
|
|
20
20
|
const routerBundleInfoAdditionalToken = createToken('router bundleInfoAdditional');
|
|
21
|
+
const ROUTER_VIEW_TRANSITIONS_ENABLED = createToken('router viewTransitionsEnabled');
|
|
21
22
|
|
|
22
|
-
export { additionalRouterParameters, afterNavigateHooksToken, afterUpdateCurrentHooksToken, beforeNavigateHooksToken, beforeResolveHooksToken, beforeUpdateCurrentHooksToken, onChangeHooksToken, routeTransformToken, routerBundleInfoAdditionalToken, routerClassToken };
|
|
23
|
+
export { ROUTER_VIEW_TRANSITIONS_ENABLED, additionalRouterParameters, afterNavigateHooksToken, afterUpdateCurrentHooksToken, beforeNavigateHooksToken, beforeResolveHooksToken, beforeUpdateCurrentHooksToken, onChangeHooksToken, routeTransformToken, routerBundleInfoAdditionalToken, routerClassToken };
|
package/lib/modules/tokens.js
CHANGED
|
@@ -22,7 +22,9 @@ const beforeUpdateCurrentHooksToken = dippy.createToken('router beforeUpdateCurr
|
|
|
22
22
|
const afterUpdateCurrentHooksToken = dippy.createToken('router afterUpdateCurrentHooks', { multi: true });
|
|
23
23
|
const routeTransformToken = dippy.createToken('router finalRouteTransform');
|
|
24
24
|
const routerBundleInfoAdditionalToken = dippy.createToken('router bundleInfoAdditional');
|
|
25
|
+
const ROUTER_VIEW_TRANSITIONS_ENABLED = dippy.createToken('router viewTransitionsEnabled');
|
|
25
26
|
|
|
27
|
+
exports.ROUTER_VIEW_TRANSITIONS_ENABLED = ROUTER_VIEW_TRANSITIONS_ENABLED;
|
|
26
28
|
exports.additionalRouterParameters = additionalRouterParameters;
|
|
27
29
|
exports.afterNavigateHooksToken = afterNavigateHooksToken;
|
|
28
30
|
exports.afterUpdateCurrentHooksToken = afterUpdateCurrentHooksToken;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tramvai/module-router",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.59.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"browser": {
|
|
@@ -25,29 +25,29 @@
|
|
|
25
25
|
"watch": "tsc -w"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@tinkoff/errors": "0.
|
|
29
|
-
"@tinkoff/router": "0.
|
|
30
|
-
"@tinkoff/url": "0.
|
|
31
|
-
"@tramvai/experiments": "
|
|
32
|
-
"@tramvai/react": "
|
|
33
|
-
"@tramvai/safe-strings": "0.
|
|
34
|
-
"@tramvai/tokens-child-app": "
|
|
35
|
-
"@tramvai/tokens-render": "
|
|
36
|
-
"@tramvai/tokens-router": "
|
|
37
|
-
"@tramvai/tokens-server": "
|
|
28
|
+
"@tinkoff/errors": "0.7.1",
|
|
29
|
+
"@tinkoff/router": "0.6.102",
|
|
30
|
+
"@tinkoff/url": "0.12.1",
|
|
31
|
+
"@tramvai/experiments": "6.59.0",
|
|
32
|
+
"@tramvai/react": "6.59.0",
|
|
33
|
+
"@tramvai/safe-strings": "0.9.0",
|
|
34
|
+
"@tramvai/tokens-child-app": "6.59.0",
|
|
35
|
+
"@tramvai/tokens-render": "6.59.0",
|
|
36
|
+
"@tramvai/tokens-router": "6.59.0",
|
|
37
|
+
"@tramvai/tokens-server": "6.59.0"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
|
-
"@tinkoff/dippy": "0.
|
|
40
|
+
"@tinkoff/dippy": "0.12.3",
|
|
41
41
|
"@tinkoff/utils": "^2.1.2",
|
|
42
|
-
"@tramvai/cli": "
|
|
43
|
-
"@tramvai/core": "
|
|
44
|
-
"@tramvai/module-log": "
|
|
45
|
-
"@tramvai/module-server": "
|
|
46
|
-
"@tramvai/papi": "
|
|
47
|
-
"@tramvai/state": "
|
|
48
|
-
"@tramvai/test-helpers": "
|
|
49
|
-
"@tramvai/test-mocks": "
|
|
50
|
-
"@tramvai/tokens-common": "
|
|
42
|
+
"@tramvai/cli": "6.59.0",
|
|
43
|
+
"@tramvai/core": "6.59.0",
|
|
44
|
+
"@tramvai/module-log": "6.59.0",
|
|
45
|
+
"@tramvai/module-server": "6.59.0",
|
|
46
|
+
"@tramvai/papi": "6.59.0",
|
|
47
|
+
"@tramvai/state": "6.59.0",
|
|
48
|
+
"@tramvai/test-helpers": "6.59.0",
|
|
49
|
+
"@tramvai/test-mocks": "6.59.0",
|
|
50
|
+
"@tramvai/tokens-common": "6.59.0",
|
|
51
51
|
"react": "*",
|
|
52
52
|
"tslib": "^2.4.0"
|
|
53
53
|
},
|