reactive-route 0.0.1-alpha.20 → 0.0.1-alpha.22
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/dist/adapters/{kr-observable.d.ts → kr-observable-react.d.ts} +1 -1
- package/dist/adapters/kr-observable-react.d.ts.map +1 -0
- package/dist/adapters/kr-observable-solid.d.ts +3 -0
- package/dist/adapters/kr-observable-solid.d.ts.map +1 -0
- package/dist/adapters/{mobx.d.ts → mobx-react.d.ts} +1 -1
- package/dist/adapters/mobx-react.d.ts.map +1 -0
- package/dist/cjs/adapters/{kr-observable → kr-observable-react}/index.js +4 -4
- package/dist/cjs/adapters/kr-observable-solid/index.js +37 -0
- package/dist/cjs/adapters/{mobx → mobx-react}/index.js +4 -4
- package/dist/cjs/adapters/mobx-react/package.json +1 -0
- package/dist/cjs/index.js +116 -93
- package/dist/cjs/preact/index.js +10 -10
- package/dist/cjs/react/index.js +10 -10
- package/dist/cjs/solid/index.js +14 -14
- package/dist/core/createRouter.d.ts +4 -0
- package/dist/core/createRouter.d.ts.map +1 -0
- package/dist/core/{createRouterConfig.d.ts → createRoutes.d.ts} +2 -2
- package/dist/core/createRoutes.d.ts.map +1 -0
- package/dist/core/index.d.ts +3 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/types/TypeLifecycleConfig.d.ts +2 -0
- package/dist/core/types/TypeLifecycleConfig.d.ts.map +1 -1
- package/dist/core/types/TypePropsRouter.d.ts +1 -1
- package/dist/core/types/TypePropsRouter.d.ts.map +1 -1
- package/dist/core/utils/PreventError.d.ts +4 -0
- package/dist/core/utils/PreventError.d.ts.map +1 -0
- package/dist/core/utils/RedirectError.d.ts +4 -0
- package/dist/core/utils/RedirectError.d.ts.map +1 -0
- package/dist/core/utils/constants.d.ts +0 -2
- package/dist/core/utils/constants.d.ts.map +1 -1
- package/dist/core/utils/getQueryValues.d.ts.map +1 -1
- package/dist/core/utils/queryString.d.ts +8 -0
- package/dist/core/utils/queryString.d.ts.map +1 -0
- package/dist/esm/adapters/{kr-observable → kr-observable-react}/index.js +1 -1
- package/dist/esm/adapters/kr-observable-solid/index.js +16 -0
- package/dist/esm/adapters/{mobx → mobx-react}/index.js +1 -1
- package/dist/esm/adapters/mobx-react/package.json +1 -0
- package/dist/esm/index.js +114 -81
- package/dist/esm/preact/index.js +10 -10
- package/dist/esm/react/index.js +10 -10
- package/dist/esm/solid/index.js +14 -14
- package/dist/preact/Router.d.ts.map +1 -1
- package/dist/tsconfig.types.react.tsbuildinfo +1 -1
- package/package.json +15 -11
- package/dist/adapters/kr-observable.d.ts.map +0 -1
- package/dist/adapters/mobx.d.ts.map +0 -1
- package/dist/core/createRouterConfig.d.ts.map +0 -1
- package/dist/core/createRouterStore.d.ts +0 -4
- package/dist/core/createRouterStore.d.ts.map +0 -1
- /package/dist/cjs/adapters/{kr-observable → kr-observable-react}/package.json +0 -0
- /package/dist/cjs/adapters/{mobx → kr-observable-solid}/package.json +0 -0
- /package/dist/esm/adapters/{kr-observable → kr-observable-react}/package.json +0 -0
- /package/dist/esm/adapters/{mobx → kr-observable-solid}/package.json +0 -0
package/dist/esm/react/index.js
CHANGED
|
@@ -8,11 +8,11 @@ function RouterInner(props) {
|
|
|
8
8
|
if (!history) return;
|
|
9
9
|
history.listen((params) => {
|
|
10
10
|
if (params.action !== "POP") return;
|
|
11
|
-
const previousRoutePathname = props.
|
|
11
|
+
const previousRoutePathname = props.router.routesHistory[props.router.routesHistory.length - 2];
|
|
12
12
|
if (previousRoutePathname === params.location.pathname) {
|
|
13
|
-
props.
|
|
13
|
+
props.router.adapters.batch(() => props.router.routesHistory.pop());
|
|
14
14
|
}
|
|
15
|
-
void props.
|
|
15
|
+
void props.router.redirectTo({
|
|
16
16
|
noHistoryPush: true,
|
|
17
17
|
...getInitialRoute({
|
|
18
18
|
routes: props.routes,
|
|
@@ -22,7 +22,7 @@ function RouterInner(props) {
|
|
|
22
22
|
});
|
|
23
23
|
}, []);
|
|
24
24
|
const [config] = useState(
|
|
25
|
-
() => props.
|
|
25
|
+
() => props.router.adapters.makeObservable({
|
|
26
26
|
loadedComponentName: void 0,
|
|
27
27
|
loadedComponentPage: void 0,
|
|
28
28
|
currentProps: {}
|
|
@@ -30,21 +30,21 @@ function RouterInner(props) {
|
|
|
30
30
|
);
|
|
31
31
|
const setLoadedComponent = useCallback(() => {
|
|
32
32
|
const { loadedComponentName, loadedComponentPage } = config;
|
|
33
|
-
const { currentRoute, isRedirecting } = props.
|
|
33
|
+
const { currentRoute, isRedirecting } = props.router;
|
|
34
34
|
const componentConfig = props.routes[currentRoute.name];
|
|
35
35
|
let preventRedirect = false;
|
|
36
36
|
if (isRedirecting) preventRedirect = true;
|
|
37
37
|
else if (loadedComponentName === currentRoute.name) preventRedirect = true;
|
|
38
38
|
else if (loadedComponentPage != null && currentRoute.name != null) {
|
|
39
39
|
if (loadedComponentPage === currentRoute.pageName) {
|
|
40
|
-
props.
|
|
40
|
+
props.router.adapters.batch(() => {
|
|
41
41
|
config.currentProps = "props" in componentConfig ? componentConfig.props || {} : {};
|
|
42
42
|
});
|
|
43
43
|
preventRedirect = true;
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
if (preventRedirect) return;
|
|
47
|
-
props.
|
|
47
|
+
props.router.adapters.batch(() => {
|
|
48
48
|
if (loadedComponentName) props.beforeUpdatePageComponent?.();
|
|
49
49
|
props.beforeSetPageComponent?.(componentConfig);
|
|
50
50
|
config.currentProps = "props" in componentConfig ? componentConfig.props || {} : {};
|
|
@@ -53,11 +53,11 @@ function RouterInner(props) {
|
|
|
53
53
|
});
|
|
54
54
|
}, []);
|
|
55
55
|
useState(() => {
|
|
56
|
-
props.
|
|
56
|
+
props.router.adapters.batch(() => {
|
|
57
57
|
props.beforeMount?.();
|
|
58
58
|
redirectOnHistoryPop();
|
|
59
59
|
setLoadedComponent();
|
|
60
|
-
disposerRef.current = props.
|
|
60
|
+
disposerRef.current = props.router.adapters.autorun(setLoadedComponent);
|
|
61
61
|
});
|
|
62
62
|
});
|
|
63
63
|
useEffect(() => {
|
|
@@ -71,7 +71,7 @@ function RouterInner(props) {
|
|
|
71
71
|
return null;
|
|
72
72
|
}
|
|
73
73
|
function RouterWrapper(props) {
|
|
74
|
-
const Component = props.
|
|
74
|
+
const Component = props.router.adapters.observer ? props.router.adapters.observer(RouterInner) : RouterInner;
|
|
75
75
|
return /* @__PURE__ */ jsx(Component, { ...props });
|
|
76
76
|
}
|
|
77
77
|
var Router = memo(RouterWrapper);
|
package/dist/esm/solid/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import { getInitialRoute, history } from "reactive-route";
|
|
|
5
5
|
import { Show } from "solid-js";
|
|
6
6
|
import { Dynamic } from "solid-js/web";
|
|
7
7
|
function Router(props) {
|
|
8
|
-
const config = props.
|
|
8
|
+
const config = props.router.adapters.makeObservable({
|
|
9
9
|
loadedComponentName: void 0,
|
|
10
10
|
loadedComponentPage: void 0,
|
|
11
11
|
currentProps: {}
|
|
@@ -14,11 +14,11 @@ function Router(props) {
|
|
|
14
14
|
if (!history) return;
|
|
15
15
|
history.listen((params) => {
|
|
16
16
|
if (params.action !== "POP") return;
|
|
17
|
-
const previousRoutePathname = props.
|
|
17
|
+
const previousRoutePathname = props.router.routesHistory[props.router.routesHistory.length - 2];
|
|
18
18
|
if (previousRoutePathname === params.location.pathname) {
|
|
19
|
-
props.
|
|
19
|
+
props.router.routesHistory.pop();
|
|
20
20
|
}
|
|
21
|
-
void props.
|
|
21
|
+
void props.router.redirectTo({
|
|
22
22
|
noHistoryPush: true,
|
|
23
23
|
...getInitialRoute({
|
|
24
24
|
routes: props.routes,
|
|
@@ -28,27 +28,27 @@ function Router(props) {
|
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
30
|
function setLoadedComponent() {
|
|
31
|
-
const currentRouteName = props.
|
|
32
|
-
const currentRoutePage = props.
|
|
31
|
+
const currentRouteName = props.router.currentRoute.name;
|
|
32
|
+
const currentRoutePage = props.router.currentRoute.pageName;
|
|
33
33
|
const componentConfig = props.routes[currentRouteName];
|
|
34
34
|
let preventRedirect = false;
|
|
35
|
-
if (props.
|
|
35
|
+
if (props.router.isRedirecting) preventRedirect = true;
|
|
36
36
|
else if (config.loadedComponentName === currentRouteName) {
|
|
37
37
|
preventRedirect = true;
|
|
38
38
|
} else if (config.loadedComponentPage != null && currentRouteName != null) {
|
|
39
39
|
if (config.loadedComponentPage === currentRoutePage) {
|
|
40
|
-
props.
|
|
40
|
+
props.router.adapters.replaceObject(config.currentProps, "props" in componentConfig ? componentConfig.props : {});
|
|
41
41
|
preventRedirect = true;
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
if (preventRedirect) return;
|
|
45
|
-
props.
|
|
45
|
+
props.router.adapters.batch(() => {
|
|
46
46
|
if (config.loadedComponentName) {
|
|
47
47
|
props.beforeUpdatePageComponent?.();
|
|
48
48
|
}
|
|
49
49
|
props.beforeSetPageComponent?.(componentConfig);
|
|
50
|
-
props.
|
|
51
|
-
props.
|
|
50
|
+
props.router.adapters.batch(() => {
|
|
51
|
+
props.router.adapters.replaceObject(config.currentProps, "props" in componentConfig ? componentConfig.props : {});
|
|
52
52
|
config.loadedComponentName = currentRouteName;
|
|
53
53
|
config.loadedComponentPage = componentConfig.pageName;
|
|
54
54
|
});
|
|
@@ -56,12 +56,12 @@ function Router(props) {
|
|
|
56
56
|
}
|
|
57
57
|
props.beforeMount?.();
|
|
58
58
|
redirectOnHistoryPop();
|
|
59
|
-
if (props.
|
|
60
|
-
props.
|
|
59
|
+
if (props.router.adapters.immediateSetComponent) {
|
|
60
|
+
props.router.adapters.batch(() => {
|
|
61
61
|
setLoadedComponent();
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
|
-
props.
|
|
64
|
+
props.router.adapters.autorun(() => setLoadedComponent());
|
|
65
65
|
return (
|
|
66
66
|
// @ts-ignore
|
|
67
67
|
_$createComponent(Show, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../packages/preact/Router.tsx"],"names":[],"mappings":"AACA,OAAO,EAA4B,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAkGtF,wBAAgB,MAAM,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../packages/preact/Router.tsx"],"names":[],"mappings":"AACA,OAAO,EAA4B,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAkGtF,wBAAgB,MAAM,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,GAK1D,GAAG,CACzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../packages/adapters/kr-observable-preact.ts","../packages/adapters/kr-observable.ts","../packages/adapters/mobx-preact.ts","../packages/adapters/mobx-
|
|
1
|
+
{"root":["../packages/adapters/kr-observable-preact.ts","../packages/adapters/kr-observable-react.ts","../packages/adapters/kr-observable-solid.ts","../packages/adapters/mobx-preact.ts","../packages/adapters/mobx-react.ts","../packages/adapters/mobx-solid.ts","../packages/adapters/solid.ts","../packages/core/createRouter.ts","../packages/core/createRoutes.ts","../packages/core/index.ts","../packages/core/types/InterfaceRouterStore.ts","../packages/core/types/TypeCurrentRoute.ts","../packages/core/types/TypeLifecycleConfig.ts","../packages/core/types/TypePropsRouter.ts","../packages/core/types/TypeRedirectToParams.ts","../packages/core/types/TypeRoute.ts","../packages/core/types/TypeRouteRaw.ts","../packages/core/types/TypeRouteWithParams.ts","../packages/core/types/TypeValidator.ts","../packages/core/utils/PreventError.ts","../packages/core/utils/RedirectError.ts","../packages/core/utils/addNames.ts","../packages/core/utils/constants.ts","../packages/core/utils/dynamic.ts","../packages/core/utils/findRouteByPathname.ts","../packages/core/utils/getDynamicValues.ts","../packages/core/utils/getInitialRoute.ts","../packages/core/utils/getQueryValues.ts","../packages/core/utils/getTypedEntries.ts","../packages/core/utils/history.ts","../packages/core/utils/loadComponentToConfig.ts","../packages/core/utils/queryString.ts","../packages/core/utils/replaceDynamicValues.ts","../packages/preact/Router.tsx","../packages/preact/index.ts","../packages/react/Router.tsx","../packages/react/index.ts"],"version":"5.9.2"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "reactive-route",
|
|
3
3
|
"author": "Dmitry Kazakov",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"version": "0.0.1-alpha.
|
|
5
|
+
"version": "0.0.1-alpha.22",
|
|
6
6
|
"description": "Reactive Router for different frameworks",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
@@ -29,8 +29,7 @@
|
|
|
29
29
|
]
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"history": "5.3.0"
|
|
33
|
-
"query-string": "7.1.3"
|
|
32
|
+
"history": "5.3.0"
|
|
34
33
|
},
|
|
35
34
|
"devDependencies": {
|
|
36
35
|
"@types/babel__core": "7.20.5",
|
|
@@ -90,10 +89,10 @@
|
|
|
90
89
|
"require": "./dist/cjs/solid/index.js",
|
|
91
90
|
"import": "./dist/esm/solid/index.js"
|
|
92
91
|
},
|
|
93
|
-
"./adapters/mobx": {
|
|
94
|
-
"types": "./dist/adapters/mobx.d.ts",
|
|
95
|
-
"require": "./dist/cjs/adapters/mobx/index.js",
|
|
96
|
-
"import": "./dist/esm/adapters/mobx/index.js"
|
|
92
|
+
"./adapters/mobx-react": {
|
|
93
|
+
"types": "./dist/adapters/mobx-react.d.ts",
|
|
94
|
+
"require": "./dist/cjs/adapters/mobx-react/index.js",
|
|
95
|
+
"import": "./dist/esm/adapters/mobx-react/index.js"
|
|
97
96
|
},
|
|
98
97
|
"./adapters/mobx-preact": {
|
|
99
98
|
"types": "./dist/adapters/mobx-preact.d.ts",
|
|
@@ -110,10 +109,15 @@
|
|
|
110
109
|
"require": "./dist/cjs/adapters/solid/index.js",
|
|
111
110
|
"import": "./dist/esm/adapters/solid/index.js"
|
|
112
111
|
},
|
|
113
|
-
"./adapters/kr-observable": {
|
|
114
|
-
"types": "./dist/adapters/kr-observable.d.ts",
|
|
115
|
-
"require": "./dist/cjs/adapters/kr-observable/index.js",
|
|
116
|
-
"import": "./dist/esm/adapters/kr-observable/index.js"
|
|
112
|
+
"./adapters/kr-observable-react": {
|
|
113
|
+
"types": "./dist/adapters/kr-observable-react.d.ts",
|
|
114
|
+
"require": "./dist/cjs/adapters/kr-observable-react/index.js",
|
|
115
|
+
"import": "./dist/esm/adapters/kr-observable-react/index.js"
|
|
116
|
+
},
|
|
117
|
+
"./adapters/kr-observable-solid": {
|
|
118
|
+
"types": "./dist/adapters/kr-observable-solid.d.ts",
|
|
119
|
+
"require": "./dist/cjs/adapters/kr-observable-solid/index.js",
|
|
120
|
+
"import": "./dist/esm/adapters/kr-observable-solid/index.js"
|
|
117
121
|
},
|
|
118
122
|
"./adapters/kr-observable-preact": {
|
|
119
123
|
"types": "./dist/adapters/kr-observable-preact.d.ts",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kr-observable.d.ts","sourceRoot":"","sources":["../../packages/adapters/kr-observable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,eAAO,MAAM,QAAQ,EAAE,YAYtB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mobx.d.ts","sourceRoot":"","sources":["../../packages/adapters/mobx.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,eAAO,MAAM,QAAQ,EAAE,YAetB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createRouterConfig.d.ts","sourceRoot":"","sources":["../../packages/core/createRouterConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,wBAAgB,kBAAkB,CAChC,OAAO,SAAS;KAAG,GAAG,IAAI,MAAM,OAAO,GAAG,UAAU,GAAG,eAAe,GAAG,YAAY;CAAE,EAEvF,MAAM,EAAE,OAAO,GACd;KACA,GAAG,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG;QACrC,IAAI,EAAE,GAAG,CAAC;QACV,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,GAAG,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACpC;CACF,CAEA"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { InterfaceRouterStore, TypeCreateRouterStore } from './types/InterfaceRouterStore';
|
|
2
|
-
import { TypeRoute } from './types/TypeRoute';
|
|
3
|
-
export declare function createRouterStore<TRoutes extends Record<string | 'notFound' | 'internalError', TypeRoute>>({ adapters, routes, lifecycleParams, }: TypeCreateRouterStore<TRoutes>): InterfaceRouterStore<TRoutes>;
|
|
4
|
-
//# sourceMappingURL=createRouterStore.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createRouterStore.d.ts","sourceRoot":"","sources":["../../packages/core/createRouterStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAG3F,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAS9C,wBAAgB,iBAAiB,CAC/B,OAAO,SAAS,MAAM,CAAC,MAAM,GAAG,UAAU,GAAG,eAAe,EAAE,SAAS,CAAC,EACxE,EACA,QAAQ,EACR,MAAM,EACN,eAAe,GAChB,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,oBAAoB,CAAC,OAAO,CAAC,CA4OhE"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|