@xmachines/docs 1.0.0-beta.10
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/LICENSE +21 -0
- package/README.md +15 -0
- package/api/@xmachines/play/README.md +130 -0
- package/api/@xmachines/play/type-aliases/PlayEvent.md +81 -0
- package/api/@xmachines/play-actor/README.md +247 -0
- package/api/@xmachines/play-actor/classes/AbstractActor.md +520 -0
- package/api/@xmachines/play-actor/interfaces/Routable.md +29 -0
- package/api/@xmachines/play-actor/interfaces/ViewMetadata.md +17 -0
- package/api/@xmachines/play-actor/interfaces/Viewable.md +12 -0
- package/api/@xmachines/play-catalog/README.md +331 -0
- package/api/@xmachines/play-catalog/functions/defineCatalog.md +98 -0
- package/api/@xmachines/play-catalog/functions/defineComponents.md +134 -0
- package/api/@xmachines/play-catalog/type-aliases/Catalog.md +48 -0
- package/api/@xmachines/play-catalog/type-aliases/ComponentsFor.md +20 -0
- package/api/@xmachines/play-catalog/type-aliases/InferComponentProps.md +65 -0
- package/api/@xmachines/play-catalog/type-aliases/NoExtraKeys.md +17 -0
- package/api/@xmachines/play-react/README.md +423 -0
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +613 -0
- package/api/@xmachines/play-react/functions/useSignalEffect.md +68 -0
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +15 -0
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +14 -0
- package/api/@xmachines/play-react/interfaces/PlayRendererProps.md +15 -0
- package/api/@xmachines/play-react/variables/PlayRenderer.md +64 -0
- package/api/@xmachines/play-react-router/README.md +198 -0
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +321 -0
- package/api/@xmachines/play-react-router/classes/RouteMap.md +137 -0
- package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +19 -0
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +35 -0
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +119 -0
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +14 -0
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +17 -0
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-react-router-demo/README.md +137 -0
- package/api/@xmachines/play-router/README.md +502 -0
- package/api/@xmachines/play-router/classes/BaseRouteMap.md +142 -0
- package/api/@xmachines/play-router/classes/RouterBridgeBase.md +300 -0
- package/api/@xmachines/play-router/functions/buildRouteTree.md +27 -0
- package/api/@xmachines/play-router/functions/connectRouter.md +67 -0
- package/api/@xmachines/play-router/functions/crawlMachine.md +92 -0
- package/api/@xmachines/play-router/functions/createBrowserHistory.md +47 -0
- package/api/@xmachines/play-router/functions/createRouteMap.md +53 -0
- package/api/@xmachines/play-router/functions/createRouter.md +76 -0
- package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +32 -0
- package/api/@xmachines/play-router/functions/extractMachineRoutes.md +64 -0
- package/api/@xmachines/play-router/functions/extractRoute.md +45 -0
- package/api/@xmachines/play-router/functions/findRouteById.md +37 -0
- package/api/@xmachines/play-router/functions/findRouteByPath.md +39 -0
- package/api/@xmachines/play-router/functions/getNavigableRoutes.md +35 -0
- package/api/@xmachines/play-router/functions/getRoutableRoutes.md +39 -0
- package/api/@xmachines/play-router/functions/routeExists.md +26 -0
- package/api/@xmachines/play-router/functions/validateRouteFormat.md +29 -0
- package/api/@xmachines/play-router/functions/validateStateExists.md +29 -0
- package/api/@xmachines/play-router/interfaces/BaseRouteMapping.md +27 -0
- package/api/@xmachines/play-router/interfaces/BrowserHistory.md +172 -0
- package/api/@xmachines/play-router/interfaces/BrowserWindow.md +69 -0
- package/api/@xmachines/play-router/interfaces/ConnectRouterOptions.md +13 -0
- package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +119 -0
- package/api/@xmachines/play-router/interfaces/RouteInfo.md +19 -0
- package/api/@xmachines/play-router/interfaces/RouteMap.md +56 -0
- package/api/@xmachines/play-router/interfaces/RouteNode.md +21 -0
- package/api/@xmachines/play-router/interfaces/RouteObject.md +21 -0
- package/api/@xmachines/play-router/interfaces/RouteTree.md +20 -0
- package/api/@xmachines/play-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-router/interfaces/StateVisit.md +15 -0
- package/api/@xmachines/play-router/interfaces/VanillaRouter.md +28 -0
- package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +11 -0
- package/api/@xmachines/play-router-demo/README.md +137 -0
- package/api/@xmachines/play-signals/README.md +176 -0
- package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +34 -0
- package/api/@xmachines/play-signals/interfaces/SignalComputed.md +49 -0
- package/api/@xmachines/play-signals/interfaces/SignalOptions.md +35 -0
- package/api/@xmachines/play-signals/interfaces/SignalState.md +68 -0
- package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +97 -0
- package/api/@xmachines/play-signals/namespaces/Signal/README.md +22 -0
- package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +52 -0
- package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +72 -0
- package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +19 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/README.md +21 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +85 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +13 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +19 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +19 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +19 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +19 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +25 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +9 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +9 -0
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +19 -0
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +19 -0
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +19 -0
- package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +32 -0
- package/api/@xmachines/play-solid/README.md +311 -0
- package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +15 -0
- package/api/@xmachines/play-solid/variables/PlayRenderer.md +70 -0
- package/api/@xmachines/play-solid-router/README.md +666 -0
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +150 -0
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +347 -0
- package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +19 -0
- package/api/@xmachines/play-solid-router/functions/createRouteMap.md +32 -0
- package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +486 -0
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +119 -0
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +14 -0
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +14 -0
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +9 -0
- package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +51 -0
- package/api/@xmachines/play-solid-router-demo/README.md +127 -0
- package/api/@xmachines/play-tanstack-react-router/README.md +226 -0
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +137 -0
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +348 -0
- package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +19 -0
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +53 -0
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +35 -0
- package/api/@xmachines/play-tanstack-react-router/functions/extractParams.md +38 -0
- package/api/@xmachines/play-tanstack-react-router/functions/extractQueryParams.md +33 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +119 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +14 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +17 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +26 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +9 -0
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +78 -0
- package/api/@xmachines/play-tanstack-react-router/variables/extractMachineRoutes.md +64 -0
- package/api/@xmachines/play-tanstack-react-router-demo/README.md +126 -0
- package/api/@xmachines/play-tanstack-solid-router/README.md +285 -0
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +150 -0
- package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +343 -0
- package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +19 -0
- package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +32 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +119 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +14 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +23 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +9 -0
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +9 -0
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +78 -0
- package/api/@xmachines/play-tanstack-solid-router-demo/README.md +126 -0
- package/api/@xmachines/play-vue/README.md +292 -0
- package/api/@xmachines/play-vue/interfaces/PlayRendererProps.md +14 -0
- package/api/@xmachines/play-vue/variables/PlayRenderer.md +9 -0
- package/api/@xmachines/play-vue-router/README.md +604 -0
- package/api/@xmachines/play-vue-router/classes/RouteMap.md +209 -0
- package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +201 -0
- package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +360 -0
- package/api/@xmachines/play-vue-router/functions/createRouteMap.md +19 -0
- package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +119 -0
- package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +15 -0
- package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +9 -0
- package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +67 -0
- package/api/@xmachines/play-vue-router-demo/README.md +133 -0
- package/api/@xmachines/play-xstate/README.md +512 -0
- package/api/@xmachines/play-xstate/classes/PlayerActor.md +527 -0
- package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +43 -0
- package/api/@xmachines/play-xstate/functions/composeGuards.md +79 -0
- package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +67 -0
- package/api/@xmachines/play-xstate/functions/definePlayer.md +127 -0
- package/api/@xmachines/play-xstate/functions/deriveRoute.md +109 -0
- package/api/@xmachines/play-xstate/functions/eventMatches.md +40 -0
- package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +54 -0
- package/api/@xmachines/play-xstate/functions/hasContext.md +42 -0
- package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +41 -0
- package/api/@xmachines/play-xstate/functions/mergeViewProps.md +26 -0
- package/api/@xmachines/play-xstate/functions/negateGuard.md +61 -0
- package/api/@xmachines/play-xstate/functions/stateMatches.md +25 -0
- package/api/@xmachines/play-xstate/functions/validateComponentBinding.md +39 -0
- package/api/@xmachines/play-xstate/functions/validateViewProps.md +80 -0
- package/api/@xmachines/play-xstate/interfaces/CatalogEntry.md +16 -0
- package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +24 -0
- package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +26 -0
- package/api/@xmachines/play-xstate/interfaces/RouteContext.md +22 -0
- package/api/@xmachines/play-xstate/type-aliases/Catalog.md +21 -0
- package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +14 -0
- package/api/@xmachines/play-xstate/type-aliases/Guard.md +34 -0
- package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +20 -0
- package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +29 -0
- package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +45 -0
- package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +51 -0
- package/api/@xmachines/play-xstate/type-aliases/ValidationResult.md +17 -0
- package/api/@xmachines/play-xstate/type-aliases/ViewMergeContext.md +35 -0
- package/api/@xmachines/shared/README.md +379 -0
- package/api/@xmachines/shared/functions/defineXmVitestConfig.md +29 -0
- package/api/@xmachines/shared/functions/xmAliases.md +24 -0
- package/api/README.md +25 -0
- package/api/llms.txt +26 -0
- package/examples/README.md +63 -0
- package/examples/basic-state-machine.md +70 -0
- package/examples/form-validation.md +167 -0
- package/examples/multi-router-integration.md +277 -0
- package/examples/routing-patterns.md +260 -0
- package/examples/traffic-light.md +99 -0
- package/guides/README.md +29 -0
- package/guides/getting-started.md +223 -0
- package/guides/installation.md +323 -0
- package/index.d.ts +3 -0
- package/index.js +4 -0
- package/package.json +54 -0
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-solid-router](../README.md) / RouteMap
|
|
2
|
+
|
|
3
|
+
# Class: RouteMap
|
|
4
|
+
|
|
5
|
+
Defined in: [packages/play-solid-router/src/route-map.ts:26](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-solid-router/src/route-map.ts#L26)
|
|
6
|
+
|
|
7
|
+
Shared bidirectional route map base class.
|
|
8
|
+
|
|
9
|
+
All framework adapter `RouteMap` classes extend this — they add no logic of their
|
|
10
|
+
own and inherit the full public API from here.
|
|
11
|
+
|
|
12
|
+
**Lookup strategy:**
|
|
13
|
+
|
|
14
|
+
- Static paths (no `:param`) → O(1) `Map` lookup
|
|
15
|
+
- Dynamic paths → O(k) bucket-indexed scan using `RegExp`, where `k` is the number
|
|
16
|
+
of routes sharing the same first path segment
|
|
17
|
+
- Results are cached after the first match
|
|
18
|
+
|
|
19
|
+
**Pattern syntax** (`:param` / `:param?`):
|
|
20
|
+
|
|
21
|
+
- `:param` — required segment, matches exactly one non-`/` segment
|
|
22
|
+
- `:param?` — optional segment, matches zero or one non-`/` segment
|
|
23
|
+
|
|
24
|
+
## Example
|
|
25
|
+
|
|
26
|
+
```typescript
|
|
27
|
+
import { BaseRouteMap } from "@xmachines/play-router";
|
|
28
|
+
|
|
29
|
+
const map = new BaseRouteMap([
|
|
30
|
+
{ stateId: "home", path: "/" },
|
|
31
|
+
{ stateId: "profile", path: "/profile/:userId" },
|
|
32
|
+
{ stateId: "settings", path: "/settings/:section?" },
|
|
33
|
+
]);
|
|
34
|
+
|
|
35
|
+
map.getStateIdByPath("/"); // "home"
|
|
36
|
+
map.getStateIdByPath("/profile/123"); // "profile"
|
|
37
|
+
map.getStateIdByPath("/settings"); // "settings"
|
|
38
|
+
map.getStateIdByPath("/unknown"); // null
|
|
39
|
+
|
|
40
|
+
map.getPathByStateId("profile"); // "/profile/:userId"
|
|
41
|
+
map.getPathByStateId("missing"); // null
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Extends
|
|
45
|
+
|
|
46
|
+
- [`BaseRouteMap`](../../play-router/classes/BaseRouteMap.md)
|
|
47
|
+
|
|
48
|
+
## Constructors
|
|
49
|
+
|
|
50
|
+
### Constructor
|
|
51
|
+
|
|
52
|
+
```ts
|
|
53
|
+
new RouteMap(mappings): RouteMap;
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Defined in: packages/play-router/dist/base-route-map.d.ts:81
|
|
57
|
+
|
|
58
|
+
Build a route map from an array of state ID ↔ path mappings.
|
|
59
|
+
|
|
60
|
+
Static paths (no `:param`) are indexed in an O(1) `Map`.
|
|
61
|
+
Parameterized paths are compiled to `RegExp` and grouped into first-segment
|
|
62
|
+
buckets for efficient candidate selection.
|
|
63
|
+
|
|
64
|
+
#### Parameters
|
|
65
|
+
|
|
66
|
+
| Parameter | Type | Description |
|
|
67
|
+
| ---------- | ------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------- |
|
|
68
|
+
| `mappings` | [`BaseRouteMapping`](../../play-router/interfaces/BaseRouteMapping.md)[] | Array of `{ stateId, path }` entries. Order determines priority when multiple patterns could match the same path. |
|
|
69
|
+
|
|
70
|
+
#### Returns
|
|
71
|
+
|
|
72
|
+
`RouteMap`
|
|
73
|
+
|
|
74
|
+
#### Inherited from
|
|
75
|
+
|
|
76
|
+
[`BaseRouteMap`](../../play-router/classes/BaseRouteMap.md).[`constructor`](../../play-router/classes/BaseRouteMap.md#constructor)
|
|
77
|
+
|
|
78
|
+
## Methods
|
|
79
|
+
|
|
80
|
+
### getPathByStateId()
|
|
81
|
+
|
|
82
|
+
```ts
|
|
83
|
+
getPathByStateId(stateId): string | null;
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Defined in: packages/play-router/dist/base-route-map.d.ts:111
|
|
87
|
+
|
|
88
|
+
Look up the path pattern registered for a state ID.
|
|
89
|
+
|
|
90
|
+
#### Parameters
|
|
91
|
+
|
|
92
|
+
| Parameter | Type | Description |
|
|
93
|
+
| --------- | -------- | --------------------------------------------------------- |
|
|
94
|
+
| `stateId` | `string` | State machine state ID (e.g., `"profile"`, `"#settings"`) |
|
|
95
|
+
|
|
96
|
+
#### Returns
|
|
97
|
+
|
|
98
|
+
`string` \| `null`
|
|
99
|
+
|
|
100
|
+
The registered path pattern, or `null` if the state ID is unknown
|
|
101
|
+
|
|
102
|
+
#### Example
|
|
103
|
+
|
|
104
|
+
```typescript
|
|
105
|
+
map.getPathByStateId("profile"); // "/profile/:userId"
|
|
106
|
+
map.getPathByStateId("missing"); // null
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
#### Inherited from
|
|
110
|
+
|
|
111
|
+
[`BaseRouteMap`](../../play-router/classes/BaseRouteMap.md).[`getPathByStateId`](../../play-router/classes/BaseRouteMap.md#getpathbystateid)
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
### getStateIdByPath()
|
|
116
|
+
|
|
117
|
+
```ts
|
|
118
|
+
getStateIdByPath(path): string | null;
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Defined in: packages/play-router/dist/base-route-map.d.ts:98
|
|
122
|
+
|
|
123
|
+
Resolve a URL path to its mapped state ID.
|
|
124
|
+
|
|
125
|
+
Strips query strings and hash fragments before matching. Tries an O(1) exact
|
|
126
|
+
lookup first, then falls back to bucket-indexed pattern matching. Results are
|
|
127
|
+
cached after the first pattern match.
|
|
128
|
+
|
|
129
|
+
#### Parameters
|
|
130
|
+
|
|
131
|
+
| Parameter | Type | Description |
|
|
132
|
+
| --------- | -------- | ------------------------------------------------------------------------------ |
|
|
133
|
+
| `path` | `string` | URL pathname, optionally including query/hash (e.g., `"/profile/123?ref=nav"`) |
|
|
134
|
+
|
|
135
|
+
#### Returns
|
|
136
|
+
|
|
137
|
+
`string` \| `null`
|
|
138
|
+
|
|
139
|
+
The mapped state ID, or `null` if no route matches
|
|
140
|
+
|
|
141
|
+
#### Example
|
|
142
|
+
|
|
143
|
+
```typescript
|
|
144
|
+
map.getStateIdByPath("/profile/123"); // "profile"
|
|
145
|
+
map.getStateIdByPath("/unknown"); // null
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
#### Inherited from
|
|
149
|
+
|
|
150
|
+
[`BaseRouteMap`](../../play-router/classes/BaseRouteMap.md).[`getStateIdByPath`](../../play-router/classes/BaseRouteMap.md#getstateidbypath)
|
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-solid-router](../README.md) / SolidRouterBridge
|
|
2
|
+
|
|
3
|
+
# Class: SolidRouterBridge
|
|
4
|
+
|
|
5
|
+
Defined in: [packages/play-solid-router/src/solid-router-bridge.ts:47](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-solid-router/src/solid-router-bridge.ts#L47)
|
|
6
|
+
|
|
7
|
+
SolidJS Router integration bridge extending RouterBridgeBase
|
|
8
|
+
|
|
9
|
+
Implements RouterBridge protocol for SolidJS Router using Solid's reactive
|
|
10
|
+
primitives. The actor→router direction uses TC39 Signal watcher (from base class).
|
|
11
|
+
The router→actor direction uses Solid's createEffect for native reactivity.
|
|
12
|
+
|
|
13
|
+
## Extends
|
|
14
|
+
|
|
15
|
+
- [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md)
|
|
16
|
+
|
|
17
|
+
## Constructors
|
|
18
|
+
|
|
19
|
+
### Constructor
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
new SolidRouterBridge(
|
|
23
|
+
solidNavigate,
|
|
24
|
+
location,
|
|
25
|
+
_params,
|
|
26
|
+
actor,
|
|
27
|
+
routeMap): SolidRouterBridge;
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Defined in: [packages/play-solid-router/src/solid-router-bridge.ts:59](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-solid-router/src/solid-router-bridge.ts#L59)
|
|
31
|
+
|
|
32
|
+
Create a SolidJS Router bridge
|
|
33
|
+
|
|
34
|
+
**CRITICAL:** `connect()` must be called inside a Solid component where hooks are available.
|
|
35
|
+
|
|
36
|
+
#### Parameters
|
|
37
|
+
|
|
38
|
+
| Parameter | Type | Description |
|
|
39
|
+
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------- |
|
|
40
|
+
| `solidNavigate` | (`path`, ...`args`) => `unknown` | Result of useNavigate() hook |
|
|
41
|
+
| `location` | \{ `pathname`: `string`; `search`: `string`; \} | Result of useLocation() hook |
|
|
42
|
+
| `location.pathname` | `string` | - |
|
|
43
|
+
| `location.search` | `string` | - |
|
|
44
|
+
| `_params` | `Record`\<`string`, `string` \| `undefined`\> | Result of useParams() hook |
|
|
45
|
+
| `actor` | [`AbstractActor`](../interfaces/AbstractActor.md)\<`AnyActorLogic`\> & [`Routable`](../../play-actor/interfaces/Routable.md) | XMachines actor instance |
|
|
46
|
+
| `routeMap` | [`RouteMap`](RouteMap.md) | Bidirectional state ID ↔ path mapping |
|
|
47
|
+
|
|
48
|
+
#### Returns
|
|
49
|
+
|
|
50
|
+
`SolidRouterBridge`
|
|
51
|
+
|
|
52
|
+
#### Overrides
|
|
53
|
+
|
|
54
|
+
[`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`constructor`](../../play-router/classes/RouterBridgeBase.md#constructor)
|
|
55
|
+
|
|
56
|
+
## Properties
|
|
57
|
+
|
|
58
|
+
| Property | Modifier | Type | Description | Inherited from | Defined in |
|
|
59
|
+
| --------------------------------------------------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- |
|
|
60
|
+
| <a id="property-actor"></a> `actor` | `readonly` | [`AbstractActor`](../interfaces/AbstractActor.md)\<`AnyActorLogic`\> & [`Routable`](../../play-actor/interfaces/Routable.md) | Actor with currentRoute signal and send method | [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`actor`](../../play-router/classes/RouterBridgeBase.md#property-actor) | packages/play-router/dist/router-bridge-base.d.ts:55 |
|
|
61
|
+
| <a id="property-hasconnectedonce"></a> `hasConnectedOnce` | `protected` | `boolean` | - | [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`hasConnectedOnce`](../../play-router/classes/RouterBridgeBase.md#property-hasconnectedonce) | packages/play-router/dist/router-bridge-base.d.ts:61 |
|
|
62
|
+
| <a id="property-isconnected"></a> `isConnected` | `protected` | `boolean` | - | [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`isConnected`](../../play-router/classes/RouterBridgeBase.md#property-isconnected) | packages/play-router/dist/router-bridge-base.d.ts:60 |
|
|
63
|
+
| <a id="property-isprocessingnavigation"></a> `isProcessingNavigation` | `protected` | `boolean` | - | [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`isProcessingNavigation`](../../play-router/classes/RouterBridgeBase.md#property-isprocessingnavigation) | packages/play-router/dist/router-bridge-base.d.ts:63 |
|
|
64
|
+
| <a id="property-lastsyncedpath"></a> `lastSyncedPath` | `protected` | `string` | - | [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`lastSyncedPath`](../../play-router/classes/RouterBridgeBase.md#property-lastsyncedpath) | packages/play-router/dist/router-bridge-base.d.ts:62 |
|
|
65
|
+
| <a id="property-routemap"></a> `routeMap` | `readonly` | `object` | Bidirectional route map for stateId ↔ path resolution | [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`routeMap`](../../play-router/classes/RouterBridgeBase.md#property-routemap) | packages/play-router/dist/router-bridge-base.d.ts:56 |
|
|
66
|
+
| `routeMap.getPathByStateId` | `public` | `string` \| `null` \| `undefined` | - | - | packages/play-router/dist/router-bridge-base.d.ts:58 |
|
|
67
|
+
| `routeMap.getStateIdByPath` | `public` | `string` \| `null` \| `undefined` | - | - | packages/play-router/dist/router-bridge-base.d.ts:57 |
|
|
68
|
+
| <a id="property-routewatcher"></a> `routeWatcher` | `protected` | \| [`Watcher`](../../play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md) \| `null` | - | [`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`routeWatcher`](../../play-router/classes/RouterBridgeBase.md#property-routewatcher) | packages/play-router/dist/router-bridge-base.d.ts:64 |
|
|
69
|
+
|
|
70
|
+
## Methods
|
|
71
|
+
|
|
72
|
+
### connect()
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
connect(): void;
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Defined in: packages/play-router/dist/router-bridge-base.d.ts:81
|
|
79
|
+
|
|
80
|
+
Connect the router bridge to the Actor.
|
|
81
|
+
|
|
82
|
+
Sets up the TC39 Signal watcher for actor → router direction and
|
|
83
|
+
starts watching router changes (framework-specific).
|
|
84
|
+
|
|
85
|
+
#### Returns
|
|
86
|
+
|
|
87
|
+
`void`
|
|
88
|
+
|
|
89
|
+
#### Inherited from
|
|
90
|
+
|
|
91
|
+
[`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`connect`](../../play-router/classes/RouterBridgeBase.md#connect)
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
### disconnect()
|
|
96
|
+
|
|
97
|
+
```ts
|
|
98
|
+
disconnect(): void;
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Defined in: packages/play-router/dist/router-bridge-base.d.ts:87
|
|
102
|
+
|
|
103
|
+
Disconnect the router bridge from the Actor.
|
|
104
|
+
|
|
105
|
+
Stops signal watching and unregisters framework-specific router listener.
|
|
106
|
+
|
|
107
|
+
#### Returns
|
|
108
|
+
|
|
109
|
+
`void`
|
|
110
|
+
|
|
111
|
+
#### Inherited from
|
|
112
|
+
|
|
113
|
+
[`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`disconnect`](../../play-router/classes/RouterBridgeBase.md#disconnect)
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
### dispose()
|
|
118
|
+
|
|
119
|
+
```ts
|
|
120
|
+
dispose(): void;
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Defined in: [packages/play-solid-router/src/solid-router-bridge.ts:123](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-solid-router/src/solid-router-bridge.ts#L123)
|
|
124
|
+
|
|
125
|
+
Dispose the bridge (alias for disconnect).
|
|
126
|
+
|
|
127
|
+
#### Returns
|
|
128
|
+
|
|
129
|
+
`void`
|
|
130
|
+
|
|
131
|
+
#### Example
|
|
132
|
+
|
|
133
|
+
```tsx
|
|
134
|
+
onCleanup(() => bridge.dispose());
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
### extractParams()
|
|
140
|
+
|
|
141
|
+
```ts
|
|
142
|
+
protected extractParams(pathname, stateId): Record<string, string>;
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Defined in: packages/play-router/dist/router-bridge-base.d.ts:134
|
|
146
|
+
|
|
147
|
+
Extract path parameters from URL using the URLPattern API.
|
|
148
|
+
|
|
149
|
+
Accesses `globalThis.URLPattern` at runtime — no polyfill is imported by this
|
|
150
|
+
library. If `URLPattern` is unavailable (Node.js < 24, older browsers without a
|
|
151
|
+
polyfill), this method returns `{}` silently (graceful degradation — routing still
|
|
152
|
+
works, params will be empty).
|
|
153
|
+
|
|
154
|
+
#### Parameters
|
|
155
|
+
|
|
156
|
+
| Parameter | Type | Description |
|
|
157
|
+
| ---------- | -------- | ------------------------------------------------- |
|
|
158
|
+
| `pathname` | `string` | The actual URL path (e.g., '/profile/john') |
|
|
159
|
+
| `stateId` | `string` | The matched state ID for looking up route pattern |
|
|
160
|
+
|
|
161
|
+
#### Returns
|
|
162
|
+
|
|
163
|
+
`Record`\<`string`, `string`\>
|
|
164
|
+
|
|
165
|
+
Extracted path parameters, or empty object if URLPattern is unavailable or no match
|
|
166
|
+
|
|
167
|
+
#### Inherited from
|
|
168
|
+
|
|
169
|
+
[`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`extractParams`](../../play-router/classes/RouterBridgeBase.md#extractparams)
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
### extractQuery()
|
|
174
|
+
|
|
175
|
+
```ts
|
|
176
|
+
protected extractQuery(search): Record<string, string>;
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Defined in: packages/play-router/dist/router-bridge-base.d.ts:141
|
|
180
|
+
|
|
181
|
+
Extract query parameters from URL search string.
|
|
182
|
+
|
|
183
|
+
#### Parameters
|
|
184
|
+
|
|
185
|
+
| Parameter | Type | Description |
|
|
186
|
+
| --------- | -------- | ------------------------------------------------ |
|
|
187
|
+
| `search` | `string` | URL search string (e.g., '?tab=security&page=1') |
|
|
188
|
+
|
|
189
|
+
#### Returns
|
|
190
|
+
|
|
191
|
+
`Record`\<`string`, `string`\>
|
|
192
|
+
|
|
193
|
+
Extracted query parameters or empty object
|
|
194
|
+
|
|
195
|
+
#### Inherited from
|
|
196
|
+
|
|
197
|
+
[`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`extractQuery`](../../play-router/classes/RouterBridgeBase.md#extractquery)
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
### getInitialRouterPath()
|
|
202
|
+
|
|
203
|
+
```ts
|
|
204
|
+
protected getInitialRouterPath(): string | null;
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Defined in: [packages/play-solid-router/src/solid-router-bridge.ts:82](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-solid-router/src/solid-router-bridge.ts#L82)
|
|
208
|
+
|
|
209
|
+
Get the current router pathname for initial URL -> actor sync on connect.
|
|
210
|
+
|
|
211
|
+
#### Returns
|
|
212
|
+
|
|
213
|
+
`string` \| `null`
|
|
214
|
+
|
|
215
|
+
#### Overrides
|
|
216
|
+
|
|
217
|
+
[`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`getInitialRouterPath`](../../play-router/classes/RouterBridgeBase.md#getinitialrouterpath)
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
### navigateRouter()
|
|
222
|
+
|
|
223
|
+
```ts
|
|
224
|
+
protected navigateRouter(path): void;
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
Defined in: [packages/play-solid-router/src/solid-router-bridge.ts:75](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-solid-router/src/solid-router-bridge.ts#L75)
|
|
228
|
+
|
|
229
|
+
Navigate SolidJS Router to the given path.
|
|
230
|
+
|
|
231
|
+
#### Parameters
|
|
232
|
+
|
|
233
|
+
| Parameter | Type |
|
|
234
|
+
| --------- | -------- |
|
|
235
|
+
| `path` | `string` |
|
|
236
|
+
|
|
237
|
+
#### Returns
|
|
238
|
+
|
|
239
|
+
`void`
|
|
240
|
+
|
|
241
|
+
#### Overrides
|
|
242
|
+
|
|
243
|
+
[`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`navigateRouter`](../../play-router/classes/RouterBridgeBase.md#navigaterouter)
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
### syncActorFromRouter()
|
|
248
|
+
|
|
249
|
+
```ts
|
|
250
|
+
protected syncActorFromRouter(pathname, search?): void;
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
Defined in: packages/play-router/dist/router-bridge-base.d.ts:101
|
|
254
|
+
|
|
255
|
+
Sync actor state when router location changes.
|
|
256
|
+
|
|
257
|
+
Sends play.route event to actor with resolved stateId, params, and query.
|
|
258
|
+
Prevents circular updates via isProcessingNavigation flag.
|
|
259
|
+
|
|
260
|
+
#### Parameters
|
|
261
|
+
|
|
262
|
+
| Parameter | Type |
|
|
263
|
+
| ---------- | -------- |
|
|
264
|
+
| `pathname` | `string` |
|
|
265
|
+
| `search?` | `string` |
|
|
266
|
+
|
|
267
|
+
#### Returns
|
|
268
|
+
|
|
269
|
+
`void`
|
|
270
|
+
|
|
271
|
+
#### Inherited from
|
|
272
|
+
|
|
273
|
+
[`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`syncActorFromRouter`](../../play-router/classes/RouterBridgeBase.md#syncactorfromrouter)
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
### syncRouterFromActor()
|
|
278
|
+
|
|
279
|
+
```ts
|
|
280
|
+
protected syncRouterFromActor(route): void;
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
Defined in: packages/play-router/dist/router-bridge-base.d.ts:94
|
|
284
|
+
|
|
285
|
+
Sync router location when actor route signal changes.
|
|
286
|
+
|
|
287
|
+
Calls navigateRouter() for framework-specific navigation.
|
|
288
|
+
Prevents circular updates via isProcessingNavigation flag.
|
|
289
|
+
|
|
290
|
+
#### Parameters
|
|
291
|
+
|
|
292
|
+
| Parameter | Type |
|
|
293
|
+
| --------- | --------- |
|
|
294
|
+
| `route` | `unknown` |
|
|
295
|
+
|
|
296
|
+
#### Returns
|
|
297
|
+
|
|
298
|
+
`void`
|
|
299
|
+
|
|
300
|
+
#### Inherited from
|
|
301
|
+
|
|
302
|
+
[`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`syncRouterFromActor`](../../play-router/classes/RouterBridgeBase.md#syncrouterfromactor)
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
### unwatchRouterChanges()
|
|
307
|
+
|
|
308
|
+
```ts
|
|
309
|
+
protected unwatchRouterChanges(): void;
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
Defined in: [packages/play-solid-router/src/solid-router-bridge.ts:111](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-solid-router/src/solid-router-bridge.ts#L111)
|
|
313
|
+
|
|
314
|
+
Stop watching SolidJS Router changes.
|
|
315
|
+
|
|
316
|
+
Solid auto-cleans createEffect subscriptions when component unmounts.
|
|
317
|
+
|
|
318
|
+
#### Returns
|
|
319
|
+
|
|
320
|
+
`void`
|
|
321
|
+
|
|
322
|
+
#### Overrides
|
|
323
|
+
|
|
324
|
+
[`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`unwatchRouterChanges`](../../play-router/classes/RouterBridgeBase.md#unwatchrouterchanges)
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
### watchRouterChanges()
|
|
329
|
+
|
|
330
|
+
```ts
|
|
331
|
+
protected watchRouterChanges(): void;
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
Defined in: [packages/play-solid-router/src/solid-router-bridge.ts:92](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-solid-router/src/solid-router-bridge.ts#L92)
|
|
335
|
+
|
|
336
|
+
Subscribe to SolidJS Router location changes using createEffect.
|
|
337
|
+
|
|
338
|
+
MUST be called inside a Solid reactive owner (component/createRoot).
|
|
339
|
+
Solid auto-cleans createEffect subscriptions on component unmount.
|
|
340
|
+
|
|
341
|
+
#### Returns
|
|
342
|
+
|
|
343
|
+
`void`
|
|
344
|
+
|
|
345
|
+
#### Overrides
|
|
346
|
+
|
|
347
|
+
[`RouterBridgeBase`](../../play-router/classes/RouterBridgeBase.md).[`watchRouterChanges`](../../play-router/classes/RouterBridgeBase.md#watchrouterchanges)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-solid-router](../README.md) / PlayRouterProvider
|
|
2
|
+
|
|
3
|
+
# Function: PlayRouterProvider()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function PlayRouterProvider(props): any;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [packages/play-solid-router/src/play-router-provider.tsx:21](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-solid-router/src/play-router-provider.tsx#L21)
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Type |
|
|
14
|
+
| --------- | --------------------------------------------------------------------- |
|
|
15
|
+
| `props` | [`PlayRouterProviderProps`](../interfaces/PlayRouterProviderProps.md) |
|
|
16
|
+
|
|
17
|
+
## Returns
|
|
18
|
+
|
|
19
|
+
`any`
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-solid-router](../README.md) / createRouteMap
|
|
2
|
+
|
|
3
|
+
# Function: createRouteMap()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function createRouteMap(machine): RouteMap;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [packages/play-solid-router/src/create-route-map.ts:27](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-solid-router/src/create-route-map.ts#L27)
|
|
10
|
+
|
|
11
|
+
Create a RouteMap from an XState machine
|
|
12
|
+
|
|
13
|
+
## Parameters
|
|
14
|
+
|
|
15
|
+
| Parameter | Type | Description |
|
|
16
|
+
| --------- | ----------------- | ---------------------------------------------- |
|
|
17
|
+
| `machine` | `AnyStateMachine` | XState machine with route: {} config on states |
|
|
18
|
+
|
|
19
|
+
## Returns
|
|
20
|
+
|
|
21
|
+
[`RouteMap`](../classes/RouteMap.md)
|
|
22
|
+
|
|
23
|
+
RouteMap for bidirectional state ID ↔ path resolution
|
|
24
|
+
|
|
25
|
+
## Example
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
import { createRouteMap } from "@xmachines/play-solid-router";
|
|
29
|
+
import { authMachine } from "./machine.js";
|
|
30
|
+
|
|
31
|
+
const routeMap = createRouteMap(authMachine);
|
|
32
|
+
```
|