@tinkoff/router 0.2.2 → 0.2.4
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/index.browser.js +11 -11
- package/lib/index.es.js +11 -11
- package/lib/index.js +11 -11
- package/package.json +4 -4
package/lib/index.browser.js
CHANGED
|
@@ -70,7 +70,7 @@ const parseParameter = (part) => {
|
|
|
70
70
|
const [, paramName, regexp, optional] = match;
|
|
71
71
|
const useRegexp = prefix || postfix || regexp;
|
|
72
72
|
return {
|
|
73
|
-
type: 3 /* parameter */,
|
|
73
|
+
type: 3 /* PartType.parameter */,
|
|
74
74
|
paramName,
|
|
75
75
|
regexp: useRegexp
|
|
76
76
|
? new RegExp(`^${prefix}(${regexp || '.+'})${optional ? '?' : ''}${postfix}$`)
|
|
@@ -80,15 +80,15 @@ const parseParameter = (part) => {
|
|
|
80
80
|
};
|
|
81
81
|
const parse = (part) => {
|
|
82
82
|
if (isHistoryFallback(part)) {
|
|
83
|
-
return { type: 1 /* historyFallback */ };
|
|
83
|
+
return { type: 1 /* PartType.historyFallback */ };
|
|
84
84
|
}
|
|
85
85
|
if (isWildcard(part)) {
|
|
86
|
-
return { type: 2 /* wildcard */ };
|
|
86
|
+
return { type: 2 /* PartType.wildcard */ };
|
|
87
87
|
}
|
|
88
88
|
if (isParameterized(part)) {
|
|
89
89
|
return parseParameter(part);
|
|
90
90
|
}
|
|
91
|
-
return { type: 0 /* literal */, value: part };
|
|
91
|
+
return { type: 0 /* PartType.literal */, value: part };
|
|
92
92
|
};
|
|
93
93
|
const makePath = (pathname, params) => {
|
|
94
94
|
const parts = getParts(pathname);
|
|
@@ -534,7 +534,7 @@ const supportsHtml5History = typeof window !== 'undefined' && window.history &&
|
|
|
534
534
|
const wrapHistory = ({ onNavigate }) => {
|
|
535
535
|
if (!supportsHtml5History) {
|
|
536
536
|
const navigate = (data, title, url) => {
|
|
537
|
-
window.location.href = url;
|
|
537
|
+
window.location.href = url.toString();
|
|
538
538
|
};
|
|
539
539
|
window.history.pushState = navigate;
|
|
540
540
|
window.history.replaceState = navigate;
|
|
@@ -574,7 +574,7 @@ const wrapHistory = ({ onNavigate }) => {
|
|
|
574
574
|
};
|
|
575
575
|
const browserNavigate = (replace = false) => {
|
|
576
576
|
return (navigateState, title, url) => {
|
|
577
|
-
onNavigate({ url, replace, navigateState });
|
|
577
|
+
onNavigate({ url: url.toString(), replace, navigateState });
|
|
578
578
|
};
|
|
579
579
|
};
|
|
580
580
|
window.history.pushState = browserNavigate(false);
|
|
@@ -841,15 +841,15 @@ class RouteTree {
|
|
|
841
841
|
for (let i = 0; i < parts.length; i++) {
|
|
842
842
|
const part = parts[i];
|
|
843
843
|
const parsed = parse(part);
|
|
844
|
-
if (parsed.type === 1 /* historyFallback */) {
|
|
844
|
+
if (parsed.type === 1 /* PartType.historyFallback */) {
|
|
845
845
|
currentTree.historyFallbackRoute = route;
|
|
846
846
|
return;
|
|
847
847
|
}
|
|
848
|
-
if (parsed.type === 2 /* wildcard */) {
|
|
848
|
+
if (parsed.type === 2 /* PartType.wildcard */) {
|
|
849
849
|
currentTree.wildcardRoute = route;
|
|
850
850
|
return;
|
|
851
851
|
}
|
|
852
|
-
if (parsed.type === 3 /* parameter */) {
|
|
852
|
+
if (parsed.type === 3 /* PartType.parameter */) {
|
|
853
853
|
const { paramName, regexp, optional } = parsed;
|
|
854
854
|
// prevent from creating new entries for same route
|
|
855
855
|
const found = find((par) => par.key === part, currentTree.parameters);
|
|
@@ -1138,7 +1138,7 @@ const UrlContext = createContext(null);
|
|
|
1138
1138
|
const Provider = ({ router, serverState, children }) => {
|
|
1139
1139
|
const route = useSyncExternalStore((cb) => router.registerSyncHook('change', cb), () => router.getLastRoute(), serverState ? () => serverState.currentRoute : () => router.getLastRoute());
|
|
1140
1140
|
const url = useSyncExternalStore((cb) => router.registerSyncHook('change', cb), () => router.getLastUrl(), serverState ? () => serverState.currentUrl : () => router.getLastUrl());
|
|
1141
|
-
return (jsx(RouterContext.Provider,
|
|
1141
|
+
return (jsx(RouterContext.Provider, { value: router, children: jsx(RouteContext.Provider, { value: route, children: jsx(UrlContext.Provider, { value: url, children: children }) }) }));
|
|
1142
1142
|
};
|
|
1143
1143
|
Provider.displayName = 'Provider';
|
|
1144
1144
|
|
|
@@ -1190,7 +1190,7 @@ function Link(props) {
|
|
|
1190
1190
|
}
|
|
1191
1191
|
return (
|
|
1192
1192
|
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
1193
|
-
jsx("a",
|
|
1193
|
+
jsx("a", { ...otherProps, ...extraProps, children: children }));
|
|
1194
1194
|
}
|
|
1195
1195
|
Link.displayName = 'Link';
|
|
1196
1196
|
|
package/lib/index.es.js
CHANGED
|
@@ -70,7 +70,7 @@ const parseParameter = (part) => {
|
|
|
70
70
|
const [, paramName, regexp, optional] = match;
|
|
71
71
|
const useRegexp = prefix || postfix || regexp;
|
|
72
72
|
return {
|
|
73
|
-
type: 3 /* parameter */,
|
|
73
|
+
type: 3 /* PartType.parameter */,
|
|
74
74
|
paramName,
|
|
75
75
|
regexp: useRegexp
|
|
76
76
|
? new RegExp(`^${prefix}(${regexp || '.+'})${optional ? '?' : ''}${postfix}$`)
|
|
@@ -80,15 +80,15 @@ const parseParameter = (part) => {
|
|
|
80
80
|
};
|
|
81
81
|
const parse = (part) => {
|
|
82
82
|
if (isHistoryFallback(part)) {
|
|
83
|
-
return { type: 1 /* historyFallback */ };
|
|
83
|
+
return { type: 1 /* PartType.historyFallback */ };
|
|
84
84
|
}
|
|
85
85
|
if (isWildcard(part)) {
|
|
86
|
-
return { type: 2 /* wildcard */ };
|
|
86
|
+
return { type: 2 /* PartType.wildcard */ };
|
|
87
87
|
}
|
|
88
88
|
if (isParameterized(part)) {
|
|
89
89
|
return parseParameter(part);
|
|
90
90
|
}
|
|
91
|
-
return { type: 0 /* literal */, value: part };
|
|
91
|
+
return { type: 0 /* PartType.literal */, value: part };
|
|
92
92
|
};
|
|
93
93
|
const makePath = (pathname, params) => {
|
|
94
94
|
const parts = getParts(pathname);
|
|
@@ -567,15 +567,15 @@ class RouteTree {
|
|
|
567
567
|
for (let i = 0; i < parts.length; i++) {
|
|
568
568
|
const part = parts[i];
|
|
569
569
|
const parsed = parse(part);
|
|
570
|
-
if (parsed.type === 1 /* historyFallback */) {
|
|
570
|
+
if (parsed.type === 1 /* PartType.historyFallback */) {
|
|
571
571
|
currentTree.historyFallbackRoute = route;
|
|
572
572
|
return;
|
|
573
573
|
}
|
|
574
|
-
if (parsed.type === 2 /* wildcard */) {
|
|
574
|
+
if (parsed.type === 2 /* PartType.wildcard */) {
|
|
575
575
|
currentTree.wildcardRoute = route;
|
|
576
576
|
return;
|
|
577
577
|
}
|
|
578
|
-
if (parsed.type === 3 /* parameter */) {
|
|
578
|
+
if (parsed.type === 3 /* PartType.parameter */) {
|
|
579
579
|
const { paramName, regexp, optional } = parsed;
|
|
580
580
|
// prevent from creating new entries for same route
|
|
581
581
|
const found = find((par) => par.key === part, currentTree.parameters);
|
|
@@ -764,7 +764,7 @@ const supportsHtml5History = typeof window !== 'undefined' && window.history &&
|
|
|
764
764
|
const wrapHistory = ({ onNavigate }) => {
|
|
765
765
|
if (!supportsHtml5History) {
|
|
766
766
|
const navigate = (data, title, url) => {
|
|
767
|
-
window.location.href = url;
|
|
767
|
+
window.location.href = url.toString();
|
|
768
768
|
};
|
|
769
769
|
window.history.pushState = navigate;
|
|
770
770
|
window.history.replaceState = navigate;
|
|
@@ -804,7 +804,7 @@ const wrapHistory = ({ onNavigate }) => {
|
|
|
804
804
|
};
|
|
805
805
|
const browserNavigate = (replace = false) => {
|
|
806
806
|
return (navigateState, title, url) => {
|
|
807
|
-
onNavigate({ url, replace, navigateState });
|
|
807
|
+
onNavigate({ url: url.toString(), replace, navigateState });
|
|
808
808
|
};
|
|
809
809
|
};
|
|
810
810
|
window.history.pushState = browserNavigate(false);
|
|
@@ -1066,7 +1066,7 @@ const UrlContext = createContext(null);
|
|
|
1066
1066
|
const Provider = ({ router, serverState, children }) => {
|
|
1067
1067
|
const route = useSyncExternalStore((cb) => router.registerSyncHook('change', cb), () => router.getLastRoute(), serverState ? () => serverState.currentRoute : () => router.getLastRoute());
|
|
1068
1068
|
const url = useSyncExternalStore((cb) => router.registerSyncHook('change', cb), () => router.getLastUrl(), serverState ? () => serverState.currentUrl : () => router.getLastUrl());
|
|
1069
|
-
return (jsx(RouterContext.Provider,
|
|
1069
|
+
return (jsx(RouterContext.Provider, { value: router, children: jsx(RouteContext.Provider, { value: route, children: jsx(UrlContext.Provider, { value: url, children: children }) }) }));
|
|
1070
1070
|
};
|
|
1071
1071
|
Provider.displayName = 'Provider';
|
|
1072
1072
|
|
|
@@ -1118,7 +1118,7 @@ function Link(props) {
|
|
|
1118
1118
|
}
|
|
1119
1119
|
return (
|
|
1120
1120
|
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
1121
|
-
jsx("a",
|
|
1121
|
+
jsx("a", { ...otherProps, ...extraProps, children: children }));
|
|
1122
1122
|
}
|
|
1123
1123
|
Link.displayName = 'Link';
|
|
1124
1124
|
|
package/lib/index.js
CHANGED
|
@@ -85,7 +85,7 @@ const parseParameter = (part) => {
|
|
|
85
85
|
const [, paramName, regexp, optional] = match;
|
|
86
86
|
const useRegexp = prefix || postfix || regexp;
|
|
87
87
|
return {
|
|
88
|
-
type: 3 /* parameter */,
|
|
88
|
+
type: 3 /* PartType.parameter */,
|
|
89
89
|
paramName,
|
|
90
90
|
regexp: useRegexp
|
|
91
91
|
? new RegExp(`^${prefix}(${regexp || '.+'})${optional ? '?' : ''}${postfix}$`)
|
|
@@ -95,15 +95,15 @@ const parseParameter = (part) => {
|
|
|
95
95
|
};
|
|
96
96
|
const parse = (part) => {
|
|
97
97
|
if (isHistoryFallback(part)) {
|
|
98
|
-
return { type: 1 /* historyFallback */ };
|
|
98
|
+
return { type: 1 /* PartType.historyFallback */ };
|
|
99
99
|
}
|
|
100
100
|
if (isWildcard(part)) {
|
|
101
|
-
return { type: 2 /* wildcard */ };
|
|
101
|
+
return { type: 2 /* PartType.wildcard */ };
|
|
102
102
|
}
|
|
103
103
|
if (isParameterized(part)) {
|
|
104
104
|
return parseParameter(part);
|
|
105
105
|
}
|
|
106
|
-
return { type: 0 /* literal */, value: part };
|
|
106
|
+
return { type: 0 /* PartType.literal */, value: part };
|
|
107
107
|
};
|
|
108
108
|
const makePath = (pathname, params) => {
|
|
109
109
|
const parts = getParts(pathname);
|
|
@@ -582,15 +582,15 @@ class RouteTree {
|
|
|
582
582
|
for (let i = 0; i < parts.length; i++) {
|
|
583
583
|
const part = parts[i];
|
|
584
584
|
const parsed = parse(part);
|
|
585
|
-
if (parsed.type === 1 /* historyFallback */) {
|
|
585
|
+
if (parsed.type === 1 /* PartType.historyFallback */) {
|
|
586
586
|
currentTree.historyFallbackRoute = route;
|
|
587
587
|
return;
|
|
588
588
|
}
|
|
589
|
-
if (parsed.type === 2 /* wildcard */) {
|
|
589
|
+
if (parsed.type === 2 /* PartType.wildcard */) {
|
|
590
590
|
currentTree.wildcardRoute = route;
|
|
591
591
|
return;
|
|
592
592
|
}
|
|
593
|
-
if (parsed.type === 3 /* parameter */) {
|
|
593
|
+
if (parsed.type === 3 /* PartType.parameter */) {
|
|
594
594
|
const { paramName, regexp, optional } = parsed;
|
|
595
595
|
// prevent from creating new entries for same route
|
|
596
596
|
const found = find__default["default"]((par) => par.key === part, currentTree.parameters);
|
|
@@ -779,7 +779,7 @@ const supportsHtml5History = typeof window !== 'undefined' && window.history &&
|
|
|
779
779
|
const wrapHistory = ({ onNavigate }) => {
|
|
780
780
|
if (!supportsHtml5History) {
|
|
781
781
|
const navigate = (data, title, url) => {
|
|
782
|
-
window.location.href = url;
|
|
782
|
+
window.location.href = url.toString();
|
|
783
783
|
};
|
|
784
784
|
window.history.pushState = navigate;
|
|
785
785
|
window.history.replaceState = navigate;
|
|
@@ -819,7 +819,7 @@ const wrapHistory = ({ onNavigate }) => {
|
|
|
819
819
|
};
|
|
820
820
|
const browserNavigate = (replace = false) => {
|
|
821
821
|
return (navigateState, title, url) => {
|
|
822
|
-
onNavigate({ url, replace, navigateState });
|
|
822
|
+
onNavigate({ url: url.toString(), replace, navigateState });
|
|
823
823
|
};
|
|
824
824
|
};
|
|
825
825
|
window.history.pushState = browserNavigate(false);
|
|
@@ -1081,7 +1081,7 @@ const UrlContext = react.createContext(null);
|
|
|
1081
1081
|
const Provider = ({ router, serverState, children }) => {
|
|
1082
1082
|
const route = shim.useSyncExternalStore((cb) => router.registerSyncHook('change', cb), () => router.getLastRoute(), serverState ? () => serverState.currentRoute : () => router.getLastRoute());
|
|
1083
1083
|
const url = shim.useSyncExternalStore((cb) => router.registerSyncHook('change', cb), () => router.getLastUrl(), serverState ? () => serverState.currentUrl : () => router.getLastUrl());
|
|
1084
|
-
return (jsxRuntime.jsx(RouterContext.Provider,
|
|
1084
|
+
return (jsxRuntime.jsx(RouterContext.Provider, { value: router, children: jsxRuntime.jsx(RouteContext.Provider, { value: route, children: jsxRuntime.jsx(UrlContext.Provider, { value: url, children: children }) }) }));
|
|
1085
1085
|
};
|
|
1086
1086
|
Provider.displayName = 'Provider';
|
|
1087
1087
|
|
|
@@ -1133,7 +1133,7 @@ function Link(props) {
|
|
|
1133
1133
|
}
|
|
1134
1134
|
return (
|
|
1135
1135
|
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
1136
|
-
jsxRuntime.jsx("a",
|
|
1136
|
+
jsxRuntime.jsx("a", { ...otherProps, ...extraProps, children: children }));
|
|
1137
1137
|
}
|
|
1138
1138
|
Link.displayName = 'Link';
|
|
1139
1139
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tinkoff/router",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4",
|
|
4
4
|
"description": "router",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -22,14 +22,14 @@
|
|
|
22
22
|
"build-for-publish": "true"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@tinkoff/react-hooks": "0.1.
|
|
26
|
-
"@tinkoff/url": "0.8.
|
|
25
|
+
"@tinkoff/react-hooks": "0.1.4",
|
|
26
|
+
"@tinkoff/url": "0.8.4",
|
|
27
27
|
"@tinkoff/utils": "^2.1.2",
|
|
28
28
|
"use-sync-external-store": "^1.2.0"
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
31
|
"react": ">=16.14.0",
|
|
32
|
-
"tslib": "^2.0
|
|
32
|
+
"tslib": "^2.4.0"
|
|
33
33
|
},
|
|
34
34
|
"sideEffects": false,
|
|
35
35
|
"devDependencies": {
|