@xmachines/docs 1.0.0-beta.9 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +137 -7
- package/api/@xmachines/play/README.md +160 -38
- package/api/@xmachines/play/classes/NonNullableError.md +189 -0
- package/api/@xmachines/play/classes/PlayError.md +251 -0
- package/api/@xmachines/play/functions/assertNonNullable.md +56 -0
- package/api/@xmachines/play/type-aliases/PlayEvent.md +6 -6
- package/api/@xmachines/play-actor/README.md +141 -160
- package/api/@xmachines/play-actor/classes/AbstractActor.md +91 -122
- package/api/@xmachines/play-actor/functions/attachRenderErrorHandler.md +40 -0
- package/api/@xmachines/play-actor/functions/toAtomState.md +33 -0
- package/api/@xmachines/play-actor/functions/typedSpec.md +54 -0
- package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +46 -0
- package/api/@xmachines/play-actor/interfaces/BaseViewContextValue.md +33 -0
- package/api/@xmachines/play-actor/interfaces/PlaySpec.md +28 -0
- package/api/@xmachines/play-actor/interfaces/Routable.md +6 -21
- package/api/@xmachines/play-actor/interfaces/Viewable.md +12 -6
- package/api/@xmachines/play-dom/README.md +384 -0
- package/api/@xmachines/play-dom/classes/PlayRenderer.md +115 -0
- package/api/@xmachines/play-dom/functions/createPlayUI.md +28 -0
- package/api/@xmachines/play-dom/functions/createRenderer.md +44 -0
- package/api/@xmachines/play-dom/functions/defineRegistry.md +26 -0
- package/api/@xmachines/play-dom/functions/renderSpec.md +67 -0
- package/api/@xmachines/play-dom/interfaces/ComponentContext.md +23 -0
- package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +34 -0
- package/api/@xmachines/play-dom/interfaces/DefineRegistryResult.md +17 -0
- package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +28 -0
- package/api/@xmachines/play-dom/interfaces/EventHandle.md +15 -0
- package/api/@xmachines/play-dom/interfaces/MountOptions.md +18 -0
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +30 -0
- package/api/@xmachines/play-dom/interfaces/RenderSpecOptions.md +26 -0
- package/api/@xmachines/play-dom/interfaces/UIProviderOptions.md +32 -0
- package/api/@xmachines/play-dom/type-aliases/ActionFn.md +46 -0
- package/api/@xmachines/play-dom/type-aliases/Actions.md +18 -0
- package/api/@xmachines/play-dom/type-aliases/BaseComponentProps.md +114 -0
- package/api/@xmachines/play-dom/type-aliases/CatalogHasActions.md +25 -0
- package/api/@xmachines/play-dom/type-aliases/ComponentFn.md +26 -0
- package/api/@xmachines/play-dom/type-aliases/ComponentRegistry.md +15 -0
- package/api/@xmachines/play-dom/type-aliases/ConfirmHandler.md +44 -0
- package/api/@xmachines/play-dom/type-aliases/DefineRegistryOptions.md +39 -0
- package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +20 -0
- package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +9 -0
- package/api/@xmachines/play-dom/type-aliases/DomSchema.md +9 -0
- package/api/@xmachines/play-dom/type-aliases/MountFn.md +27 -0
- package/api/@xmachines/play-dom/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-dom/type-aliases/SetState.md +30 -0
- package/api/@xmachines/play-dom/variables/schema.md +62 -0
- package/api/@xmachines/play-dom-router/README.md +271 -0
- package/api/@xmachines/play-dom-router/functions/connectRouter.md +43 -0
- package/api/@xmachines/{play-router → play-dom-router}/functions/createBrowserHistory.md +10 -2
- package/api/@xmachines/play-dom-router/functions/createRouteMap.md +39 -0
- package/api/@xmachines/play-dom-router/functions/createRouter.md +54 -0
- package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +176 -0
- package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +69 -0
- package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +15 -0
- package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +129 -0
- package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +68 -0
- package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +54 -0
- package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +121 -0
- package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +27 -0
- package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +28 -0
- package/api/@xmachines/play-react/README.md +185 -334
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +46 -42
- package/api/@xmachines/play-react/functions/ActionProvider.md +21 -0
- package/api/@xmachines/play-react/functions/JSONUIProvider.md +21 -0
- package/api/@xmachines/play-react/functions/Renderer.md +21 -0
- package/api/@xmachines/play-react/functions/StateProvider.md +27 -0
- package/api/@xmachines/play-react/functions/ValidationProvider.md +21 -0
- package/api/@xmachines/play-react/functions/VisibilityProvider.md +21 -0
- package/api/@xmachines/play-react/functions/defineRegistry.md +49 -0
- package/api/@xmachines/play-react/functions/useActor.md +13 -0
- package/api/@xmachines/play-react/functions/useBoundProp.md +45 -0
- package/api/@xmachines/play-react/functions/usePlayView.md +32 -0
- package/api/@xmachines/play-react/functions/useSignalEffect.md +29 -20
- package/api/@xmachines/play-react/interfaces/ActionProviderProps.md +15 -0
- package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +27 -0
- package/api/@xmachines/play-react/interfaces/ComponentContext.md +37 -0
- package/api/@xmachines/play-react/interfaces/JSONUIProviderProps.md +22 -0
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +7 -7
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +6 -6
- package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +26 -0
- package/api/@xmachines/play-react/interfaces/RendererProps.md +17 -0
- package/api/@xmachines/play-react/interfaces/StateProviderProps.md +16 -0
- package/api/@xmachines/play-react/interfaces/ValidationProviderProps.md +14 -0
- package/api/@xmachines/play-react/interfaces/ViewContextValue.md +20 -0
- package/api/@xmachines/play-react/interfaces/VisibilityProviderProps.md +13 -0
- package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +11 -0
- package/api/@xmachines/play-react/type-aliases/ComponentFn.md +36 -0
- package/api/@xmachines/play-react/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-react/variables/ActorProvider.md +33 -0
- package/api/@xmachines/play-react/variables/PlayRenderer.md +6 -56
- package/api/@xmachines/play-react/variables/PlayUIProvider.md +43 -0
- package/api/@xmachines/play-react-router/README.md +130 -114
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +19 -242
- package/api/@xmachines/play-react-router/classes/RouteMap.md +48 -36
- package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +45 -0
- package/api/@xmachines/play-react-router/functions/createRouteMap.md +39 -0
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +23 -12
- package/api/@xmachines/play-react-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderBaseProps.md +32 -0
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +25 -9
- package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +19 -9
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
- package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +32 -0
- package/api/@xmachines/play-router/README.md +275 -353
- package/api/@xmachines/play-router/classes/RouteMap.md +149 -0
- package/api/@xmachines/play-router/classes/RouterBridgeBase.md +21 -221
- package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +32 -0
- package/api/@xmachines/play-router/functions/buildRouteTree.md +12 -2
- package/api/@xmachines/play-router/functions/createRouteMap.md +22 -36
- package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +46 -0
- package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +14 -7
- package/api/@xmachines/play-router/functions/extractMachineRoutes.md +10 -46
- package/api/@xmachines/play-router/functions/extractQuery.md +22 -0
- package/api/@xmachines/play-router/functions/extractRouteParams.md +54 -0
- package/api/@xmachines/play-router/functions/findRouteById.md +2 -2
- package/api/@xmachines/play-router/functions/findRouteByPath.md +2 -2
- package/api/@xmachines/play-router/functions/getNavigableRoutes.md +2 -2
- package/api/@xmachines/play-router/functions/getRoutableRoutes.md +2 -2
- package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +43 -0
- package/api/@xmachines/play-router/functions/isRouteReachable.md +38 -0
- package/api/@xmachines/play-router/functions/machineToGraph.md +19 -0
- package/api/@xmachines/play-router/functions/routeExists.md +2 -2
- package/api/@xmachines/play-router/functions/sanitizePathname.md +40 -0
- package/api/@xmachines/play-router/functions/validateRouteFormat.md +10 -9
- package/api/@xmachines/play-router/functions/validateStateExists.md +9 -9
- package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +13 -0
- package/api/@xmachines/play-router/interfaces/LocationLike.md +27 -0
- package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +15 -0
- package/api/@xmachines/play-router/interfaces/MachineNodeData.md +17 -0
- package/api/@xmachines/play-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-router/interfaces/ResolvedRoutePath.md +17 -0
- package/api/@xmachines/play-router/interfaces/RoutableActor.md +64 -0
- package/api/@xmachines/play-router/interfaces/RouteInfo.md +11 -11
- package/api/@xmachines/play-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-router/interfaces/RouteMapping.md +27 -0
- package/api/@xmachines/play-router/interfaces/RouteMatch.md +12 -0
- package/api/@xmachines/play-router/interfaces/RouteNode.md +13 -13
- package/api/@xmachines/play-router/interfaces/RouteObject.md +5 -5
- package/api/@xmachines/play-router/interfaces/RouteTree.md +8 -7
- package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +55 -0
- package/api/@xmachines/play-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-router/interfaces/WindowLike.md +65 -0
- package/api/@xmachines/play-router/type-aliases/MachineGraph.md +20 -0
- package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +2 -2
- package/api/@xmachines/play-signals/README.md +116 -65
- package/api/@xmachines/play-signals/functions/watchSignal.md +42 -0
- package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +7 -5
- package/api/@xmachines/play-signals/interfaces/SignalComputed.md +3 -3
- package/api/@xmachines/play-signals/interfaces/SignalOptions.md +7 -5
- package/api/@xmachines/play-signals/interfaces/SignalState.md +4 -4
- package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +5 -5
- package/api/@xmachines/play-signals/namespaces/Signal/README.md +1 -1
- package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +7 -7
- package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +8 -8
- package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +7 -7
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/README.md +1 -1
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +9 -9
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +2 -2
- package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +2 -2
- package/api/@xmachines/play-solid/README.md +196 -234
- package/api/@xmachines/play-solid/functions/ActionProvider.md +19 -0
- package/api/@xmachines/play-solid/functions/JSONUIProvider.md +21 -0
- package/api/@xmachines/play-solid/functions/Renderer.md +21 -0
- package/api/@xmachines/play-solid/functions/StateProvider.md +19 -0
- package/api/@xmachines/play-solid/functions/ValidationProvider.md +19 -0
- package/api/@xmachines/play-solid/functions/VisibilityProvider.md +20 -0
- package/api/@xmachines/play-solid/functions/defineRegistry.md +49 -0
- package/api/@xmachines/play-solid/functions/useAction.md +24 -0
- package/api/@xmachines/play-solid/functions/useActions.md +13 -0
- package/api/@xmachines/play-solid/functions/useActor.md +13 -0
- package/api/@xmachines/play-solid/functions/useBoundProp.md +45 -0
- package/api/@xmachines/play-solid/functions/useFieldValidation.md +29 -0
- package/api/@xmachines/play-solid/functions/useIsVisible.md +19 -0
- package/api/@xmachines/play-solid/functions/useOptionalValidation.md +13 -0
- package/api/@xmachines/play-solid/functions/usePlayView.md +30 -0
- package/api/@xmachines/play-solid/functions/useStateBinding.md +25 -0
- package/api/@xmachines/play-solid/functions/useStateStore.md +13 -0
- package/api/@xmachines/play-solid/functions/useStateValue.md +25 -0
- package/api/@xmachines/play-solid/functions/useVisibility.md +13 -0
- package/api/@xmachines/play-solid/interfaces/ActionProviderProps.md +12 -0
- package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +30 -0
- package/api/@xmachines/play-solid/interfaces/ComponentContext.md +37 -0
- package/api/@xmachines/play-solid/interfaces/DefineRegistryResult.md +15 -0
- package/api/@xmachines/play-solid/interfaces/JSONUIProviderProps.md +22 -0
- package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +26 -0
- package/api/@xmachines/play-solid/interfaces/RendererProps.md +17 -0
- package/api/@xmachines/play-solid/interfaces/StateProviderProps.md +13 -0
- package/api/@xmachines/play-solid/interfaces/ValidationProviderProps.md +11 -0
- package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +21 -0
- package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +11 -0
- package/api/@xmachines/play-solid/type-aliases/ComponentFn.md +36 -0
- package/api/@xmachines/play-solid/type-aliases/ComponentRegistry.md +11 -0
- package/api/@xmachines/play-solid/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-solid/type-aliases/SetState.md +21 -0
- package/api/@xmachines/play-solid/type-aliases/VisibilityProviderProps.md +9 -0
- package/api/@xmachines/play-solid/variables/ActorContext.md +13 -0
- package/api/@xmachines/play-solid/variables/ActorProvider.md +27 -0
- package/api/@xmachines/play-solid/variables/PlayRenderer.md +6 -62
- package/api/@xmachines/play-solid/variables/PlayUIProvider.md +26 -0
- package/api/@xmachines/play-solid-router/README.md +151 -560
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +31 -32
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +27 -242
- package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +44 -0
- package/api/@xmachines/play-solid-router/functions/createRouteMap.md +18 -11
- package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +84 -115
- package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderBaseProps.md +30 -0
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +25 -9
- package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +20 -7
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +34 -0
- package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +8 -4
- package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +22 -19
- package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +52 -0
- package/api/@xmachines/play-svelte/README.md +269 -0
- package/api/@xmachines/play-svelte/functions/defineRegistry.md +31 -0
- package/api/@xmachines/play-svelte/functions/getActorContext.md +21 -0
- package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +19 -0
- package/api/@xmachines/play-svelte/functions/setActorContext.md +19 -0
- package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +44 -0
- package/api/@xmachines/play-svelte/interfaces/BaseComponentProps.md +29 -0
- package/api/@xmachines/play-svelte/interfaces/ComponentContext.md +29 -0
- package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +24 -0
- package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +43 -0
- package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +24 -0
- package/api/@xmachines/play-svelte/type-aliases/ActionFn.md +30 -0
- package/api/@xmachines/play-svelte/type-aliases/Actions.md +17 -0
- package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +11 -0
- package/api/@xmachines/play-svelte/type-aliases/ComponentFn.md +18 -0
- package/api/@xmachines/play-svelte/type-aliases/JSONUIProviderProps.md +7 -0
- package/api/@xmachines/play-svelte/type-aliases/PlayRenderer.md +9 -0
- package/api/@xmachines/play-svelte/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-svelte/type-aliases/SetState.md +21 -0
- package/api/@xmachines/play-svelte/variables/PlayRenderer.md +9 -0
- package/api/@xmachines/play-svelte-spa-router/README.md +199 -0
- package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +149 -0
- package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +32 -0
- package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +39 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +17 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +129 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +27 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +65 -0
- package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +9 -0
- package/api/@xmachines/play-sveltekit-router/README.md +211 -0
- package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +149 -0
- package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +32 -0
- package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +39 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +13 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +27 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +129 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +27 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +9 -0
- package/api/@xmachines/play-tanstack-react-router/README.md +155 -126
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +48 -36
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +31 -252
- package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +45 -0
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +22 -36
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +23 -12
- package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +28 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderBaseProps.md +32 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +25 -9
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +19 -9
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +6 -6
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +2 -2
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +40 -18
- package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +34 -0
- package/api/@xmachines/play-tanstack-router/README.md +58 -0
- package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +131 -0
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +57 -0
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +100 -0
- package/api/@xmachines/play-tanstack-solid-router/README.md +215 -175
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +31 -32
- package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +121 -0
- package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +44 -0
- package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +18 -11
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderBaseProps.md +31 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +23 -9
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +14 -10
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +8 -4
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +40 -18
- package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +33 -0
- package/api/@xmachines/play-vue/README.md +192 -210
- package/api/@xmachines/play-vue/functions/defineRegistry.md +32 -0
- package/api/@xmachines/play-vue/functions/getPlayViewContext.md +28 -0
- package/api/@xmachines/play-vue/functions/useActor.md +13 -0
- package/api/@xmachines/play-vue/functions/useBoundProp.md +45 -0
- package/api/@xmachines/play-vue/interfaces/ActionProviderProps.md +12 -0
- package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +25 -0
- package/api/@xmachines/play-vue/interfaces/ComponentContext.md +37 -0
- package/api/@xmachines/play-vue/interfaces/DefineRegistryResult.md +15 -0
- package/api/@xmachines/play-vue/interfaces/JSONUIProviderProps.md +21 -0
- package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +24 -0
- package/api/@xmachines/play-vue/interfaces/RendererProps.md +17 -0
- package/api/@xmachines/play-vue/interfaces/StateProviderProps.md +15 -0
- package/api/@xmachines/play-vue/interfaces/ValidationProviderProps.md +11 -0
- package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +21 -0
- package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +5 -0
- package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +11 -0
- package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +16 -0
- package/api/@xmachines/play-vue/type-aliases/ComponentFn.md +35 -0
- package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +15 -0
- package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +22 -0
- package/api/@xmachines/play-vue/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-vue/variables/ActionProvider.md +64 -0
- package/api/@xmachines/play-vue/variables/JSONUIProvider.md +105 -0
- package/api/@xmachines/play-vue/variables/PlayRenderer.md +2 -2
- package/api/@xmachines/play-vue/variables/Renderer.md +88 -0
- package/api/@xmachines/play-vue/variables/StateProvider.md +79 -0
- package/api/@xmachines/play-vue/variables/ValidationProvider.md +55 -0
- package/api/@xmachines/play-vue/variables/VisibilityProvider.md +40 -0
- package/api/@xmachines/play-vue-router/README.md +173 -487
- package/api/@xmachines/play-vue-router/classes/RouteMap.md +56 -116
- package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +23 -271
- package/api/@xmachines/play-vue-router/functions/createRouteMap.md +26 -6
- package/api/@xmachines/play-vue-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-vue-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +20 -8
- package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +8 -4
- package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +12 -6
- package/api/@xmachines/play-xstate/README.md +178 -347
- package/api/@xmachines/play-xstate/classes/PlayerActor.md +161 -191
- package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +31 -20
- package/api/@xmachines/play-xstate/functions/composeGuards.md +2 -2
- package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +2 -2
- package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +38 -0
- package/api/@xmachines/play-xstate/functions/definePlayer.md +14 -63
- package/api/@xmachines/play-xstate/functions/deriveRoute.md +3 -3
- package/api/@xmachines/play-xstate/functions/eventMatches.md +2 -2
- package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +3 -3
- package/api/@xmachines/play-xstate/functions/hasContext.md +2 -2
- package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +2 -2
- package/api/@xmachines/play-xstate/functions/negateGuard.md +2 -2
- package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +10 -14
- package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +22 -0
- package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +12 -13
- package/api/@xmachines/play-xstate/interfaces/RouteContext.md +15 -13
- package/api/@xmachines/play-xstate/interfaces/RouteObject.md +17 -0
- package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +2 -2
- package/api/@xmachines/play-xstate/type-aliases/Guard.md +2 -2
- package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +3 -3
- package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +10 -9
- package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +15 -5
- package/api/@xmachines/play-xstate/type-aliases/RouteMetadata.md +9 -0
- package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +22 -6
- package/api/@xmachines/shared/README.md +95 -295
- package/api/@xmachines/shared/vite-aliases/README.md +11 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +38 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +27 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +30 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +42 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +33 -0
- package/api/@xmachines/shared/vitest/README.md +12 -0
- package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +42 -0
- package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +34 -0
- package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +16 -0
- package/api/README.md +6 -7
- package/api/llms.txt +72 -23
- package/contributing/README.md +10 -0
- package/contributing/architecture.md +599 -0
- package/contributing/configuration.md +368 -0
- package/contributing/deployment.md +312 -0
- package/contributing/development.md +464 -0
- package/contributing/testing.md +453 -0
- package/examples/@xmachines/play-dom-demo/README.md +181 -0
- package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +24 -0
- package/examples/@xmachines/play-dom-demo/functions/initShell.md +24 -0
- package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-dom-demo/variables/About.md +12 -0
- package/examples/@xmachines/play-dom-demo/variables/Contact.md +12 -0
- package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Home.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Login.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +16 -0
- package/examples/@xmachines/play-dom-demo/variables/Navigation.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Overview.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Profile.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Settings.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Stats.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-dom-router-demo/README.md +145 -0
- package/examples/@xmachines/play-react-demo/README.md +187 -0
- package/examples/@xmachines/play-react-demo/functions/App.md +13 -0
- package/examples/@xmachines/play-react-demo/functions/DebugPanel.md +20 -0
- package/examples/@xmachines/play-react-demo/functions/HeaderNav.md +20 -0
- package/examples/@xmachines/play-react-demo/functions/Shell.md +22 -0
- package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-react-demo/variables/About.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Contact.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Dashboard.md +15 -0
- package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +15 -0
- package/examples/@xmachines/play-react-demo/variables/Home.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Login.md +16 -0
- package/examples/@xmachines/play-react-demo/variables/NavBar.md +16 -0
- package/examples/@xmachines/play-react-demo/variables/NavBarView.md +15 -0
- package/examples/@xmachines/play-react-demo/variables/Navigation.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Overview.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Profile.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Settings.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Shell.md +18 -0
- package/examples/@xmachines/play-react-demo/variables/Stats.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-react-router-demo/README.md +151 -0
- package/examples/@xmachines/play-solid-demo/README.md +187 -0
- package/examples/@xmachines/play-solid-demo/functions/App.md +13 -0
- package/examples/@xmachines/play-solid-demo/functions/DebugPanel.md +20 -0
- package/examples/@xmachines/play-solid-demo/functions/HeaderNav.md +20 -0
- package/examples/@xmachines/play-solid-demo/functions/Shell.md +22 -0
- package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/About.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Contact.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +15 -0
- package/examples/@xmachines/play-solid-demo/variables/Home.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Login.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/NavBar.md +11 -0
- package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +15 -0
- package/examples/@xmachines/play-solid-demo/variables/Navigation.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Overview.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Profile.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Settings.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Shell.md +17 -0
- package/examples/@xmachines/play-solid-demo/variables/Stats.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-solid-router-demo/README.md +137 -0
- package/examples/@xmachines/play-svelte-demo/README.md +143 -0
- package/examples/@xmachines/play-svelte-demo/type-aliases/App.md +9 -0
- package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-svelte-demo/variables/App.md +9 -0
- package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-svelte-spa-router-demo/README.md +129 -0
- package/examples/@xmachines/play-sveltekit-router-demo/README.md +133 -0
- package/examples/@xmachines/play-tanstack-react-router-demo/README.md +156 -0
- package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +139 -0
- package/examples/@xmachines/play-vue-demo/README.md +183 -0
- package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-vue-demo/variables/App.md +9 -0
- package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-vue-router-demo/README.md +139 -0
- package/examples/README.md +78 -30
- package/examples/basic-state-machine.md +75 -31
- package/examples/form-validation.md +261 -118
- package/examples/multi-router-integration.md +314 -194
- package/examples/routing-patterns.md +230 -189
- package/examples/traffic-light.md +114 -65
- package/guides/README.md +9 -21
- package/guides/actor-model.md +180 -0
- package/guides/getting-started.md +619 -137
- package/guides/signals.md +166 -0
- package/guides/state-machines.md +284 -0
- package/package.json +18 -7
- package/rfc/broker.md +100 -0
- package/rfc/browser.md +44 -0
- package/rfc/cli.md +118 -0
- package/rfc/git.md +61 -0
- package/rfc/mcp.md +43 -0
- package/rfc/node.md +36 -0
- package/rfc/play.md +472 -0
- package/rfc/rest.md +102 -0
- package/rfc/run.md +159 -0
- package/rfc/streams.md +168 -0
- package/api/@xmachines/play-actor/interfaces/ViewMetadata.md +0 -17
- package/api/@xmachines/play-catalog/README.md +0 -331
- package/api/@xmachines/play-catalog/functions/defineCatalog.md +0 -98
- package/api/@xmachines/play-catalog/functions/defineComponents.md +0 -134
- package/api/@xmachines/play-catalog/type-aliases/Catalog.md +0 -48
- package/api/@xmachines/play-catalog/type-aliases/ComponentsFor.md +0 -20
- package/api/@xmachines/play-catalog/type-aliases/InferComponentProps.md +0 -65
- package/api/@xmachines/play-catalog/type-aliases/NoExtraKeys.md +0 -17
- package/api/@xmachines/play-react/interfaces/PlayRendererProps.md +0 -15
- package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +0 -19
- package/api/@xmachines/play-react-router-demo/README.md +0 -137
- package/api/@xmachines/play-router/classes/BaseRouteMap.md +0 -142
- package/api/@xmachines/play-router/functions/connectRouter.md +0 -67
- package/api/@xmachines/play-router/functions/crawlMachine.md +0 -92
- package/api/@xmachines/play-router/functions/createRouter.md +0 -76
- package/api/@xmachines/play-router/functions/extractRoute.md +0 -45
- package/api/@xmachines/play-router/interfaces/BaseRouteMapping.md +0 -27
- package/api/@xmachines/play-router/interfaces/BrowserHistory.md +0 -172
- package/api/@xmachines/play-router/interfaces/BrowserWindow.md +0 -69
- package/api/@xmachines/play-router/interfaces/ConnectRouterOptions.md +0 -13
- package/api/@xmachines/play-router/interfaces/RouteMap.md +0 -56
- package/api/@xmachines/play-router/interfaces/StateVisit.md +0 -15
- package/api/@xmachines/play-router/interfaces/VanillaRouter.md +0 -28
- package/api/@xmachines/play-router-demo/README.md +0 -137
- package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +0 -15
- package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +0 -19
- package/api/@xmachines/play-solid-router-demo/README.md +0 -127
- package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +0 -19
- package/api/@xmachines/play-tanstack-react-router/functions/extractParams.md +0 -38
- package/api/@xmachines/play-tanstack-react-router/functions/extractQueryParams.md +0 -33
- package/api/@xmachines/play-tanstack-react-router/variables/extractMachineRoutes.md +0 -64
- package/api/@xmachines/play-tanstack-react-router-demo/README.md +0 -126
- package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +0 -343
- package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +0 -19
- package/api/@xmachines/play-tanstack-solid-router-demo/README.md +0 -126
- package/api/@xmachines/play-vue/interfaces/PlayRendererProps.md +0 -14
- package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +0 -201
- package/api/@xmachines/play-vue-router-demo/README.md +0 -133
- package/api/@xmachines/play-xstate/functions/mergeViewProps.md +0 -26
- package/api/@xmachines/play-xstate/functions/stateMatches.md +0 -25
- package/api/@xmachines/play-xstate/functions/validateComponentBinding.md +0 -39
- package/api/@xmachines/play-xstate/functions/validateViewProps.md +0 -80
- package/api/@xmachines/play-xstate/interfaces/CatalogEntry.md +0 -16
- package/api/@xmachines/play-xstate/type-aliases/Catalog.md +0 -21
- package/api/@xmachines/play-xstate/type-aliases/ValidationResult.md +0 -17
- package/api/@xmachines/play-xstate/type-aliases/ViewMergeContext.md +0 -35
- package/api/@xmachines/shared/functions/defineXmVitestConfig.md +0 -29
- package/api/@xmachines/shared/functions/xmAliases.md +0 -24
- package/guides/installation.md +0 -323
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-router](../README.md) / RouteMap
|
|
2
|
+
|
|
3
|
+
# Class: RouteMap
|
|
4
|
+
|
|
5
|
+
Defined in: [base-route-map.ts:101](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-router/src/base-route-map.ts#L101)
|
|
6
|
+
|
|
7
|
+
Shared bidirectional route map base class.
|
|
8
|
+
|
|
9
|
+
All framework adapters use this class as their route map — 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 `URLPattern`, where `k` is the number
|
|
16
|
+
of routes sharing the same first path segment
|
|
17
|
+
- Results are cached after the first match in an LRU cache (default 500 entries,
|
|
18
|
+
configurable via the `cacheSize` constructor option)
|
|
19
|
+
|
|
20
|
+
**Pattern syntax** (`:param` / `:param?` / `*`):
|
|
21
|
+
|
|
22
|
+
- `:param` — required segment, matches exactly one non-`/` segment
|
|
23
|
+
- `:param?` — optional segment, matches zero or one non-`/` segment
|
|
24
|
+
- `*` — wildcard, matches any number of segments (URLPattern semantics)
|
|
25
|
+
|
|
26
|
+
**StateId forms:** stateIds may be registered and looked up in either
|
|
27
|
+
`"#stateId"` or `"stateId"` form — `RouteMap` canonicalizes internally.
|
|
28
|
+
`getStateIdByPath` returns the stateId exactly as registered;
|
|
29
|
+
`getPathByStateId` accepts both forms. Registering the same stateId in both
|
|
30
|
+
forms refers to one entry (the later registration wins for reverse lookup).
|
|
31
|
+
|
|
32
|
+
## Example
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
import { RouteMap } from "@xmachines/play-router";
|
|
36
|
+
|
|
37
|
+
const map = new RouteMap([
|
|
38
|
+
{ stateId: "home", path: "/" },
|
|
39
|
+
{ stateId: "profile", path: "/profile/:userId" },
|
|
40
|
+
{ stateId: "settings", path: "/settings/:section?" },
|
|
41
|
+
]);
|
|
42
|
+
|
|
43
|
+
map.getStateIdByPath("/"); // "home"
|
|
44
|
+
map.getStateIdByPath("/profile/123"); // "profile"
|
|
45
|
+
map.getStateIdByPath("/settings"); // "settings"
|
|
46
|
+
map.getStateIdByPath("/unknown"); // null
|
|
47
|
+
|
|
48
|
+
map.getPathByStateId("profile"); // "/profile/:userId"
|
|
49
|
+
map.getPathByStateId("missing"); // null
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Constructors
|
|
53
|
+
|
|
54
|
+
### Constructor
|
|
55
|
+
|
|
56
|
+
```ts
|
|
57
|
+
new RouteMap(mappings, options?): RouteMap;
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Defined in: [base-route-map.ts:127](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-router/src/base-route-map.ts#L127)
|
|
61
|
+
|
|
62
|
+
Build a route map from an array of state ID ↔ path mappings.
|
|
63
|
+
|
|
64
|
+
Static paths (no `:param`) are indexed in an O(1) `Map`.
|
|
65
|
+
Parameterized paths are compiled to `URLPattern` and grouped into first-segment
|
|
66
|
+
buckets for efficient candidate selection.
|
|
67
|
+
|
|
68
|
+
#### Parameters
|
|
69
|
+
|
|
70
|
+
| Parameter | Type | Description |
|
|
71
|
+
| -------------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
72
|
+
| `mappings` | [`RouteMapping`](../interfaces/RouteMapping.md)[] | Array of `{ stateId, path }` entries. Order determines priority when multiple patterns could match the same path. |
|
|
73
|
+
| `options` | \{ `cacheSize?`: `number`; \} | Optional configuration. `options.cacheSize`: Maximum number of resolved parameterized path lookups to cache. Defaults to `500`. Increase for applications with many unique parameterized URL values (e.g. user profile pages with thousands of distinct IDs). After eviction the path falls back to the O(k) bucket pattern scan — correct but slower. Minimum effective value is `1` (QuickLRU constraint). |
|
|
74
|
+
| `options.cacheSize?` | `number` | - |
|
|
75
|
+
|
|
76
|
+
#### Returns
|
|
77
|
+
|
|
78
|
+
`RouteMap`
|
|
79
|
+
|
|
80
|
+
## Methods
|
|
81
|
+
|
|
82
|
+
### getPathByStateId()
|
|
83
|
+
|
|
84
|
+
```ts
|
|
85
|
+
getPathByStateId(stateId): string | null;
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Defined in: [base-route-map.ts:218](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-router/src/base-route-map.ts#L218)
|
|
89
|
+
|
|
90
|
+
Look up the path pattern registered for a state ID.
|
|
91
|
+
|
|
92
|
+
Accepts the stateId in either `"#stateId"` or `"stateId"` form regardless of
|
|
93
|
+
which form was used at registration — lookups are canonicalized internally,
|
|
94
|
+
so consumers never need to try both forms.
|
|
95
|
+
|
|
96
|
+
#### Parameters
|
|
97
|
+
|
|
98
|
+
| Parameter | Type | Description |
|
|
99
|
+
| --------- | -------- | --------------------------------------------------------- |
|
|
100
|
+
| `stateId` | `string` | State machine state ID (e.g., `"profile"`, `"#settings"`) |
|
|
101
|
+
|
|
102
|
+
#### Returns
|
|
103
|
+
|
|
104
|
+
`string` \| `null`
|
|
105
|
+
|
|
106
|
+
The registered path pattern, or `null` if the state ID is unknown
|
|
107
|
+
|
|
108
|
+
#### Example
|
|
109
|
+
|
|
110
|
+
```typescript
|
|
111
|
+
map.getPathByStateId("profile"); // "/profile/:userId"
|
|
112
|
+
map.getPathByStateId("#profile"); // "/profile/:userId" (same entry)
|
|
113
|
+
map.getPathByStateId("missing"); // null
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
### getStateIdByPath()
|
|
119
|
+
|
|
120
|
+
```ts
|
|
121
|
+
getStateIdByPath(path): string | null;
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Defined in: [base-route-map.ts:178](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-router/src/base-route-map.ts#L178)
|
|
125
|
+
|
|
126
|
+
Resolve a URL path to its mapped state ID.
|
|
127
|
+
|
|
128
|
+
Strips query strings and hash fragments before matching. Tries an O(1) exact
|
|
129
|
+
lookup first, then falls back to bucket-indexed pattern matching. Results are
|
|
130
|
+
cached after the first pattern match.
|
|
131
|
+
|
|
132
|
+
#### Parameters
|
|
133
|
+
|
|
134
|
+
| Parameter | Type | Description |
|
|
135
|
+
| --------- | -------- | ------------------------------------------------------------------------------ |
|
|
136
|
+
| `path` | `string` | URL pathname, optionally including query/hash (e.g., `"/profile/123?ref=nav"`) |
|
|
137
|
+
|
|
138
|
+
#### Returns
|
|
139
|
+
|
|
140
|
+
`string` \| `null`
|
|
141
|
+
|
|
142
|
+
The mapped state ID, or `null` if no route matches
|
|
143
|
+
|
|
144
|
+
#### Example
|
|
145
|
+
|
|
146
|
+
```typescript
|
|
147
|
+
map.getStateIdByPath("/profile/123"); // "profile"
|
|
148
|
+
map.getStateIdByPath("/unknown"); // null
|
|
149
|
+
```
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
[
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-router](../README.md) / RouterBridgeBase
|
|
2
2
|
|
|
3
3
|
# Abstract Class: RouterBridgeBase
|
|
4
4
|
|
|
5
|
-
Defined in: [router-bridge-base.ts:
|
|
5
|
+
Defined in: [router-bridge-base.ts:96](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-router/src/router-bridge-base.ts#L96)
|
|
6
6
|
|
|
7
7
|
Abstract base class for all `@xmachines` router adapter bridges.
|
|
8
8
|
|
|
@@ -13,9 +13,9 @@ between frameworks.
|
|
|
13
13
|
## Extended by
|
|
14
14
|
|
|
15
15
|
- [`ReactRouterBridge`](../../play-react-router/classes/ReactRouterBridge.md)
|
|
16
|
+
- [`TanStackRouterBridgeBase`](../../play-tanstack-router/classes/TanStackRouterBridgeBase.md)
|
|
16
17
|
- [`SolidRouterBridge`](../../play-solid-router/classes/SolidRouterBridge.md)
|
|
17
18
|
- [`TanStackReactRouterBridge`](../../play-tanstack-react-router/classes/TanStackReactRouterBridge.md)
|
|
18
|
-
- [`SolidRouterBridge`](../../play-tanstack-solid-router/classes/SolidRouterBridge.md)
|
|
19
19
|
- [`VueRouterBridge`](../../play-vue-router/classes/VueRouterBridge.md)
|
|
20
20
|
|
|
21
21
|
## Implements
|
|
@@ -30,37 +30,21 @@ between frameworks.
|
|
|
30
30
|
new RouterBridgeBase(actor, routeMap): RouterBridgeBase;
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
Defined in: [router-bridge-base.ts:
|
|
34
|
-
|
|
35
|
-
Constructor receives the 3 things all bridges need.
|
|
33
|
+
Defined in: [router-bridge-base.ts:123](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-router/src/router-bridge-base.ts#L123)
|
|
36
34
|
|
|
37
35
|
#### Parameters
|
|
38
36
|
|
|
39
|
-
| Parameter | Type
|
|
40
|
-
| --------------------------- |
|
|
41
|
-
| `actor` | [`
|
|
42
|
-
| `routeMap` | \{ `getPathByStateId`: `string` \| `null` \| `undefined`; `getStateIdByPath`: `string` \| `null` \| `undefined`; \}
|
|
43
|
-
| `routeMap.getPathByStateId` | -
|
|
44
|
-
| `routeMap.getStateIdByPath` | -
|
|
37
|
+
| Parameter | Type | Description |
|
|
38
|
+
| --------------------------- | ------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
39
|
+
| `actor` | [`RoutableActor`](../interfaces/RoutableActor.md) | A `RoutableActor` exposing `currentRoute`, `initialRoute`, and `send`. |
|
|
40
|
+
| `routeMap` | \{ `getPathByStateId`: `string` \| `null` \| `undefined`; `getStateIdByPath`: `string` \| `null` \| `undefined`; \} | Bidirectional route map for `stateId ↔ path` resolution. Provide `getStateIdByPath` and `getPathByStateId`. Framework adapters typically wrap the result of `createRouteMap(machine)` or an equivalent. `getPathByStateId` may be keyed on either the `"#stateId"` or the bare `"stateId"` form — both forms are tried automatically by the bridge, so custom implementations (e.g. plain test objects) need only handle one. |
|
|
41
|
+
| `routeMap.getPathByStateId` | - |
|
|
42
|
+
| `routeMap.getStateIdByPath` | - |
|
|
45
43
|
|
|
46
44
|
#### Returns
|
|
47
45
|
|
|
48
46
|
`RouterBridgeBase`
|
|
49
47
|
|
|
50
|
-
## Properties
|
|
51
|
-
|
|
52
|
-
| Property | Modifier | Type | Default value | Description | Defined in |
|
|
53
|
-
| --------------------------------------------------------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------- | ------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
54
|
-
| <a id="property-actor"></a> `actor` | `readonly` | [`AbstractActor`](../../play-actor/classes/AbstractActor.md)\<`AnyActorLogic`\> & [`Routable`](../../play-actor/interfaces/Routable.md) | `undefined` | Actor with currentRoute signal and send method | [router-bridge-base.ts:71](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/router-bridge-base.ts#L71) |
|
|
55
|
-
| <a id="property-hasconnectedonce"></a> `hasConnectedOnce` | `protected` | `boolean` | `false` | - | [router-bridge-base.ts:59](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/router-bridge-base.ts#L59) |
|
|
56
|
-
| <a id="property-isconnected"></a> `isConnected` | `protected` | `boolean` | `false` | - | [router-bridge-base.ts:58](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/router-bridge-base.ts#L58) |
|
|
57
|
-
| <a id="property-isprocessingnavigation"></a> `isProcessingNavigation` | `protected` | `boolean` | `false` | - | [router-bridge-base.ts:61](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/router-bridge-base.ts#L61) |
|
|
58
|
-
| <a id="property-lastsyncedpath"></a> `lastSyncedPath` | `protected` | `string` | `""` | - | [router-bridge-base.ts:60](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/router-bridge-base.ts#L60) |
|
|
59
|
-
| <a id="property-routemap"></a> `routeMap` | `readonly` | `object` | `undefined` | Bidirectional route map for stateId ↔ path resolution | [router-bridge-base.ts:72](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/router-bridge-base.ts#L72) |
|
|
60
|
-
| `routeMap.getPathByStateId` | `public` | `string` \| `null` \| `undefined` | `undefined` | - | [router-bridge-base.ts:74](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/router-bridge-base.ts#L74) |
|
|
61
|
-
| `routeMap.getStateIdByPath` | `public` | `string` \| `null` \| `undefined` | `undefined` | - | [router-bridge-base.ts:73](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/router-bridge-base.ts#L73) |
|
|
62
|
-
| <a id="property-routewatcher"></a> `routeWatcher` | `protected` | \| [`Watcher`](../../play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md) \| `null` | `null` | - | [router-bridge-base.ts:62](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/router-bridge-base.ts#L62) |
|
|
63
|
-
|
|
64
48
|
## Methods
|
|
65
49
|
|
|
66
50
|
### connect()
|
|
@@ -69,13 +53,22 @@ Constructor receives the 3 things all bridges need.
|
|
|
69
53
|
connect(): void;
|
|
70
54
|
```
|
|
71
55
|
|
|
72
|
-
Defined in: [router-bridge-base.ts:
|
|
56
|
+
Defined in: [router-bridge-base.ts:151](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-router/src/router-bridge-base.ts#L151)
|
|
73
57
|
|
|
74
58
|
Connect the router bridge to the Actor.
|
|
75
59
|
|
|
76
60
|
Sets up the TC39 Signal watcher for actor → router direction and
|
|
77
61
|
starts watching router changes (framework-specific).
|
|
78
62
|
|
|
63
|
+
Ordering here is part of the bridge contract:
|
|
64
|
+
|
|
65
|
+
- `lastSyncedPath` is seeded in the constructor from `actor.currentRoute`
|
|
66
|
+
- the actor watcher is installed before adapter router subscriptions
|
|
67
|
+
- initial sync then resolves deep-link vs restore using `actor.initialRoute`
|
|
68
|
+
|
|
69
|
+
Adapters that need custom initial-sync behavior should override
|
|
70
|
+
`getInitialRouterPath()` rather than reordering `connect()` steps.
|
|
71
|
+
|
|
79
72
|
#### Returns
|
|
80
73
|
|
|
81
74
|
`void`
|
|
@@ -92,7 +85,7 @@ starts watching router changes (framework-specific).
|
|
|
92
85
|
disconnect(): void;
|
|
93
86
|
```
|
|
94
87
|
|
|
95
|
-
Defined in: [router-bridge-base.ts:
|
|
88
|
+
Defined in: [router-bridge-base.ts:256](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-router/src/router-bridge-base.ts#L256)
|
|
96
89
|
|
|
97
90
|
Disconnect the router bridge from the Actor.
|
|
98
91
|
|
|
@@ -105,196 +98,3 @@ Stops signal watching and unregisters framework-specific router listener.
|
|
|
105
98
|
#### Implementation of
|
|
106
99
|
|
|
107
100
|
[`RouterBridge`](../interfaces/RouterBridge.md).[`disconnect`](../interfaces/RouterBridge.md#disconnect)
|
|
108
|
-
|
|
109
|
-
---
|
|
110
|
-
|
|
111
|
-
### extractParams()
|
|
112
|
-
|
|
113
|
-
```ts
|
|
114
|
-
protected extractParams(pathname, stateId): Record<string, string>;
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
Defined in: [router-bridge-base.ts:276](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/router-bridge-base.ts#L276)
|
|
118
|
-
|
|
119
|
-
Extract path parameters from URL using the URLPattern API.
|
|
120
|
-
|
|
121
|
-
Accesses `globalThis.URLPattern` at runtime — no polyfill is imported by this
|
|
122
|
-
library. If `URLPattern` is unavailable (Node.js < 24, older browsers without a
|
|
123
|
-
polyfill), this method returns `{}` silently (graceful degradation — routing still
|
|
124
|
-
works, params will be empty).
|
|
125
|
-
|
|
126
|
-
#### Parameters
|
|
127
|
-
|
|
128
|
-
| Parameter | Type | Description |
|
|
129
|
-
| ---------- | -------- | ------------------------------------------------- |
|
|
130
|
-
| `pathname` | `string` | The actual URL path (e.g., '/profile/john') |
|
|
131
|
-
| `stateId` | `string` | The matched state ID for looking up route pattern |
|
|
132
|
-
|
|
133
|
-
#### Returns
|
|
134
|
-
|
|
135
|
-
`Record`\<`string`, `string`\>
|
|
136
|
-
|
|
137
|
-
Extracted path parameters, or empty object if URLPattern is unavailable or no match
|
|
138
|
-
|
|
139
|
-
---
|
|
140
|
-
|
|
141
|
-
### extractQuery()
|
|
142
|
-
|
|
143
|
-
```ts
|
|
144
|
-
protected extractQuery(search): Record<string, string>;
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
Defined in: [router-bridge-base.ts:303](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/router-bridge-base.ts#L303)
|
|
148
|
-
|
|
149
|
-
Extract query parameters from URL search string.
|
|
150
|
-
|
|
151
|
-
#### Parameters
|
|
152
|
-
|
|
153
|
-
| Parameter | Type | Description |
|
|
154
|
-
| --------- | -------- | ------------------------------------------------ |
|
|
155
|
-
| `search` | `string` | URL search string (e.g., '?tab=security&page=1') |
|
|
156
|
-
|
|
157
|
-
#### Returns
|
|
158
|
-
|
|
159
|
-
`Record`\<`string`, `string`\>
|
|
160
|
-
|
|
161
|
-
Extracted query parameters or empty object
|
|
162
|
-
|
|
163
|
-
---
|
|
164
|
-
|
|
165
|
-
### getInitialRouterPath()
|
|
166
|
-
|
|
167
|
-
```ts
|
|
168
|
-
protected getInitialRouterPath(): string | null;
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
Defined in: [router-bridge-base.ts:353](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/router-bridge-base.ts#L353)
|
|
172
|
-
|
|
173
|
-
Return the router's current pathname at connect() time, or null if unavailable.
|
|
174
|
-
|
|
175
|
-
Called once during connect() to perform the initial URL → actor sync.
|
|
176
|
-
router.subscribe() only fires on _future_ navigation events; it does not
|
|
177
|
-
replay the already-loaded location. Subclasses that can read the router's
|
|
178
|
-
current location synchronously (e.g. `router.state.location.pathname`)
|
|
179
|
-
should override this method so that deep-link / direct-URL loads drive the
|
|
180
|
-
actor to the correct state instead of leaving it at its machine default.
|
|
181
|
-
|
|
182
|
-
The default returns null (no initial router → actor sync), preserving the
|
|
183
|
-
previous behaviour for bridges that have not yet implemented this hook.
|
|
184
|
-
|
|
185
|
-
#### Returns
|
|
186
|
-
|
|
187
|
-
`string` \| `null`
|
|
188
|
-
|
|
189
|
-
---
|
|
190
|
-
|
|
191
|
-
### navigateRouter()
|
|
192
|
-
|
|
193
|
-
```ts
|
|
194
|
-
abstract protected navigateRouter(path): void;
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
Defined in: [router-bridge-base.ts:323](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/router-bridge-base.ts#L323)
|
|
198
|
-
|
|
199
|
-
Navigate the framework router to the given path.
|
|
200
|
-
|
|
201
|
-
Called when actor's currentRoute signal changes to a new path.
|
|
202
|
-
Must trigger the framework router's navigation (e.g., router.navigate(path)).
|
|
203
|
-
|
|
204
|
-
#### Parameters
|
|
205
|
-
|
|
206
|
-
| Parameter | Type |
|
|
207
|
-
| --------- | -------- |
|
|
208
|
-
| `path` | `string` |
|
|
209
|
-
|
|
210
|
-
#### Returns
|
|
211
|
-
|
|
212
|
-
`void`
|
|
213
|
-
|
|
214
|
-
---
|
|
215
|
-
|
|
216
|
-
### syncActorFromRouter()
|
|
217
|
-
|
|
218
|
-
```ts
|
|
219
|
-
protected syncActorFromRouter(pathname, search?): void;
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
Defined in: [router-bridge-base.ts:187](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/router-bridge-base.ts#L187)
|
|
223
|
-
|
|
224
|
-
Sync actor state when router location changes.
|
|
225
|
-
|
|
226
|
-
Sends play.route event to actor with resolved stateId, params, and query.
|
|
227
|
-
Prevents circular updates via isProcessingNavigation flag.
|
|
228
|
-
|
|
229
|
-
#### Parameters
|
|
230
|
-
|
|
231
|
-
| Parameter | Type |
|
|
232
|
-
| ---------- | -------- |
|
|
233
|
-
| `pathname` | `string` |
|
|
234
|
-
| `search?` | `string` |
|
|
235
|
-
|
|
236
|
-
#### Returns
|
|
237
|
-
|
|
238
|
-
`void`
|
|
239
|
-
|
|
240
|
-
---
|
|
241
|
-
|
|
242
|
-
### syncRouterFromActor()
|
|
243
|
-
|
|
244
|
-
```ts
|
|
245
|
-
protected syncRouterFromActor(route): void;
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
Defined in: [router-bridge-base.ts:167](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/router-bridge-base.ts#L167)
|
|
249
|
-
|
|
250
|
-
Sync router location when actor route signal changes.
|
|
251
|
-
|
|
252
|
-
Calls navigateRouter() for framework-specific navigation.
|
|
253
|
-
Prevents circular updates via isProcessingNavigation flag.
|
|
254
|
-
|
|
255
|
-
#### Parameters
|
|
256
|
-
|
|
257
|
-
| Parameter | Type |
|
|
258
|
-
| --------- | --------- |
|
|
259
|
-
| `route` | `unknown` |
|
|
260
|
-
|
|
261
|
-
#### Returns
|
|
262
|
-
|
|
263
|
-
`void`
|
|
264
|
-
|
|
265
|
-
---
|
|
266
|
-
|
|
267
|
-
### unwatchRouterChanges()
|
|
268
|
-
|
|
269
|
-
```ts
|
|
270
|
-
abstract protected unwatchRouterChanges(): void;
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
Defined in: [router-bridge-base.ts:338](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/router-bridge-base.ts#L338)
|
|
274
|
-
|
|
275
|
-
Stop watching for router location changes.
|
|
276
|
-
|
|
277
|
-
Called by disconnect(). Should clean up the framework-specific subscription.
|
|
278
|
-
|
|
279
|
-
#### Returns
|
|
280
|
-
|
|
281
|
-
`void`
|
|
282
|
-
|
|
283
|
-
---
|
|
284
|
-
|
|
285
|
-
### watchRouterChanges()
|
|
286
|
-
|
|
287
|
-
```ts
|
|
288
|
-
abstract protected watchRouterChanges(): void;
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
Defined in: [router-bridge-base.ts:331](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/router-bridge-base.ts#L331)
|
|
292
|
-
|
|
293
|
-
Start watching for router location changes.
|
|
294
|
-
|
|
295
|
-
Called by connect(). Should set up the framework-specific subscription
|
|
296
|
-
for location changes and call syncActorFromRouter() on each change.
|
|
297
|
-
|
|
298
|
-
#### Returns
|
|
299
|
-
|
|
300
|
-
`void`
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-router](../README.md) / buildPlayRouteEvent
|
|
2
|
+
|
|
3
|
+
# Function: buildPlayRouteEvent()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function buildPlayRouteEvent(options): {
|
|
7
|
+
event: PlayRouteEvent;
|
|
8
|
+
pathname: string;
|
|
9
|
+
} | null;
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Defined in: [router-sync.ts:168](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-router/src/router-sync.ts#L168)
|
|
13
|
+
|
|
14
|
+
Build a normalized `play.route` event from raw router/browser input.
|
|
15
|
+
|
|
16
|
+
Both `connectRouter()` (from `@xmachines/play-dom-router`) and `RouterBridgeBase`
|
|
17
|
+
use this helper so low-level and framework adapters share the same pathname
|
|
18
|
+
sanitization, route matching, and query extraction behavior.
|
|
19
|
+
|
|
20
|
+
## Parameters
|
|
21
|
+
|
|
22
|
+
| Parameter | Type |
|
|
23
|
+
| --------- | --------------------------------------------------------------------------- |
|
|
24
|
+
| `options` | [`BuildPlayRouteEventOptions`](../interfaces/BuildPlayRouteEventOptions.md) |
|
|
25
|
+
|
|
26
|
+
## Returns
|
|
27
|
+
|
|
28
|
+
\| \{
|
|
29
|
+
`event`: [`PlayRouteEvent`](../interfaces/PlayRouteEvent.md);
|
|
30
|
+
`pathname`: `string`;
|
|
31
|
+
\}
|
|
32
|
+
\| `null`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
[
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-router](../README.md) / buildRouteTree
|
|
2
2
|
|
|
3
3
|
# Function: buildRouteTree()
|
|
4
4
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function buildRouteTree(routes): RouteTree;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [build-tree.ts:
|
|
9
|
+
Defined in: [build-tree.ts:21](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-router/src/build-tree.ts#L21)
|
|
10
10
|
|
|
11
11
|
Build hierarchical route tree from flat route list
|
|
12
12
|
|
|
@@ -14,6 +14,12 @@ Constructs nested tree respecting parent-child state relationships.
|
|
|
14
14
|
Absolute routes become top-level, relative routes nest under parents.
|
|
15
15
|
Creates bidirectional maps for state ID ↔ path lookup.
|
|
16
16
|
|
|
17
|
+
Duplicate detection runs here — after relative routes are resolved against
|
|
18
|
+
their parent's full path — so two relative routes with the same raw string
|
|
19
|
+
under different parents are valid, while distinct raw strings that resolve to
|
|
20
|
+
the same full path (which would silently overwrite each other in `byPath`)
|
|
21
|
+
are rejected.
|
|
22
|
+
|
|
17
23
|
## Parameters
|
|
18
24
|
|
|
19
25
|
| Parameter | Type | Description |
|
|
@@ -25,3 +31,7 @@ Creates bidirectional maps for state ID ↔ path lookup.
|
|
|
25
31
|
[`RouteTree`](../interfaces/RouteTree.md)
|
|
26
32
|
|
|
27
33
|
RouteTree with root, byStateId map, and byPath map
|
|
34
|
+
|
|
35
|
+
## Throws
|
|
36
|
+
|
|
37
|
+
If two states resolve to the same full path
|
|
@@ -1,53 +1,39 @@
|
|
|
1
|
-
[
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-router](../README.md) / createRouteMap
|
|
2
2
|
|
|
3
3
|
# Function: createRouteMap()
|
|
4
4
|
|
|
5
5
|
```ts
|
|
6
|
-
function createRouteMap(
|
|
6
|
+
function createRouteMap(machine, options?): RouteMap;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [create-route-map.ts:
|
|
9
|
+
Defined in: [create-route-map.ts:45](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-router/src/create-route-map.ts#L45)
|
|
10
10
|
|
|
11
|
-
Create a RouteMap from
|
|
11
|
+
Create a `RouteMap` from an XState state machine.
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Extracts all routable states (those with `meta.route`) and builds a bidirectional
|
|
14
|
+
path ↔ stateId lookup structure. The returned map is used by `RouterBridgeBase`
|
|
15
|
+
subclasses to translate browser URL changes into `play.route` actor events and
|
|
16
|
+
vice-versa.
|
|
14
17
|
|
|
15
|
-
|
|
16
|
-
- O(1) lookups for exact matches via Map
|
|
17
|
-
- O(k) bucket-indexed pattern matching with URLPattern, where k = routes in the
|
|
18
|
-
first-segment bucket (typically << total routes)
|
|
19
|
-
- Returns formatted state IDs (with # prefix)
|
|
20
|
-
- Extracts params from matched patterns
|
|
18
|
+
## Parameters
|
|
21
19
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
| Parameter | Type | Description |
|
|
21
|
+
| ---------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
|
|
22
|
+
| `machine` | [`AnyStateMachine`](https://www.jsdocs.io/package/xstate#AnyStateMachine) | XState v5 state machine with `meta.route` annotations on states. |
|
|
23
|
+
| `options?` | [`RouteMapOptions`](../interfaces/RouteMapOptions.md) | Optional configuration. Pass `{ cacheSize }` to override the default LRU cache size for parameterized path lookups. |
|
|
25
24
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
## Returns
|
|
26
|
+
|
|
27
|
+
[`RouteMap`](../classes/RouteMap.md)
|
|
29
28
|
|
|
30
|
-
|
|
31
|
-
`console.warn` is emitted. Static (exact) routes are unaffected.
|
|
29
|
+
A `RouteMap` for passing to any `RouterBridgeBase`-based adapter.
|
|
32
30
|
|
|
33
|
-
|
|
31
|
+
## Example
|
|
34
32
|
|
|
35
33
|
```typescript
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
import { createRouteMap } from "@xmachines/play-router";
|
|
35
|
+
import { connectRouter } from "@xmachines/play-dom-router";
|
|
38
36
|
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
actor.send({ type: "play.route", to, params });
|
|
42
|
-
}
|
|
37
|
+
const routeMap = createRouteMap(myMachine);
|
|
38
|
+
const disconnect = connectRouter({ actor, router, routeMap });
|
|
43
39
|
```
|
|
44
|
-
|
|
45
|
-
## Parameters
|
|
46
|
-
|
|
47
|
-
| Parameter | Type |
|
|
48
|
-
| ----------- | ----------------------------------------- |
|
|
49
|
-
| `routeTree` | [`RouteTree`](../interfaces/RouteTree.md) |
|
|
50
|
-
|
|
51
|
-
## Returns
|
|
52
|
-
|
|
53
|
-
[`RouteMap`](../interfaces/RouteMap.md)
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-router](../README.md) / createRouteMapFromTree
|
|
2
|
+
|
|
3
|
+
# Function: createRouteMapFromTree()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function createRouteMapFromTree(routeTree, options?): RouteMap;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [create-route-map-from-tree.ts:33](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-router/src/create-route-map-from-tree.ts#L33)
|
|
10
|
+
|
|
11
|
+
Create a `RouteMap` from a `RouteTree` node structure.
|
|
12
|
+
|
|
13
|
+
Used by framework-router adapters that pass a
|
|
14
|
+
`RouteTree` produced by `extractMachineRoutes()` rather than calling
|
|
15
|
+
`createRouteMap()` directly.
|
|
16
|
+
|
|
17
|
+
Traverses all nodes collecting `{ stateId: node.id, path: node.fullPath }` pairs.
|
|
18
|
+
`node.fullPath` is always the absolute resolved path (e.g. `"/dashboard/overview"`),
|
|
19
|
+
which is what `RouteMap` needs for browser URL matching. This matches the
|
|
20
|
+
behaviour of `createRouteMap(machine)`, which also uses `node.fullPath`.
|
|
21
|
+
|
|
22
|
+
## Parameters
|
|
23
|
+
|
|
24
|
+
| Parameter | Type | Description |
|
|
25
|
+
| ----------- | ----------------------------------------------------- | ----------------------------------------------------------------------------- |
|
|
26
|
+
| `routeTree` | [`RouteTree`](../interfaces/RouteTree.md) | A `RouteTree` as returned by `extractMachineRoutes()`. |
|
|
27
|
+
| `options?` | [`RouteMapOptions`](../interfaces/RouteMapOptions.md) | Optional configuration (e.g. `{ cacheSize }` to override the LRU cache size). |
|
|
28
|
+
|
|
29
|
+
## Returns
|
|
30
|
+
|
|
31
|
+
[`RouteMap`](../classes/RouteMap.md)
|
|
32
|
+
|
|
33
|
+
A `RouteMap` for use with any `RouterBridgeBase`-based adapter.
|
|
34
|
+
|
|
35
|
+
## Example
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
// Preferred — single call for XState machines:
|
|
39
|
+
import { createRouteMap } from "@xmachines/play-router";
|
|
40
|
+
const routeMap = createRouteMap(machine); // takes AnyStateMachine
|
|
41
|
+
|
|
42
|
+
// Two-step form used by framework adapters that work with route trees:
|
|
43
|
+
import { extractMachineRoutes, createRouteMapFromTree } from "@xmachines/play-router";
|
|
44
|
+
const routeTree = extractMachineRoutes(machine);
|
|
45
|
+
const routeMap = createRouteMapFromTree(routeTree); // uses node.fullPath (absolute)
|
|
46
|
+
```
|