reactive-route 0.0.1-alpha.16 → 0.0.1-alpha.18
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-preact.d.ts +3 -0
- package/dist/adapters/kr-observable-preact.d.ts.map +1 -0
- package/dist/adapters/mobx-preact.d.ts +3 -0
- package/dist/adapters/mobx-preact.d.ts.map +1 -0
- package/dist/adapters/mobx-solid.d.ts +3 -0
- package/dist/adapters/mobx-solid.d.ts.map +1 -0
- package/dist/cjs/adapters/kr-observable-preact/index.js +39 -0
- package/dist/cjs/adapters/kr-observable-preact/package.json +1 -0
- package/dist/cjs/adapters/mobx-preact/index.js +43 -0
- package/dist/cjs/adapters/mobx-preact/package.json +1 -0
- package/dist/cjs/adapters/mobx-solid/index.js +41 -0
- package/dist/cjs/adapters/mobx-solid/package.json +1 -0
- package/dist/cjs/index.js +22 -36
- package/dist/cjs/preact/index.js +104 -0
- package/dist/cjs/preact/package.json +1 -0
- package/dist/core/createRouterStore.d.ts.map +1 -1
- package/dist/core/types/TypeRedirectToParams.d.ts +0 -4
- package/dist/core/types/TypeRedirectToParams.d.ts.map +1 -1
- package/dist/esm/adapters/kr-observable-preact/index.js +18 -0
- package/dist/esm/adapters/kr-observable-preact/package.json +1 -0
- package/dist/esm/adapters/mobx-preact/index.js +22 -0
- package/dist/esm/adapters/mobx-preact/package.json +1 -0
- package/dist/esm/adapters/mobx-solid/index.js +20 -0
- package/dist/esm/adapters/mobx-solid/package.json +1 -0
- package/dist/esm/index.js +22 -36
- package/dist/esm/preact/index.js +81 -0
- package/dist/esm/preact/package.json +1 -0
- package/dist/preact/Router.d.ts +3 -0
- package/dist/preact/Router.d.ts.map +1 -0
- package/dist/preact/index.d.ts +2 -0
- package/dist/preact/index.d.ts.map +1 -0
- package/dist/solid/Router.d.ts.map +1 -1
- package/dist/tsconfig.types.react.tsbuildinfo +1 -1
- package/package.json +28 -9
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kr-observable-preact.d.ts","sourceRoot":"","sources":["../../packages/adapters/kr-observable-preact.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,eAAO,MAAM,QAAQ,EAAE,YAYtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mobx-preact.d.ts","sourceRoot":"","sources":["../../packages/adapters/mobx-preact.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,eAAO,MAAM,QAAQ,EAAE,YAetB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mobx-solid.d.ts","sourceRoot":"","sources":["../../packages/adapters/mobx-solid.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,eAAO,MAAM,QAAQ,EAAE,YActB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// packages/adapters/kr-observable-preact.ts
|
|
21
|
+
var kr_observable_preact_exports = {};
|
|
22
|
+
__export(kr_observable_preact_exports, {
|
|
23
|
+
adapters: () => adapters
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(kr_observable_preact_exports);
|
|
26
|
+
var import_kr_observable = require("kr-observable");
|
|
27
|
+
var import_preact = require("kr-observable/preact");
|
|
28
|
+
var adapters = {
|
|
29
|
+
batch: (cb) => cb(),
|
|
30
|
+
autorun: import_kr_observable.autorun,
|
|
31
|
+
replaceObject: (obj, newObj) => {
|
|
32
|
+
for (const variableKey in obj) {
|
|
33
|
+
delete obj[variableKey];
|
|
34
|
+
}
|
|
35
|
+
Object.assign(obj, newObj);
|
|
36
|
+
},
|
|
37
|
+
makeObservable: import_kr_observable.makeObservable,
|
|
38
|
+
observer: import_preact.observer
|
|
39
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type": "commonjs"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// packages/adapters/mobx-preact.ts
|
|
21
|
+
var mobx_preact_exports = {};
|
|
22
|
+
__export(mobx_preact_exports, {
|
|
23
|
+
adapters: () => adapters
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(mobx_preact_exports);
|
|
26
|
+
var import_mobx = require("mobx");
|
|
27
|
+
var import_mobx_preact = require("mobx-preact");
|
|
28
|
+
var adapters = {
|
|
29
|
+
batch: import_mobx.runInAction,
|
|
30
|
+
autorun: import_mobx.autorun,
|
|
31
|
+
observer: import_mobx_preact.observer,
|
|
32
|
+
replaceObject: (obj, newObj) => {
|
|
33
|
+
(0, import_mobx.runInAction)(() => {
|
|
34
|
+
for (const variableKey in obj) {
|
|
35
|
+
if (obj.hasOwnProperty(variableKey)) {
|
|
36
|
+
delete obj[variableKey];
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
Object.assign(obj, newObj);
|
|
40
|
+
});
|
|
41
|
+
},
|
|
42
|
+
makeObservable: import_mobx.observable
|
|
43
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type": "commonjs"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// packages/adapters/mobx-solid.ts
|
|
21
|
+
var mobx_solid_exports = {};
|
|
22
|
+
__export(mobx_solid_exports, {
|
|
23
|
+
adapters: () => adapters
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(mobx_solid_exports);
|
|
26
|
+
var import_mobx = require("mobx");
|
|
27
|
+
var adapters = {
|
|
28
|
+
batch: import_mobx.runInAction,
|
|
29
|
+
autorun: import_mobx.autorun,
|
|
30
|
+
replaceObject: (obj, newObj) => {
|
|
31
|
+
(0, import_mobx.runInAction)(() => {
|
|
32
|
+
for (const variableKey in obj) {
|
|
33
|
+
if (obj.hasOwnProperty(variableKey)) {
|
|
34
|
+
delete obj[variableKey];
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
Object.assign(obj, newObj);
|
|
38
|
+
});
|
|
39
|
+
},
|
|
40
|
+
makeObservable: import_mobx.observable
|
|
41
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type": "commonjs"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -218,8 +218,7 @@ function createRouterStore({
|
|
|
218
218
|
return routerStore.redirectTo(getInitialRoute({ routes, pathname: params.pathname }));
|
|
219
219
|
};
|
|
220
220
|
routerStore.redirectTo = async function redirectTo(config) {
|
|
221
|
-
const { route: routeName, noHistoryPush
|
|
222
|
-
const isClient = typeof asClient === "boolean" ? asClient : constants.isClient;
|
|
221
|
+
const { route: routeName, noHistoryPush } = config;
|
|
223
222
|
let currentRoute;
|
|
224
223
|
let currentPathname;
|
|
225
224
|
let currentUrl;
|
|
@@ -261,7 +260,10 @@ function createRouterStore({
|
|
|
261
260
|
if (currentPathname === nextPathname) {
|
|
262
261
|
if (currentSearch !== nextSearch) {
|
|
263
262
|
adapters.batch(() => {
|
|
264
|
-
adapters.replaceObject(routerStore.currentRoute
|
|
263
|
+
adapters.replaceObject(routerStore.currentRoute, {
|
|
264
|
+
...routerStore.currentRoute,
|
|
265
|
+
query: nextQuery || {}
|
|
266
|
+
});
|
|
265
267
|
routerStore.routesHistory.push(nextUrl);
|
|
266
268
|
});
|
|
267
269
|
if (history && !noHistoryPush) {
|
|
@@ -278,38 +280,22 @@ function createRouterStore({
|
|
|
278
280
|
routerStore.isRedirecting = true;
|
|
279
281
|
});
|
|
280
282
|
try {
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
);
|
|
296
|
-
const redirectConfig = await nextRoute.beforeEnter?.(
|
|
297
|
-
{
|
|
298
|
-
nextUrl,
|
|
299
|
-
nextRoute,
|
|
300
|
-
nextQuery,
|
|
301
|
-
nextSearch,
|
|
302
|
-
nextPathname,
|
|
303
|
-
currentUrl,
|
|
304
|
-
currentQuery,
|
|
305
|
-
currentRoute,
|
|
306
|
-
currentSearch,
|
|
307
|
-
currentPathname
|
|
308
|
-
},
|
|
309
|
-
...lifecycleParams || []
|
|
310
|
-
);
|
|
283
|
+
const config2 = {
|
|
284
|
+
nextUrl,
|
|
285
|
+
nextRoute,
|
|
286
|
+
nextQuery,
|
|
287
|
+
nextSearch,
|
|
288
|
+
nextPathname,
|
|
289
|
+
currentUrl,
|
|
290
|
+
currentQuery,
|
|
291
|
+
currentRoute,
|
|
292
|
+
currentSearch,
|
|
293
|
+
currentPathname
|
|
294
|
+
};
|
|
295
|
+
await currentRoute?.beforeLeave?.(config2, ...lifecycleParams || []);
|
|
296
|
+
const redirectConfig = await nextRoute.beforeEnter?.(config2, ...lifecycleParams || []);
|
|
311
297
|
if (typeof redirectConfig === "object") {
|
|
312
|
-
if (isClient) return redirectTo(
|
|
298
|
+
if (constants.isClient) return redirectTo(redirectConfig);
|
|
313
299
|
const redirectRoute = routes[redirectConfig.route];
|
|
314
300
|
const redirectParams = "params" in redirectConfig && redirectConfig.params ? redirectConfig.params : void 0;
|
|
315
301
|
let redirectUrl = replaceDynamicValues({
|
|
@@ -340,8 +326,8 @@ function createRouterStore({
|
|
|
340
326
|
name: routes.internalError.name,
|
|
341
327
|
path: routes.internalError.path,
|
|
342
328
|
props: routes[routes.internalError.name].props,
|
|
343
|
-
query: {},
|
|
344
|
-
params: {},
|
|
329
|
+
query: adapters.makeObservable({}),
|
|
330
|
+
params: adapters.makeObservable({}),
|
|
345
331
|
pageName: routes[routes.internalError.name].pageName
|
|
346
332
|
});
|
|
347
333
|
routerStore.isRedirecting = false;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// packages/preact/index.ts
|
|
21
|
+
var preact_exports = {};
|
|
22
|
+
__export(preact_exports, {
|
|
23
|
+
Router: () => Router
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(preact_exports);
|
|
26
|
+
|
|
27
|
+
// packages/preact/Router.tsx
|
|
28
|
+
var import_hooks = require("preact/hooks");
|
|
29
|
+
var import_reactive_route = require("reactive-route");
|
|
30
|
+
var import_jsx_runtime = require("preact/jsx-runtime");
|
|
31
|
+
function RouterInner(props) {
|
|
32
|
+
const disposerRef = (0, import_hooks.useRef)(null);
|
|
33
|
+
const redirectOnHistoryPop = (0, import_hooks.useCallback)(() => {
|
|
34
|
+
if (!import_reactive_route.history) return;
|
|
35
|
+
import_reactive_route.history.listen((params) => {
|
|
36
|
+
if (params.action !== "POP") return;
|
|
37
|
+
const previousRoutePathname = props.routerStore.routesHistory[props.routerStore.routesHistory.length - 2];
|
|
38
|
+
if (previousRoutePathname === params.location.pathname) {
|
|
39
|
+
props.routerStore.adapters.batch(() => props.routerStore.routesHistory.pop());
|
|
40
|
+
}
|
|
41
|
+
void props.routerStore.redirectTo({
|
|
42
|
+
noHistoryPush: true,
|
|
43
|
+
...(0, import_reactive_route.getInitialRoute)({
|
|
44
|
+
routes: props.routes,
|
|
45
|
+
pathname: import_reactive_route.history.location.pathname
|
|
46
|
+
})
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
}, []);
|
|
50
|
+
const [config] = (0, import_hooks.useState)(
|
|
51
|
+
() => props.routerStore.adapters.makeObservable({
|
|
52
|
+
loadedComponentName: void 0,
|
|
53
|
+
loadedComponentPage: void 0,
|
|
54
|
+
currentProps: {}
|
|
55
|
+
})
|
|
56
|
+
);
|
|
57
|
+
const setLoadedComponent = (0, import_hooks.useCallback)(() => {
|
|
58
|
+
const { loadedComponentName, loadedComponentPage } = config;
|
|
59
|
+
const { currentRoute, isRedirecting } = props.routerStore;
|
|
60
|
+
const componentConfig = props.routes[currentRoute.name];
|
|
61
|
+
let preventRedirect = false;
|
|
62
|
+
if (isRedirecting) preventRedirect = true;
|
|
63
|
+
else if (loadedComponentName === currentRoute.name) preventRedirect = true;
|
|
64
|
+
else if (loadedComponentPage != null && currentRoute.name != null) {
|
|
65
|
+
if (loadedComponentPage === currentRoute.pageName) {
|
|
66
|
+
props.routerStore.adapters.batch(() => {
|
|
67
|
+
config.currentProps = "props" in componentConfig ? componentConfig.props || {} : {};
|
|
68
|
+
});
|
|
69
|
+
preventRedirect = true;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (preventRedirect) return;
|
|
73
|
+
props.routerStore.adapters.batch(() => {
|
|
74
|
+
if (loadedComponentName) props.beforeUpdatePageComponent?.();
|
|
75
|
+
props.beforeSetPageComponent?.(componentConfig);
|
|
76
|
+
config.currentProps = "props" in componentConfig ? componentConfig.props || {} : {};
|
|
77
|
+
config.loadedComponentName = currentRoute.name;
|
|
78
|
+
config.loadedComponentPage = componentConfig.pageName;
|
|
79
|
+
});
|
|
80
|
+
}, []);
|
|
81
|
+
(0, import_hooks.useState)(() => {
|
|
82
|
+
props.routerStore.adapters.batch(() => {
|
|
83
|
+
props.beforeMount?.();
|
|
84
|
+
redirectOnHistoryPop();
|
|
85
|
+
setLoadedComponent();
|
|
86
|
+
disposerRef.current = props.routerStore.adapters.autorun(setLoadedComponent);
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
(0, import_hooks.useEffect)(() => {
|
|
90
|
+
return () => {
|
|
91
|
+
disposerRef.current?.();
|
|
92
|
+
};
|
|
93
|
+
}, []);
|
|
94
|
+
if (!config.loadedComponentName) return null;
|
|
95
|
+
const LoadedComponent = props.routes[config.loadedComponentName]?.component || null;
|
|
96
|
+
if (LoadedComponent) return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(LoadedComponent, { ...config.currentProps });
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
function Router(props) {
|
|
100
|
+
const [Component] = (0, import_hooks.useState)(
|
|
101
|
+
() => props.routerStore.adapters.observer ? props.routerStore.adapters.observer(RouterInner) : RouterInner
|
|
102
|
+
);
|
|
103
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, { ...props });
|
|
104
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type": "commonjs"}
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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"}
|
|
@@ -4,21 +4,17 @@ export type TypeRedirectToParams<TRoutes extends Record<string, TypeRoute>, TRou
|
|
|
4
4
|
route: TRouteName;
|
|
5
5
|
params: Record<keyof TRoutes[TRouteName]['params'], string>;
|
|
6
6
|
query?: Partial<Record<keyof TRoutes[TRouteName]['query'], string>>;
|
|
7
|
-
asClient?: boolean;
|
|
8
7
|
noHistoryPush?: boolean;
|
|
9
8
|
} : {
|
|
10
9
|
route: TRouteName;
|
|
11
10
|
params: Record<keyof TRoutes[TRouteName]['params'], string>;
|
|
12
|
-
asClient?: boolean;
|
|
13
11
|
noHistoryPush?: boolean;
|
|
14
12
|
} : TRoutes[TRouteName]['query'] extends Record<string, TypeValidator> ? {
|
|
15
13
|
route: TRouteName;
|
|
16
14
|
query?: Partial<Record<keyof TRoutes[TRouteName]['query'], string>>;
|
|
17
|
-
asClient?: boolean;
|
|
18
15
|
noHistoryPush?: boolean;
|
|
19
16
|
} : {
|
|
20
17
|
route: TRouteName;
|
|
21
|
-
asClient?: boolean;
|
|
22
18
|
noHistoryPush?: boolean;
|
|
23
19
|
};
|
|
24
20
|
//# sourceMappingURL=TypeRedirectToParams.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeRedirectToParams.d.ts","sourceRoot":"","sources":["../../../packages/core/types/TypeRedirectToParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,MAAM,oBAAoB,CAC9B,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EACzC,UAAU,SAAS,MAAM,OAAO,IAC9B,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GACnE,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAChE;IACE,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACpE,
|
|
1
|
+
{"version":3,"file":"TypeRedirectToParams.d.ts","sourceRoot":"","sources":["../../../packages/core/types/TypeRedirectToParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,MAAM,oBAAoB,CAC9B,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EACzC,UAAU,SAAS,MAAM,OAAO,IAC9B,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GACnE,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAChE;IACE,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACpE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GACD;IACE,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GACH,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAChE;IACE,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACpE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GACD;IACE,KAAK,EAAE,UAAU,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// packages/adapters/kr-observable-preact.ts
|
|
2
|
+
import { autorun, makeObservable } from "kr-observable";
|
|
3
|
+
import { observer } from "kr-observable/preact";
|
|
4
|
+
var adapters = {
|
|
5
|
+
batch: (cb) => cb(),
|
|
6
|
+
autorun,
|
|
7
|
+
replaceObject: (obj, newObj) => {
|
|
8
|
+
for (const variableKey in obj) {
|
|
9
|
+
delete obj[variableKey];
|
|
10
|
+
}
|
|
11
|
+
Object.assign(obj, newObj);
|
|
12
|
+
},
|
|
13
|
+
makeObservable,
|
|
14
|
+
observer
|
|
15
|
+
};
|
|
16
|
+
export {
|
|
17
|
+
adapters
|
|
18
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type": "module"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// packages/adapters/mobx-preact.ts
|
|
2
|
+
import { autorun, observable, runInAction } from "mobx";
|
|
3
|
+
import { observer } from "mobx-preact";
|
|
4
|
+
var adapters = {
|
|
5
|
+
batch: runInAction,
|
|
6
|
+
autorun,
|
|
7
|
+
observer,
|
|
8
|
+
replaceObject: (obj, newObj) => {
|
|
9
|
+
runInAction(() => {
|
|
10
|
+
for (const variableKey in obj) {
|
|
11
|
+
if (obj.hasOwnProperty(variableKey)) {
|
|
12
|
+
delete obj[variableKey];
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
Object.assign(obj, newObj);
|
|
16
|
+
});
|
|
17
|
+
},
|
|
18
|
+
makeObservable: observable
|
|
19
|
+
};
|
|
20
|
+
export {
|
|
21
|
+
adapters
|
|
22
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type": "module"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// packages/adapters/mobx-solid.ts
|
|
2
|
+
import { autorun, observable, runInAction } from "mobx";
|
|
3
|
+
var adapters = {
|
|
4
|
+
batch: runInAction,
|
|
5
|
+
autorun,
|
|
6
|
+
replaceObject: (obj, newObj) => {
|
|
7
|
+
runInAction(() => {
|
|
8
|
+
for (const variableKey in obj) {
|
|
9
|
+
if (obj.hasOwnProperty(variableKey)) {
|
|
10
|
+
delete obj[variableKey];
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
Object.assign(obj, newObj);
|
|
14
|
+
});
|
|
15
|
+
},
|
|
16
|
+
makeObservable: observable
|
|
17
|
+
};
|
|
18
|
+
export {
|
|
19
|
+
adapters
|
|
20
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type": "module"}
|
package/dist/esm/index.js
CHANGED
|
@@ -175,8 +175,7 @@ function createRouterStore({
|
|
|
175
175
|
return routerStore.redirectTo(getInitialRoute({ routes, pathname: params.pathname }));
|
|
176
176
|
};
|
|
177
177
|
routerStore.redirectTo = async function redirectTo(config) {
|
|
178
|
-
const { route: routeName, noHistoryPush
|
|
179
|
-
const isClient = typeof asClient === "boolean" ? asClient : constants.isClient;
|
|
178
|
+
const { route: routeName, noHistoryPush } = config;
|
|
180
179
|
let currentRoute;
|
|
181
180
|
let currentPathname;
|
|
182
181
|
let currentUrl;
|
|
@@ -218,7 +217,10 @@ function createRouterStore({
|
|
|
218
217
|
if (currentPathname === nextPathname) {
|
|
219
218
|
if (currentSearch !== nextSearch) {
|
|
220
219
|
adapters.batch(() => {
|
|
221
|
-
adapters.replaceObject(routerStore.currentRoute
|
|
220
|
+
adapters.replaceObject(routerStore.currentRoute, {
|
|
221
|
+
...routerStore.currentRoute,
|
|
222
|
+
query: nextQuery || {}
|
|
223
|
+
});
|
|
222
224
|
routerStore.routesHistory.push(nextUrl);
|
|
223
225
|
});
|
|
224
226
|
if (history && !noHistoryPush) {
|
|
@@ -235,38 +237,22 @@ function createRouterStore({
|
|
|
235
237
|
routerStore.isRedirecting = true;
|
|
236
238
|
});
|
|
237
239
|
try {
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
);
|
|
253
|
-
const redirectConfig = await nextRoute.beforeEnter?.(
|
|
254
|
-
{
|
|
255
|
-
nextUrl,
|
|
256
|
-
nextRoute,
|
|
257
|
-
nextQuery,
|
|
258
|
-
nextSearch,
|
|
259
|
-
nextPathname,
|
|
260
|
-
currentUrl,
|
|
261
|
-
currentQuery,
|
|
262
|
-
currentRoute,
|
|
263
|
-
currentSearch,
|
|
264
|
-
currentPathname
|
|
265
|
-
},
|
|
266
|
-
...lifecycleParams || []
|
|
267
|
-
);
|
|
240
|
+
const config2 = {
|
|
241
|
+
nextUrl,
|
|
242
|
+
nextRoute,
|
|
243
|
+
nextQuery,
|
|
244
|
+
nextSearch,
|
|
245
|
+
nextPathname,
|
|
246
|
+
currentUrl,
|
|
247
|
+
currentQuery,
|
|
248
|
+
currentRoute,
|
|
249
|
+
currentSearch,
|
|
250
|
+
currentPathname
|
|
251
|
+
};
|
|
252
|
+
await currentRoute?.beforeLeave?.(config2, ...lifecycleParams || []);
|
|
253
|
+
const redirectConfig = await nextRoute.beforeEnter?.(config2, ...lifecycleParams || []);
|
|
268
254
|
if (typeof redirectConfig === "object") {
|
|
269
|
-
if (isClient) return redirectTo(
|
|
255
|
+
if (constants.isClient) return redirectTo(redirectConfig);
|
|
270
256
|
const redirectRoute = routes[redirectConfig.route];
|
|
271
257
|
const redirectParams = "params" in redirectConfig && redirectConfig.params ? redirectConfig.params : void 0;
|
|
272
258
|
let redirectUrl = replaceDynamicValues({
|
|
@@ -297,8 +283,8 @@ function createRouterStore({
|
|
|
297
283
|
name: routes.internalError.name,
|
|
298
284
|
path: routes.internalError.path,
|
|
299
285
|
props: routes[routes.internalError.name].props,
|
|
300
|
-
query: {},
|
|
301
|
-
params: {},
|
|
286
|
+
query: adapters.makeObservable({}),
|
|
287
|
+
params: adapters.makeObservable({}),
|
|
302
288
|
pageName: routes[routes.internalError.name].pageName
|
|
303
289
|
});
|
|
304
290
|
routerStore.isRedirecting = false;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
// packages/preact/Router.tsx
|
|
2
|
+
import { useCallback, useEffect, useRef, useState } from "preact/hooks";
|
|
3
|
+
import { getInitialRoute, history } from "reactive-route";
|
|
4
|
+
import { jsx } from "preact/jsx-runtime";
|
|
5
|
+
function RouterInner(props) {
|
|
6
|
+
const disposerRef = useRef(null);
|
|
7
|
+
const redirectOnHistoryPop = useCallback(() => {
|
|
8
|
+
if (!history) return;
|
|
9
|
+
history.listen((params) => {
|
|
10
|
+
if (params.action !== "POP") return;
|
|
11
|
+
const previousRoutePathname = props.routerStore.routesHistory[props.routerStore.routesHistory.length - 2];
|
|
12
|
+
if (previousRoutePathname === params.location.pathname) {
|
|
13
|
+
props.routerStore.adapters.batch(() => props.routerStore.routesHistory.pop());
|
|
14
|
+
}
|
|
15
|
+
void props.routerStore.redirectTo({
|
|
16
|
+
noHistoryPush: true,
|
|
17
|
+
...getInitialRoute({
|
|
18
|
+
routes: props.routes,
|
|
19
|
+
pathname: history.location.pathname
|
|
20
|
+
})
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
}, []);
|
|
24
|
+
const [config] = useState(
|
|
25
|
+
() => props.routerStore.adapters.makeObservable({
|
|
26
|
+
loadedComponentName: void 0,
|
|
27
|
+
loadedComponentPage: void 0,
|
|
28
|
+
currentProps: {}
|
|
29
|
+
})
|
|
30
|
+
);
|
|
31
|
+
const setLoadedComponent = useCallback(() => {
|
|
32
|
+
const { loadedComponentName, loadedComponentPage } = config;
|
|
33
|
+
const { currentRoute, isRedirecting } = props.routerStore;
|
|
34
|
+
const componentConfig = props.routes[currentRoute.name];
|
|
35
|
+
let preventRedirect = false;
|
|
36
|
+
if (isRedirecting) preventRedirect = true;
|
|
37
|
+
else if (loadedComponentName === currentRoute.name) preventRedirect = true;
|
|
38
|
+
else if (loadedComponentPage != null && currentRoute.name != null) {
|
|
39
|
+
if (loadedComponentPage === currentRoute.pageName) {
|
|
40
|
+
props.routerStore.adapters.batch(() => {
|
|
41
|
+
config.currentProps = "props" in componentConfig ? componentConfig.props || {} : {};
|
|
42
|
+
});
|
|
43
|
+
preventRedirect = true;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (preventRedirect) return;
|
|
47
|
+
props.routerStore.adapters.batch(() => {
|
|
48
|
+
if (loadedComponentName) props.beforeUpdatePageComponent?.();
|
|
49
|
+
props.beforeSetPageComponent?.(componentConfig);
|
|
50
|
+
config.currentProps = "props" in componentConfig ? componentConfig.props || {} : {};
|
|
51
|
+
config.loadedComponentName = currentRoute.name;
|
|
52
|
+
config.loadedComponentPage = componentConfig.pageName;
|
|
53
|
+
});
|
|
54
|
+
}, []);
|
|
55
|
+
useState(() => {
|
|
56
|
+
props.routerStore.adapters.batch(() => {
|
|
57
|
+
props.beforeMount?.();
|
|
58
|
+
redirectOnHistoryPop();
|
|
59
|
+
setLoadedComponent();
|
|
60
|
+
disposerRef.current = props.routerStore.adapters.autorun(setLoadedComponent);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
useEffect(() => {
|
|
64
|
+
return () => {
|
|
65
|
+
disposerRef.current?.();
|
|
66
|
+
};
|
|
67
|
+
}, []);
|
|
68
|
+
if (!config.loadedComponentName) return null;
|
|
69
|
+
const LoadedComponent = props.routes[config.loadedComponentName]?.component || null;
|
|
70
|
+
if (LoadedComponent) return /* @__PURE__ */ jsx(LoadedComponent, { ...config.currentProps });
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
function Router(props) {
|
|
74
|
+
const [Component] = useState(
|
|
75
|
+
() => props.routerStore.adapters.observer ? props.routerStore.adapters.observer(RouterInner) : RouterInner
|
|
76
|
+
);
|
|
77
|
+
return /* @__PURE__ */ jsx(Component, { ...props });
|
|
78
|
+
}
|
|
79
|
+
export {
|
|
80
|
+
Router
|
|
81
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type": "module"}
|
|
@@ -0,0 +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,GAO1D,GAAG,CACzC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/preact/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../packages/solid/Router.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4B,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAItF,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/solid/Router.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4B,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAItF,wBAAgB,MAAM,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,kCA0FhG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../packages/adapters/kr-observable.ts","../packages/adapters/mobx.ts","../packages/adapters/solid.ts","../packages/core/createRouterConfig.ts","../packages/core/createRouterStore.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/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/replaceDynamicValues.ts","../packages/react/Router.tsx","../packages/react/index.ts"],"version":"5.9.2"}
|
|
1
|
+
{"root":["../packages/adapters/kr-observable-preact.ts","../packages/adapters/kr-observable.ts","../packages/adapters/mobx-preact.ts","../packages/adapters/mobx-solid.ts","../packages/adapters/mobx.ts","../packages/adapters/solid.ts","../packages/core/createRouterConfig.ts","../packages/core/createRouterStore.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/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/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.18",
|
|
6
6
|
"description": "Reactive Router for different frameworks",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
@@ -33,32 +33,36 @@
|
|
|
33
33
|
"query-string": "7.1.3"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@
|
|
36
|
+
"@types/babel__core": "7.20.5",
|
|
37
|
+
"@babel/core": "7.28.4",
|
|
37
38
|
"@babel/preset-env": "7.28.3",
|
|
38
39
|
"@babel/preset-typescript": "7.27.1",
|
|
40
|
+
"babel-preset-solid": "1.9.9",
|
|
41
|
+
"vite-plugin-babel": "1.3.2",
|
|
39
42
|
"@biomejs/biome": "2.2.2",
|
|
40
|
-
"@espcom/esbuild-plugin-replace": "1.3.
|
|
43
|
+
"@espcom/esbuild-plugin-replace": "1.3.1",
|
|
41
44
|
"@solidjs/testing-library": "0.8.10",
|
|
42
45
|
"@testing-library/react": "16.3.0",
|
|
46
|
+
"@testing-library/preact": "3.2.4",
|
|
43
47
|
"@types/lodash": "4.17.16",
|
|
44
48
|
"@types/node": "22.14.1",
|
|
45
49
|
"@vitest/coverage-istanbul": "3.2.4",
|
|
46
|
-
"
|
|
50
|
+
"@preact/preset-vite": "2.10.2",
|
|
47
51
|
"badge-maker": "5.0.2",
|
|
48
|
-
"esbuild": "0.25.
|
|
49
|
-
"global-jsdom": "26.0.0",
|
|
52
|
+
"esbuild": "0.25.10",
|
|
50
53
|
"husky": "9.1.7",
|
|
51
|
-
"kr-observable": "3.1.
|
|
54
|
+
"kr-observable": "3.1.2",
|
|
52
55
|
"lint-staged": "16.1.6",
|
|
53
56
|
"lodash": "4.17.21",
|
|
54
57
|
"mobx": "6.13.7",
|
|
58
|
+
"mobx-preact": "3.0.0",
|
|
55
59
|
"mobx-react-lite": "4.1.0",
|
|
56
60
|
"react": "19.1.1",
|
|
57
|
-
"
|
|
61
|
+
"preact": "10.27.2",
|
|
62
|
+
"preact-render-to-string": "6.6.1",
|
|
58
63
|
"solid-js": "1.9.9",
|
|
59
64
|
"tsx": "4.20.5",
|
|
60
65
|
"typescript": "5.9.2",
|
|
61
|
-
"vite-plugin-solid": "2.11.8",
|
|
62
66
|
"vitepress": "1.6.4",
|
|
63
67
|
"vitepress-plugin-group-icons": "1.6.3",
|
|
64
68
|
"vitest": "3.2.4",
|
|
@@ -76,6 +80,11 @@
|
|
|
76
80
|
"require": "./dist/cjs/react/index.js",
|
|
77
81
|
"import": "./dist/esm/react/index.js"
|
|
78
82
|
},
|
|
83
|
+
"./preact": {
|
|
84
|
+
"types": "./dist/preact/index.d.ts",
|
|
85
|
+
"require": "./dist/cjs/preact/index.js",
|
|
86
|
+
"import": "./dist/esm/preact/index.js"
|
|
87
|
+
},
|
|
79
88
|
"./solid": {
|
|
80
89
|
"types": "./dist/solid/index.d.ts",
|
|
81
90
|
"require": "./dist/cjs/solid/index.js",
|
|
@@ -86,6 +95,11 @@
|
|
|
86
95
|
"require": "./dist/cjs/adapters/mobx/index.js",
|
|
87
96
|
"import": "./dist/esm/adapters/mobx/index.js"
|
|
88
97
|
},
|
|
98
|
+
"./adapters/mobx-preact": {
|
|
99
|
+
"types": "./dist/adapters/mobx-preact.d.ts",
|
|
100
|
+
"require": "./dist/cjs/adapters/mobx-preact/index.js",
|
|
101
|
+
"import": "./dist/esm/adapters/mobx-preact/index.js"
|
|
102
|
+
},
|
|
89
103
|
"./adapters/solid": {
|
|
90
104
|
"types": "./dist/adapters/solid.d.ts",
|
|
91
105
|
"require": "./dist/cjs/adapters/solid/index.js",
|
|
@@ -95,6 +109,11 @@
|
|
|
95
109
|
"types": "./dist/adapters/kr-observable.d.ts",
|
|
96
110
|
"require": "./dist/cjs/adapters/kr-observable/index.js",
|
|
97
111
|
"import": "./dist/esm/adapters/kr-observable/index.js"
|
|
112
|
+
},
|
|
113
|
+
"./adapters/kr-observable-preact": {
|
|
114
|
+
"types": "./dist/adapters/kr-observable-preact.d.ts",
|
|
115
|
+
"require": "./dist/cjs/adapters/kr-observable-preact/index.js",
|
|
116
|
+
"import": "./dist/esm/adapters/kr-observable-preact/index.js"
|
|
98
117
|
}
|
|
99
118
|
},
|
|
100
119
|
"main": "dist/cjs/index.js",
|