@xmachines/docs 2.0.0 → 2.1.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 +11 -13
- package/api/@xmachines/play/README.md +58 -63
- package/api/@xmachines/play/classes/NonNullableError.md +7 -7
- package/api/@xmachines/play/classes/PlayError.md +25 -27
- package/api/@xmachines/play/functions/assertNonNullable.md +17 -17
- package/api/@xmachines/play/type-aliases/PlayEvent.md +26 -25
- package/api/@xmachines/play-actor/README.md +72 -63
- package/api/@xmachines/play-actor/classes/AbstractActor.md +39 -39
- package/api/@xmachines/play-actor/functions/attachRenderErrorHandler.md +19 -18
- package/api/@xmachines/play-actor/functions/composePlayState.md +9 -8
- package/api/@xmachines/play-actor/functions/createViewStoreLifecycle.md +5 -5
- package/api/@xmachines/play-actor/functions/guardContextWrites.md +27 -25
- package/api/@xmachines/play-actor/functions/refreshContextSubtree.md +12 -11
- package/api/@xmachines/play-actor/functions/reuseComposedState.md +23 -22
- package/api/@xmachines/play-actor/functions/shallowEqualExcept.md +6 -5
- package/api/@xmachines/play-actor/functions/toAtomState.md +16 -14
- package/api/@xmachines/play-actor/functions/typedSpec.md +12 -11
- package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +17 -15
- package/api/@xmachines/play-actor/interfaces/BaseViewContextValue.md +15 -14
- package/api/@xmachines/play-actor/interfaces/PlaySpec.md +13 -13
- package/api/@xmachines/play-actor/interfaces/ResolveViewStoreOptions.md +4 -4
- package/api/@xmachines/play-actor/interfaces/Routable.md +4 -4
- package/api/@xmachines/play-actor/interfaces/ViewStoreLifecycle.md +11 -11
- package/api/@xmachines/play-actor/interfaces/ViewStoreResolution.md +7 -7
- package/api/@xmachines/play-actor/interfaces/Viewable.md +9 -9
- package/api/@xmachines/play-actor/variables/CONTEXT_STATE_KEY.md +5 -5
- package/api/@xmachines/play-dom/README.md +119 -85
- package/api/@xmachines/play-dom/classes/PlayRenderer.md +34 -32
- package/api/@xmachines/play-dom/functions/createPlayUI.md +10 -10
- package/api/@xmachines/play-dom/functions/createRenderer.md +21 -17
- package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +8 -8
- package/api/@xmachines/play-dom/interfaces/MountOptions.md +9 -9
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +9 -9
- package/api/@xmachines/play-dom/type-aliases/MountFn.md +5 -5
- package/api/@xmachines/play-dom-router/README.md +66 -49
- package/api/@xmachines/play-dom-router/classes/DomRouterBridge.md +116 -0
- package/api/@xmachines/play-dom-router/functions/connectRouter.md +4 -3
- package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +16 -14
- package/api/@xmachines/play-dom-router/functions/createRouteMap.md +12 -11
- package/api/@xmachines/play-dom-router/functions/createRouter.md +14 -14
- package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +25 -26
- package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +19 -18
- package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +7 -7
- package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +39 -33
- package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +18 -17
- package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +9 -9
- package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +39 -38
- package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +5 -5
- package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +11 -10
- package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +27 -24
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +7 -7
- package/api/@xmachines/play-react/README.md +63 -54
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +14 -13
- package/api/@xmachines/play-react/functions/useActor.md +1 -1
- package/api/@xmachines/play-react/functions/usePlayView.md +4 -4
- package/api/@xmachines/play-react/functions/useSignalEffect.md +39 -39
- package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +11 -11
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +7 -7
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +4 -4
- package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +14 -14
- package/api/@xmachines/play-react/interfaces/ViewContextValue.md +8 -8
- package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +2 -2
- package/api/@xmachines/play-react/type-aliases/PlayRendererProps.md +13 -0
- package/api/@xmachines/play-react/variables/ActorProvider.md +9 -8
- package/api/@xmachines/play-react/variables/PlayRenderer.md +5 -4
- package/api/@xmachines/play-react/variables/PlayUIProvider.md +6 -6
- package/api/@xmachines/play-react-router/README.md +37 -28
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +22 -19
- package/api/@xmachines/play-react-router/classes/RouteMap.md +50 -48
- package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +16 -14
- package/api/@xmachines/play-react-router/functions/createRouteMap.md +12 -11
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +18 -18
- package/api/@xmachines/play-react-router/interfaces/PlayActor.md +22 -20
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +39 -33
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderBaseProps.md +12 -12
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +11 -11
- package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +5 -5
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +11 -10
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +27 -24
- package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +2 -2
- package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +7 -6
- package/api/@xmachines/play-router/README.md +94 -82
- package/api/@xmachines/play-router/classes/RouteMap.md +50 -48
- package/api/@xmachines/play-router/classes/RouterBridgeBase.md +29 -23
- package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +6 -5
- package/api/@xmachines/play-router/functions/buildRouteTree.md +16 -15
- package/api/@xmachines/play-router/functions/createRouteMap.md +12 -11
- package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +18 -18
- package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +18 -17
- package/api/@xmachines/play-router/functions/extractMachineRoutes.md +11 -10
- package/api/@xmachines/play-router/functions/extractQuery.md +3 -3
- package/api/@xmachines/play-router/functions/extractRouteParams.md +22 -19
- package/api/@xmachines/play-router/functions/findRouteById.md +10 -9
- package/api/@xmachines/play-router/functions/findRouteByPath.md +14 -12
- package/api/@xmachines/play-router/functions/getNavigableRoutes.md +9 -9
- package/api/@xmachines/play-router/functions/getRoutableRoutes.md +9 -9
- package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +16 -15
- package/api/@xmachines/play-router/functions/isRouteReachable.md +12 -11
- package/api/@xmachines/play-router/functions/machineToGraph.md +1 -1
- package/api/@xmachines/play-router/functions/routeExists.md +8 -8
- package/api/@xmachines/play-router/functions/sanitizePathname.md +15 -13
- package/api/@xmachines/play-router/functions/validateRouteFormat.md +10 -10
- package/api/@xmachines/play-router/functions/validateStateExists.md +9 -9
- package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +4 -4
- package/api/@xmachines/play-router/interfaces/LocationLike.md +9 -9
- package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +7 -7
- package/api/@xmachines/play-router/interfaces/MachineNodeData.md +9 -9
- package/api/@xmachines/play-router/interfaces/PlayActor.md +22 -20
- package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +39 -33
- package/api/@xmachines/play-router/interfaces/ResolvedRoutePath.md +7 -7
- package/api/@xmachines/play-router/interfaces/RoutableActor.md +18 -17
- package/api/@xmachines/play-router/interfaces/RouteInfo.md +11 -11
- package/api/@xmachines/play-router/interfaces/RouteMapOptions.md +5 -5
- package/api/@xmachines/play-router/interfaces/RouteMapping.md +11 -10
- package/api/@xmachines/play-router/interfaces/RouteMatch.md +3 -3
- package/api/@xmachines/play-router/interfaces/RouteNode.md +13 -13
- package/api/@xmachines/play-router/interfaces/RouteObject.md +6 -6
- package/api/@xmachines/play-router/interfaces/RouteTree.md +11 -11
- package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +13 -13
- package/api/@xmachines/play-router/interfaces/RouterBridge.md +27 -24
- package/api/@xmachines/play-router/interfaces/WindowLike.md +10 -10
- package/api/@xmachines/play-router/type-aliases/BaseRouteMapping.md +13 -0
- package/api/@xmachines/play-router/type-aliases/MachineGraph.md +4 -3
- package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +2 -2
- package/api/@xmachines/play-signals/README.md +38 -36
- package/api/@xmachines/play-signals/functions/watchSignal.md +15 -15
- package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +6 -6
- package/api/@xmachines/play-signals/interfaces/SignalComputed.md +10 -10
- package/api/@xmachines/play-signals/interfaces/SignalOptions.md +6 -6
- package/api/@xmachines/play-signals/interfaces/SignalState.md +13 -13
- package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +18 -18
- package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +6 -5
- package/api/@xmachines/play-solid/README.md +46 -42
- package/api/@xmachines/play-solid/functions/useActor.md +1 -1
- package/api/@xmachines/play-solid/functions/usePlayView.md +3 -3
- package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +13 -13
- package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +14 -14
- package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +9 -9
- package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +2 -2
- package/api/@xmachines/play-solid/variables/ActorContext.md +5 -4
- package/api/@xmachines/play-solid/variables/ActorProvider.md +8 -7
- package/api/@xmachines/play-solid/variables/PlayRenderer.md +6 -4
- package/api/@xmachines/play-solid/variables/PlayUIProvider.md +7 -7
- package/api/@xmachines/play-solid-router/README.md +34 -29
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +50 -48
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +43 -34
- package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +15 -13
- package/api/@xmachines/play-solid-router/functions/createRouteMap.md +12 -11
- package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +39 -39
- package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +22 -20
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +39 -33
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderBaseProps.md +10 -10
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +11 -11
- package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +5 -5
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +11 -10
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +27 -24
- package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +5 -5
- package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +2 -2
- package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +11 -11
- package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +9 -8
- package/api/@xmachines/play-svelte/README.md +40 -31
- package/api/@xmachines/play-svelte/functions/defineRegistry.md +9 -8
- package/api/@xmachines/play-svelte/functions/getActorContext.md +5 -4
- package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +3 -3
- package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
- package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +17 -15
- package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +9 -9
- package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +20 -18
- package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +12 -11
- package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +2 -2
- package/api/@xmachines/play-svelte-spa-router/README.md +25 -25
- package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +50 -48
- package/api/@xmachines/play-svelte-spa-router/classes/SvelteSpaRouterBridge.md +133 -0
- package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +12 -11
- package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +7 -7
- package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +39 -33
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +5 -5
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +11 -10
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +27 -24
- package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +10 -10
- package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-sveltekit-router/README.md +38 -34
- package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +50 -48
- package/api/@xmachines/play-sveltekit-router/classes/SvelteKitRouterBridge.md +132 -0
- package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +3 -3
- package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +12 -11
- package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +6 -6
- package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +9 -9
- package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +39 -33
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +5 -5
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +11 -10
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +27 -24
- package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/README.md +66 -48
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +50 -48
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +43 -38
- package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +16 -14
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +12 -11
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +18 -18
- package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +11 -10
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayActor.md +22 -20
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +39 -33
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderBaseProps.md +12 -12
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +11 -11
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +5 -5
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +11 -10
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +16 -11
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +27 -24
- package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +2 -2
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +15 -13
- package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +9 -8
- package/api/@xmachines/play-tanstack-router/README.md +37 -17
- package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +43 -38
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +9 -9
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +15 -13
- package/api/@xmachines/play-tanstack-solid-router/README.md +71 -45
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +50 -48
- package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +38 -30
- package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +15 -13
- package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +12 -11
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayActor.md +22 -20
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +39 -33
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderBaseProps.md +11 -11
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +9 -9
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +11 -10
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +27 -24
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +2 -2
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +2 -2
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +15 -13
- package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +7 -7
- package/api/@xmachines/play-vue/README.md +37 -35
- package/api/@xmachines/play-vue/functions/defineRegistry.md +10 -9
- package/api/@xmachines/play-vue/functions/useActor.md +1 -1
- package/api/@xmachines/play-vue/functions/usePlayView.md +28 -0
- package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +10 -9
- package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +13 -12
- package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +10 -9
- package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +6 -2
- package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +2 -2
- package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
- package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-vue/variables/getPlayViewContext.md +34 -0
- package/api/@xmachines/play-vue-router/README.md +65 -56
- package/api/@xmachines/play-vue-router/classes/RouteMap.md +50 -48
- package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +26 -19
- package/api/@xmachines/play-vue-router/functions/createRouteMap.md +12 -11
- package/api/@xmachines/play-vue-router/interfaces/PlayActor.md +22 -20
- package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +39 -33
- package/api/@xmachines/play-vue-router/interfaces/RouteMapOptions.md +5 -5
- package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +11 -10
- package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +27 -24
- package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +2 -2
- package/api/@xmachines/play-vue-router/type-aliases/VueRouteMap.md +13 -0
- package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +5 -5
- package/api/@xmachines/play-vue-router/variables/VueRouteMap.md +13 -0
- package/api/@xmachines/play-xstate/README.md +72 -70
- package/api/@xmachines/play-xstate/classes/PlayerActor.md +123 -112
- package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +19 -16
- package/api/@xmachines/play-xstate/functions/composeGuards.md +25 -23
- package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +20 -20
- package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +15 -15
- package/api/@xmachines/play-xstate/functions/definePlayer.md +19 -19
- package/api/@xmachines/play-xstate/functions/deriveRoute.md +26 -25
- package/api/@xmachines/play-xstate/functions/eventMatches.md +8 -8
- package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +16 -13
- package/api/@xmachines/play-xstate/functions/hasContext.md +8 -8
- package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +10 -10
- package/api/@xmachines/play-xstate/functions/negateGuard.md +19 -18
- package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +6 -6
- package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +7 -7
- package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +10 -10
- package/api/@xmachines/play-xstate/interfaces/RouteContext.md +15 -14
- package/api/@xmachines/play-xstate/interfaces/RouteObject.md +2 -2
- package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +5 -5
- package/api/@xmachines/play-xstate/type-aliases/Guard.md +9 -9
- package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +4 -3
- package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +7 -7
- package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +12 -12
- package/api/@xmachines/play-xstate/type-aliases/RouteMetadata.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +15 -14
- package/api/@xmachines/shared/README.md +11 -13
- package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +2 -2
- package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
- package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +1 -1
- package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +4 -4
- package/contributing/development.md +28 -0
- package/guides/inspector.md +1 -1
- package/package.json +1 -1
- package/api/@xmachines/play-vue/functions/getPlayViewContext.md +0 -28
|
@@ -2,11 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
# @xmachines/play-vue-router
|
|
4
4
|
|
|
5
|
-
Vue Router 4.x adapter for XMachines Universal Player Architecture.
|
|
5
|
+
Vue Router 4.x adapter for the XMachines Universal Player Architecture. It keeps Vue Router and an XMachines state machine in step, in both directions, with the reactive primitives of Vue.
|
|
6
6
|
|
|
7
|
-
[](https://opensource.org/licenses/MIT) [.
|
|
7
|
+
[](https://opensource.org/licenses/MIT) [](https://www.npmjs.com/package/@xmachines/play-vue-router)
|
|
10
8
|
|
|
11
9
|
## Installation
|
|
12
10
|
|
|
@@ -25,20 +23,22 @@ pnpm add @xmachines/play-vue-router
|
|
|
25
23
|
|
|
26
24
|
### VueRouterBridge — low-level adapter
|
|
27
25
|
|
|
28
|
-
`VueRouterBridge`
|
|
26
|
+
`VueRouterBridge` connects the `currentRoute` ref of Vue Router to the `currentRoute` signal of an XMachines actor. Both directions are active: the actor drives the URL, and the URL drives the actor.
|
|
29
27
|
|
|
30
28
|
```typescript
|
|
31
29
|
import { createRouter, createWebHistory } from "vue-router";
|
|
30
|
+
import { h } from "vue";
|
|
32
31
|
import { VueRouterBridge, RouteMap } from "@xmachines/play-vue-router";
|
|
32
|
+
import { definePlayer } from "@xmachines/play-xstate";
|
|
33
|
+
import { machine } from "./machine.js"; // your routable machine (states carry meta.route)
|
|
34
|
+
|
|
35
|
+
// 1. Define routes — a single catch-all with a stub host component;
|
|
36
|
+
// PlayRenderer picks the actual view from actor state
|
|
37
|
+
const RouteHost = { render: () => h("div") };
|
|
33
38
|
|
|
34
|
-
// 1. Define routes
|
|
35
39
|
const router = createRouter({
|
|
36
40
|
history: createWebHistory(),
|
|
37
|
-
routes: [
|
|
38
|
-
{ path: "/", name: "home", component: HomePage },
|
|
39
|
-
{ path: "/profile/:userId", name: "profile", component: ProfilePage },
|
|
40
|
-
{ path: "/settings/:section?", name: "settings", component: SettingsPage },
|
|
41
|
-
],
|
|
41
|
+
routes: [{ path: "/:pathMatch(.*)*", name: "xmachines-play", component: RouteHost }],
|
|
42
42
|
});
|
|
43
43
|
|
|
44
44
|
// 2. Create a bidirectional state ID ↔ path mapping
|
|
@@ -48,7 +48,10 @@ const routeMap = new RouteMap([
|
|
|
48
48
|
{ stateId: "settings", path: "/settings/:section?" },
|
|
49
49
|
]);
|
|
50
50
|
|
|
51
|
-
// 3. Start the bridge after the router is ready
|
|
51
|
+
// 3. Start the actor, then the bridge after the router is ready
|
|
52
|
+
const actor = definePlayer({ machine })();
|
|
53
|
+
actor.start();
|
|
54
|
+
|
|
52
55
|
await router.isReady();
|
|
53
56
|
const bridge = new VueRouterBridge(router, actor, routeMap);
|
|
54
57
|
bridge.connect();
|
|
@@ -59,13 +62,18 @@ bridge.dispose();
|
|
|
59
62
|
|
|
60
63
|
### PlayRouterProvider — Vue component wrapper
|
|
61
64
|
|
|
62
|
-
`PlayRouterProvider`
|
|
65
|
+
`PlayRouterProvider` manages the bridge lifecycle for you. It calls `bridge.connect()` on mount, after `router.isReady()`. It calls `bridge.disconnect()` on unmount.
|
|
63
66
|
|
|
64
67
|
```vue
|
|
65
68
|
<script setup lang="ts">
|
|
66
|
-
import { markRaw } from "vue";
|
|
69
|
+
import { h, markRaw } from "vue";
|
|
67
70
|
import { useRouter } from "vue-router";
|
|
68
71
|
import { PlayRouterProvider, RouteMap } from "@xmachines/play-vue-router";
|
|
72
|
+
import { definePlayer } from "@xmachines/play-xstate";
|
|
73
|
+
import { machine } from "./machine.js"; // your routable machine (states carry meta.route)
|
|
74
|
+
// AppShell: your root component — a real app renders PlayUIProvider + PlayRenderer
|
|
75
|
+
// from @xmachines/play-vue (see the workspace-only @xmachines/play-vue-demo Shell)
|
|
76
|
+
import AppShell from "./AppShell.vue";
|
|
69
77
|
|
|
70
78
|
const router = useRouter();
|
|
71
79
|
const routeMap = new RouteMap([
|
|
@@ -75,7 +83,8 @@ const routeMap = new RouteMap([
|
|
|
75
83
|
|
|
76
84
|
// markRaw prevents Vue from wrapping the actor in a reactive proxy,
|
|
77
85
|
// which would break TC39 Signal receivers.
|
|
78
|
-
const actor = markRaw(
|
|
86
|
+
const actor = markRaw(definePlayer({ machine })());
|
|
87
|
+
actor.start();
|
|
79
88
|
</script>
|
|
80
89
|
|
|
81
90
|
<template>
|
|
@@ -94,6 +103,7 @@ const actor = markRaw(createActor());
|
|
|
94
103
|
<script setup>
|
|
95
104
|
import { inject } from "vue";
|
|
96
105
|
|
|
106
|
+
// Provided at app setup with the matching call: app.provide("actor", actor)
|
|
97
107
|
const actor = inject("actor");
|
|
98
108
|
|
|
99
109
|
function viewProfile(userId) {
|
|
@@ -110,7 +120,7 @@ function viewProfile(userId) {
|
|
|
110
120
|
|
|
111
121
|
### `VueRouterBridge`
|
|
112
122
|
|
|
113
|
-
|
|
123
|
+
This class implements the `RouterBridge` protocol. It watches the `currentRoute` shallowRef of Vue Router and the `currentRoute` TC39 Signal of the actor.
|
|
114
124
|
|
|
115
125
|
```typescript
|
|
116
126
|
class VueRouterBridge {
|
|
@@ -123,21 +133,21 @@ class VueRouterBridge {
|
|
|
123
133
|
|
|
124
134
|
**Constructor parameters:**
|
|
125
135
|
|
|
126
|
-
| Parameter | Type | Description
|
|
127
|
-
| ----------- | --------------- |
|
|
128
|
-
| `vueRouter` | `Router` | Vue Router instance from `createRouter()`
|
|
129
|
-
| `actor` | `RoutableActor` | XMachines actor with a `currentRoute` signal
|
|
130
|
-
| `routeMap` | `RouteMap` |
|
|
136
|
+
| Parameter | Type | Description |
|
|
137
|
+
| ----------- | --------------- | --------------------------------------------------------- |
|
|
138
|
+
| `vueRouter` | `Router` | The Vue Router instance from `createRouter()` |
|
|
139
|
+
| `actor` | `RoutableActor` | The XMachines actor with a `currentRoute` signal |
|
|
140
|
+
| `routeMap` | `RouteMap` | The bidirectional map between the state IDs and the paths |
|
|
131
141
|
|
|
132
142
|
**Methods:**
|
|
133
143
|
|
|
134
|
-
- `connect()` —
|
|
135
|
-
- `disconnect()` —
|
|
136
|
-
- `dispose()` —
|
|
144
|
+
- `connect()` — starts the work in both directions. It first sets the actor state from the current path of the router, which supports a cold load and a direct URL. It uses `watch(router.currentRoute, …)` from `@vue/reactivity`, not from `@vue/runtime-core`. Therefore a watcher error goes to the caller, and the global error handler of Vue does not hide it.
|
|
145
|
+
- `disconnect()` — stops every watcher and stops the Vue effect scope.
|
|
146
|
+
- `dispose()` — the alias of `disconnect()`. Use it in `onUnmounted(() => bridge.dispose())`.
|
|
137
147
|
|
|
138
148
|
### `PlayRouterProvider`
|
|
139
149
|
|
|
140
|
-
Vue component
|
|
150
|
+
This Vue component wraps `VueRouterBridge` in the component lifecycle hooks.
|
|
141
151
|
|
|
142
152
|
```typescript
|
|
143
153
|
import type { PlayActor } from "@xmachines/play-vue-router";
|
|
@@ -156,14 +166,14 @@ defineComponent({
|
|
|
156
166
|
});
|
|
157
167
|
```
|
|
158
168
|
|
|
159
|
-
The `actor` prop requires `PlayActor` (`AbstractActor & Routable & Viewable`)
|
|
169
|
+
The `actor` prop requires a `PlayActor` (`AbstractActor & Routable & Viewable`), because the provider renders the current view spec and also keeps the routes in step. The `renderer` callback receives the same concrete actor type.
|
|
160
170
|
|
|
161
171
|
### `RouteMap` / `VueRouteMap`
|
|
162
172
|
|
|
163
|
-
`RouteMap`
|
|
173
|
+
`RouteMap` comes from `@xmachines/play-router`. It is the bidirectional map between the state IDs and the paths, and the bridge uses it. `VueRouteMap` is a deprecated alias of `RouteMap`. The two names are identical, and the next major version removes the alias.
|
|
164
174
|
|
|
165
175
|
```typescript
|
|
166
|
-
import { RouteMap
|
|
176
|
+
import { RouteMap } from "@xmachines/play-vue-router";
|
|
167
177
|
|
|
168
178
|
// Explicit construction
|
|
169
179
|
const routeMap = new RouteMap([
|
|
@@ -171,15 +181,18 @@ const routeMap = new RouteMap([
|
|
|
171
181
|
{ stateId: "profile", path: "/profile/:userId" },
|
|
172
182
|
{ stateId: "settings", path: "/settings/:section?" },
|
|
173
183
|
]);
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
```typescript
|
|
187
|
+
import { createRouteMap } from "@xmachines/play-vue-router";
|
|
174
188
|
|
|
175
189
|
// Or derive from an XState machine
|
|
176
|
-
|
|
177
|
-
const routeMap = createRouteMap(machine);
|
|
190
|
+
const routeMap = createRouteMap(machine); // machine: your routable machine (states carry meta.route)
|
|
178
191
|
```
|
|
179
192
|
|
|
180
193
|
### Exported error classes (`@xmachines/play-vue-router/errors`)
|
|
181
194
|
|
|
182
|
-
|
|
195
|
+
Every runtime error extends `PlayError` from `@xmachines/play`. The `./errors` subpath exports them:
|
|
183
196
|
|
|
184
197
|
```typescript
|
|
185
198
|
import {
|
|
@@ -189,13 +202,13 @@ import {
|
|
|
189
202
|
} from "@xmachines/play-vue-router/errors";
|
|
190
203
|
```
|
|
191
204
|
|
|
192
|
-
| Class | Error code | When thrown
|
|
193
|
-
| -------------------------- | ----------------------------------- |
|
|
194
|
-
| `VueRouterCorrectionError` | `PLAY_VUE_ROUTER_CORRECTION_FAILED` |
|
|
195
|
-
| `VueRouterNavigationError` | `PLAY_VUE_ROUTER_NAV_FAILED` | `router.push()`
|
|
196
|
-
| `VueRouterSendError` | `PLAY_VUE_ROUTER_SEND_FAILED` | Vue Router watcher callback
|
|
205
|
+
| Class | Error code | When thrown |
|
|
206
|
+
| -------------------------- | ----------------------------------- | ------------------------------------------------------------------------------------------------ |
|
|
207
|
+
| `VueRouterCorrectionError` | `PLAY_VUE_ROUTER_CORRECTION_FAILED` | Deprecated. No code throws it. A correction reports `VueRouterNavigationError` |
|
|
208
|
+
| `VueRouterNavigationError` | `PLAY_VUE_ROUTER_NAV_FAILED` | `router.push()` refused the navigation: a navigation guard stopped it, or a redirect replaced it |
|
|
209
|
+
| `VueRouterSendError` | `PLAY_VUE_ROUTER_SEND_FAILED` | The Vue Router watcher callback cannot send `play.route` to the actor |
|
|
197
210
|
|
|
198
|
-
Each class
|
|
211
|
+
Each class holds the original Vue Router error in its `cause` property.
|
|
199
212
|
|
|
200
213
|
### Exported types
|
|
201
214
|
|
|
@@ -213,7 +226,7 @@ export type { PlayActor } from "@xmachines/play-vue-router";
|
|
|
213
226
|
// RoutableActor is also exported as a deprecated alias for PlayActor
|
|
214
227
|
```
|
|
215
228
|
|
|
216
|
-
`PlayActor` is `AbstractActor<AnyActorLogic> & Routable & Viewable`
|
|
229
|
+
`PlayActor` is `AbstractActor<AnyActorLogic> & Routable & Viewable`. `PlayRouterProvider` requires this shape, because it renders the current view spec and also keeps the routes in step. Use `RoutableActor` from `@xmachines/play-router` when you need the routing alone, for example when you create a `VueRouterBridge` yourself.
|
|
217
230
|
|
|
218
231
|
## Architecture
|
|
219
232
|
|
|
@@ -221,27 +234,27 @@ export type { PlayActor } from "@xmachines/play-vue-router";
|
|
|
221
234
|
|
|
222
235
|
**Router → Actor** (`watch(router.currentRoute, …)`):
|
|
223
236
|
|
|
224
|
-
1.
|
|
225
|
-
2. Vue
|
|
237
|
+
1. The user navigates: a link click, the browser BACK button, or a `router.push` call in the code.
|
|
238
|
+
2. Vue puts a new object in the `currentRoute` shallowRef.
|
|
226
239
|
3. `watch` from `@vue/reactivity` fires synchronously (`scheduler: (job) => job()`).
|
|
227
|
-
4.
|
|
228
|
-
5.
|
|
240
|
+
4. The bridge cleans the path, then finds the state ID in `routeMap`.
|
|
241
|
+
5. The bridge sends `{ type: "play.route", to: "#stateId", params, query }` to the actor.
|
|
229
242
|
|
|
230
243
|
**Actor → Router** (TC39 Signal watcher):
|
|
231
244
|
|
|
232
|
-
1.
|
|
233
|
-
2.
|
|
234
|
-
3.
|
|
235
|
-
4.
|
|
236
|
-
5.
|
|
245
|
+
1. The actor makes a transition, and the `actor.currentRoute` signal gets a new state ID or a new path.
|
|
246
|
+
2. The signal watcher fires in a microtask.
|
|
247
|
+
3. The bridge resolves the navigation path with `resolveNavigationPath`.
|
|
248
|
+
4. The bridge skips a parameterized pattern that has no concrete params, and `resolveNavigationPath` returns `null`.
|
|
249
|
+
5. The bridge calls `router.push(resolvedPath)`.
|
|
237
250
|
|
|
238
251
|
### Echo suppression
|
|
239
252
|
|
|
240
|
-
`lastSyncedPath`
|
|
253
|
+
The bridge sets `lastSyncedPath` before every `router.push()` call. The Vue watcher then fires with the same path, because the router repeats the push of the actor. The `sanitizedPath === lastSyncedPath` check stops the bridge before it sends an event.
|
|
241
254
|
|
|
242
255
|
### Vue effect scope
|
|
243
256
|
|
|
244
|
-
The `watch` watcher runs inside
|
|
257
|
+
The `watch` watcher runs inside its own `effectScope()`. `disconnect()` and `dispose()` call `scope.stop()`. This removes the watcher completely, and nothing stays in the global Vue effect scope.
|
|
245
258
|
|
|
246
259
|
## Testing
|
|
247
260
|
|
|
@@ -256,7 +269,7 @@ pnpm --filter @xmachines/play-vue-router run test:watch
|
|
|
256
269
|
pnpm --filter @xmachines/play-vue-router run test:coverage
|
|
257
270
|
```
|
|
258
271
|
|
|
259
|
-
|
|
272
|
+
The test files use Vitest with jsdom and `@vue/test-utils`. The integration tests (`test/integration.test.ts`) use a real Vue Router instance with an SFC fixture.
|
|
260
273
|
|
|
261
274
|
## Classes
|
|
262
275
|
|
|
@@ -274,17 +287,13 @@ Test files use Vitest with jsdom and `@vue/test-utils`. Integration tests (`test
|
|
|
274
287
|
## Type Aliases
|
|
275
288
|
|
|
276
289
|
- [~~RoutableActor~~](type-aliases/RoutableActor.md)
|
|
290
|
+
- [~~VueRouteMap~~](type-aliases/VueRouteMap.md)
|
|
277
291
|
|
|
278
292
|
## Variables
|
|
279
293
|
|
|
280
294
|
- [PlayRouterProvider](variables/PlayRouterProvider.md)
|
|
295
|
+
- [~~VueRouteMap~~](variables/VueRouteMap.md)
|
|
281
296
|
|
|
282
297
|
## Functions
|
|
283
298
|
|
|
284
299
|
- [createRouteMap](functions/createRouteMap.md)
|
|
285
|
-
|
|
286
|
-
## References
|
|
287
|
-
|
|
288
|
-
### VueRouteMap
|
|
289
|
-
|
|
290
|
-
Renames and re-exports [RouteMap](classes/RouteMap.md)
|
|
@@ -2,32 +2,33 @@
|
|
|
2
2
|
|
|
3
3
|
# Class: RouteMap
|
|
4
4
|
|
|
5
|
-
Defined in: [play-router/src/base-route-map.ts:
|
|
5
|
+
Defined in: [play-router/src/base-route-map.ts:105](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-router/src/base-route-map.ts#L105)
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
The shared base class of the route map for both directions.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
own and
|
|
9
|
+
Every framework adapter uses this class as its route map. An adapter adds no logic
|
|
10
|
+
of its own, and it inherits the complete public API from here.
|
|
11
11
|
|
|
12
|
-
**
|
|
12
|
+
**The strategy of a lookup:**
|
|
13
13
|
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
of routes
|
|
17
|
-
-
|
|
18
|
-
|
|
14
|
+
- A static path, without a `:param` → a `Map` lookup in O(1)
|
|
15
|
+
- A dynamic path → a scan of the bucket index in O(k), with `URLPattern`, where
|
|
16
|
+
`k` is the number of the routes with the same first path segment
|
|
17
|
+
- The class keeps each result of a first match in an LRU cache. The default size
|
|
18
|
+
is 500 entries, and the `cacheSize` constructor option changes it
|
|
19
19
|
|
|
20
|
-
**
|
|
20
|
+
**The syntax of a pattern** (`:param`, `:param?`, and `*`):
|
|
21
21
|
|
|
22
|
-
- `:param` —
|
|
23
|
-
- `:param?` — optional segment
|
|
24
|
-
- `*` — wildcard
|
|
22
|
+
- `:param` — a necessary segment. It matches exactly one segment without a `/`
|
|
23
|
+
- `:param?` — an optional segment. It matches zero segments or one segment without a `/`
|
|
24
|
+
- `*` — a wildcard. It matches each number of segments, as URLPattern defines
|
|
25
25
|
|
|
26
|
-
**
|
|
27
|
-
`"#stateId"` or `"stateId"
|
|
28
|
-
`getStateIdByPath` returns the stateId exactly as
|
|
29
|
-
`getPathByStateId` accepts both forms.
|
|
30
|
-
forms
|
|
26
|
+
**The forms of a stateId:** you can register a stateId, and you can look one up,
|
|
27
|
+
in the form `"#stateId"` or in the form `"stateId"`. `RouteMap` makes the
|
|
28
|
+
canonical form itself. `getStateIdByPath` returns the stateId exactly as you
|
|
29
|
+
registered it, and `getPathByStateId` accepts both forms. A registration of the
|
|
30
|
+
same stateId in both forms gives one entry, and the later registration wins for
|
|
31
|
+
the lookup in the other direction.
|
|
31
32
|
|
|
32
33
|
## Example
|
|
33
34
|
|
|
@@ -57,21 +58,22 @@ map.getPathByStateId("missing"); // null
|
|
|
57
58
|
new RouteMap(mappings, options?): RouteMap;
|
|
58
59
|
```
|
|
59
60
|
|
|
60
|
-
Defined in: [play-router/src/base-route-map.ts:
|
|
61
|
+
Defined in: [play-router/src/base-route-map.ts:133](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-router/src/base-route-map.ts#L133)
|
|
61
62
|
|
|
62
|
-
|
|
63
|
+
Builds a route map from an array of the mappings between a state ID and a path.
|
|
63
64
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
buckets
|
|
65
|
+
The constructor puts each static path, which holds no `:param`, into a `Map` for a
|
|
66
|
+
lookup in O(1). It compiles each parameterized path to a `URLPattern`, and it
|
|
67
|
+
groups the patterns into the buckets of the first segment. The selection of the
|
|
68
|
+
candidates is therefore efficient.
|
|
67
69
|
|
|
68
70
|
#### Parameters
|
|
69
71
|
|
|
70
|
-
| Parameter | Type | Description
|
|
71
|
-
| -------------------- | ------------------------------------------------- |
|
|
72
|
-
| `mappings` | [`RouteMapping`](../interfaces/RouteMapping.md)[] |
|
|
73
|
-
| `options` | \{ `cacheSize?`: `number`; \} |
|
|
74
|
-
| `options.cacheSize?` | `number` | -
|
|
72
|
+
| Parameter | Type | Description |
|
|
73
|
+
| -------------------- | ------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
74
|
+
| `mappings` | [`RouteMapping`](../interfaces/RouteMapping.md)[] | The array of the `{ stateId, path }` entries. The order gives the priority when more than one pattern can match the same path. |
|
|
75
|
+
| `options` | \{ `cacheSize?`: `number`; \} | The optional configuration. `options.cacheSize`: the maximum number of the resolved parameterized path lookups in the cache. The default is `500`. Raise it for an application with many different values in a parameterized URL, for example a page of a user profile with thousands of different IDs. After an eviction, the path goes to the bucket pattern scan in O(k) again, which is correct but slower. The smallest effective value is `1`, because QuickLRU requires it. |
|
|
76
|
+
| `options.cacheSize?` | `number` | - |
|
|
75
77
|
|
|
76
78
|
#### Returns
|
|
77
79
|
|
|
@@ -85,31 +87,31 @@ buckets for efficient candidate selection.
|
|
|
85
87
|
getPathByStateId(stateId): string | null;
|
|
86
88
|
```
|
|
87
89
|
|
|
88
|
-
Defined in: [play-router/src/base-route-map.ts:
|
|
90
|
+
Defined in: [play-router/src/base-route-map.ts:225](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-router/src/base-route-map.ts#L225)
|
|
89
91
|
|
|
90
|
-
|
|
92
|
+
Returns the path pattern of a state ID.
|
|
91
93
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
94
|
+
The method accepts the stateId in the form `"#stateId"` and in the form
|
|
95
|
+
`"stateId"`, and the form of the registration has no effect. The method makes the
|
|
96
|
+
canonical form itself. Therefore a consumer tries never both forms.
|
|
95
97
|
|
|
96
98
|
#### Parameters
|
|
97
99
|
|
|
98
|
-
| Parameter | Type | Description
|
|
99
|
-
| --------- | -------- |
|
|
100
|
-
| `stateId` | `string` |
|
|
100
|
+
| Parameter | Type | Description |
|
|
101
|
+
| --------- | -------- | --------------------------------------------------------------------------- |
|
|
102
|
+
| `stateId` | `string` | The state ID of the state machine, for example `"profile"` or `"#settings"` |
|
|
101
103
|
|
|
102
104
|
#### Returns
|
|
103
105
|
|
|
104
106
|
`string` \| `null`
|
|
105
107
|
|
|
106
|
-
The registered path pattern, or `null`
|
|
108
|
+
The registered path pattern, or `null` when the state ID is unknown
|
|
107
109
|
|
|
108
110
|
#### Example
|
|
109
111
|
|
|
110
112
|
```typescript
|
|
111
113
|
map.getPathByStateId("profile"); // "/profile/:userId"
|
|
112
|
-
map.getPathByStateId("#profile"); // "/profile/:userId"
|
|
114
|
+
map.getPathByStateId("#profile"); // "/profile/:userId" — the same entry
|
|
113
115
|
map.getPathByStateId("missing"); // null
|
|
114
116
|
```
|
|
115
117
|
|
|
@@ -121,25 +123,25 @@ map.getPathByStateId("missing"); // null
|
|
|
121
123
|
getStateIdByPath(path): string | null;
|
|
122
124
|
```
|
|
123
125
|
|
|
124
|
-
Defined in: [play-router/src/base-route-map.ts:
|
|
126
|
+
Defined in: [play-router/src/base-route-map.ts:185](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-router/src/base-route-map.ts#L185)
|
|
125
127
|
|
|
126
|
-
|
|
128
|
+
Resolves a URL path to its state ID.
|
|
127
129
|
|
|
128
|
-
|
|
129
|
-
lookup first, then
|
|
130
|
-
|
|
130
|
+
The method removes the query string and the hash fragment before the match. It
|
|
131
|
+
tries an exact lookup in O(1) first, then it uses the pattern match on the bucket
|
|
132
|
+
index. It keeps each result of a first pattern match in the cache.
|
|
131
133
|
|
|
132
134
|
#### Parameters
|
|
133
135
|
|
|
134
|
-
| Parameter | Type | Description
|
|
135
|
-
| --------- | -------- |
|
|
136
|
-
| `path` | `string` | URL pathname
|
|
136
|
+
| Parameter | Type | Description |
|
|
137
|
+
| --------- | -------- | -------------------------------------------------------------------------------------- |
|
|
138
|
+
| `path` | `string` | The URL pathname. It can hold a query and a hash, for example `"/profile/123?ref=nav"` |
|
|
137
139
|
|
|
138
140
|
#### Returns
|
|
139
141
|
|
|
140
142
|
`string` \| `null`
|
|
141
143
|
|
|
142
|
-
The
|
|
144
|
+
The state ID of the path, or `null` when no route matches
|
|
143
145
|
|
|
144
146
|
#### Example
|
|
145
147
|
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
# Class: VueRouterBridge
|
|
4
4
|
|
|
5
|
-
Defined in: [play-vue-router/src/vue-router-bridge.ts:
|
|
5
|
+
Defined in: [play-vue-router/src/vue-router-bridge.ts:35](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-vue-router/src/vue-router-bridge.ts#L35)
|
|
6
6
|
|
|
7
7
|
@xmachines/play-vue-router - Vue Router 4.x adapter for XMachines Play
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
It integrates Vue Router with an XMachines state machine, in both directions.
|
|
10
10
|
|
|
11
11
|
## Extends
|
|
12
12
|
|
|
@@ -23,7 +23,7 @@ new VueRouterBridge(
|
|
|
23
23
|
routeMap): VueRouterBridge;
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
Defined in: [play-vue-router/src/vue-router-bridge.ts:
|
|
26
|
+
Defined in: [play-vue-router/src/vue-router-bridge.ts:44](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-vue-router/src/vue-router-bridge.ts#L44)
|
|
27
27
|
|
|
28
28
|
#### Parameters
|
|
29
29
|
|
|
@@ -49,21 +49,23 @@ Defined in: [play-vue-router/src/vue-router-bridge.ts:41](https://gitlab.com/xma
|
|
|
49
49
|
connect(): void;
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
Defined in: [play-router/src/router-bridge-base.ts:
|
|
52
|
+
Defined in: [play-router/src/router-bridge-base.ts:158](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-router/src/router-bridge-base.ts#L158)
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
Connects the router bridge to the Actor.
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
starts
|
|
56
|
+
The method installs the TC39 Signal watcher of the direction from the actor to the
|
|
57
|
+
router. It then starts the watch of the router changes, which each framework does
|
|
58
|
+
in its own way.
|
|
58
59
|
|
|
59
|
-
|
|
60
|
+
The order of these steps is part of the contract of the bridge:
|
|
60
61
|
|
|
61
|
-
- `lastSyncedPath`
|
|
62
|
-
- the actor watcher
|
|
63
|
-
-
|
|
62
|
+
- The constructor seeds `lastSyncedPath` from `actor.currentRoute`
|
|
63
|
+
- The method installs the actor watcher before the router subscriptions of the adapter
|
|
64
|
+
- The first synchronization then separates a deep link from a restore, with `actor.initialRoute`
|
|
64
65
|
|
|
65
|
-
|
|
66
|
-
`getInitialRouterPath()
|
|
66
|
+
An adapter that needs a different behavior of the first synchronization overrides
|
|
67
|
+
`getInitialRouterPath()`. It does not change the order of the steps of
|
|
68
|
+
`connect()`.
|
|
67
69
|
|
|
68
70
|
#### Returns
|
|
69
71
|
|
|
@@ -81,11 +83,12 @@ Adapters that need custom initial-sync behavior should override
|
|
|
81
83
|
disconnect(): void;
|
|
82
84
|
```
|
|
83
85
|
|
|
84
|
-
Defined in: [play-router/src/router-bridge-base.ts:
|
|
86
|
+
Defined in: [play-router/src/router-bridge-base.ts:270](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-router/src/router-bridge-base.ts#L270)
|
|
85
87
|
|
|
86
|
-
|
|
88
|
+
Disconnects the router bridge from the Actor.
|
|
87
89
|
|
|
88
|
-
|
|
90
|
+
The method stops the watch of the signal, and it removes the router listener of the
|
|
91
|
+
framework.
|
|
89
92
|
|
|
90
93
|
#### Returns
|
|
91
94
|
|
|
@@ -97,16 +100,20 @@ Stops signal watching and unregisters framework-specific router listener.
|
|
|
97
100
|
|
|
98
101
|
---
|
|
99
102
|
|
|
100
|
-
### dispose()
|
|
103
|
+
### ~~dispose()~~
|
|
101
104
|
|
|
102
105
|
```ts
|
|
103
106
|
dispose(): void;
|
|
104
107
|
```
|
|
105
108
|
|
|
106
|
-
Defined in: [play-vue-router/src/vue-router-bridge.ts:
|
|
109
|
+
Defined in: [play-vue-router/src/vue-router-bridge.ts:215](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-vue-router/src/vue-router-bridge.ts#L215)
|
|
107
110
|
|
|
108
|
-
|
|
111
|
+
The cleanup alias for the Vue component lifecycle (`onUnmounted(() => bridge.dispose())`).
|
|
109
112
|
|
|
110
113
|
#### Returns
|
|
111
114
|
|
|
112
115
|
`void`
|
|
116
|
+
|
|
117
|
+
#### Deprecated
|
|
118
|
+
|
|
119
|
+
Use [disconnect](#disconnect). Will be removed in the next major.
|
|
@@ -6,27 +6,28 @@
|
|
|
6
6
|
function createRouteMap(machine, options?): RouteMap;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-router/src/create-route-map.ts:
|
|
9
|
+
Defined in: [play-router/src/create-route-map.ts:47](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-router/src/create-route-map.ts#L47)
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Creates a `RouteMap` from an XState state machine.
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
The function reads every state with a route, which means each state with a
|
|
14
|
+
`meta.route` field. It then builds the lookup structure between a path and a
|
|
15
|
+
stateId, for both directions. A subclass of `RouterBridgeBase` uses the map: it
|
|
16
|
+
converts each change of the browser URL into a `play.route` actor event, and each
|
|
17
|
+
actor route into a URL.
|
|
17
18
|
|
|
18
19
|
## Parameters
|
|
19
20
|
|
|
20
|
-
| Parameter | Type | Description
|
|
21
|
-
| ---------- | ------------------------------------------------------------------------- |
|
|
22
|
-
| `machine` | [`AnyStateMachine`](https://www.jsdocs.io/package/xstate#AnyStateMachine) | XState v5 state machine with `meta.route`
|
|
23
|
-
| `options?` | [`RouteMapOptions`](../interfaces/RouteMapOptions.md) |
|
|
21
|
+
| Parameter | Type | Description |
|
|
22
|
+
| ---------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
|
|
23
|
+
| `machine` | [`AnyStateMachine`](https://www.jsdocs.io/package/xstate#AnyStateMachine) | The XState v5 state machine, with a `meta.route` annotation on each state with a route. |
|
|
24
|
+
| `options?` | [`RouteMapOptions`](../interfaces/RouteMapOptions.md) | The optional configuration. Give `{ cacheSize }` to change the default size of the LRU cache of the parameterized path lookups. |
|
|
24
25
|
|
|
25
26
|
## Returns
|
|
26
27
|
|
|
27
28
|
[`RouteMap`](../classes/RouteMap.md)
|
|
28
29
|
|
|
29
|
-
A `RouteMap` for
|
|
30
|
+
A `RouteMap` for each adapter on `RouterBridgeBase`.
|
|
30
31
|
|
|
31
32
|
## Example
|
|
32
33
|
|