@xmachines/docs 3.0.0 → 4.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 +8 -16
- package/api/@xmachines/play/README.md +11 -100
- package/api/@xmachines/play/errors/README.md +8 -0
- package/api/@xmachines/play/{classes → errors/classes}/NonNullableError.md +6 -6
- package/api/@xmachines/play/{classes → errors/classes}/PlayError.md +35 -10
- package/api/@xmachines/play/index/README.md +75 -0
- package/api/@xmachines/play/{functions → index/functions}/asCleanup.md +2 -2
- package/api/@xmachines/play/{functions → index/functions}/assertNonNullable.md +2 -2
- package/api/@xmachines/{play-actor → play/index}/functions/shallowEqualExcept.md +3 -3
- package/api/@xmachines/play/{type-aliases → index/type-aliases}/Cleanup.md +3 -3
- package/api/@xmachines/play/{type-aliases → index/type-aliases}/DisposeKey.md +2 -2
- package/api/@xmachines/play/{type-aliases → index/type-aliases}/PlayEvent.md +4 -4
- package/api/@xmachines/play/{variables → index/variables}/DISPOSE.md +2 -2
- package/api/@xmachines/play-actor/README.md +78 -229
- package/api/@xmachines/play-actor/interfaces/ActorEvent.md +18 -0
- package/api/@xmachines/play-actor/interfaces/PlayActor.md +73 -0
- package/api/@xmachines/play-dom/README.md +28 -40
- package/api/@xmachines/play-dom/classes/PlayRenderer.md +12 -11
- package/api/@xmachines/play-dom/functions/asCleanup.md +78 -0
- package/api/@xmachines/play-dom/functions/createPlayUI.md +4 -4
- package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
- package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +3 -3
- package/api/@xmachines/play-dom/interfaces/MountOptions.md +3 -3
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +6 -6
- package/api/@xmachines/play-dom/type-aliases/Cleanup.md +2 -2
- package/api/@xmachines/play-dom/type-aliases/MountFn.md +29 -12
- package/api/@xmachines/play-dom-router/README.md +70 -70
- package/api/@xmachines/play-dom-router/classes/DomRouterBridge.md +22 -21
- package/api/@xmachines/{play-vue-router → play-dom-router}/classes/RouteMap.md +12 -6
- package/api/@xmachines/play-dom-router/functions/asCleanup.md +78 -0
- package/api/@xmachines/play-dom-router/functions/connectRouter.md +3 -8
- package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +9 -3
- package/api/@xmachines/play-dom-router/functions/createRouter.md +8 -14
- package/api/@xmachines/play-dom-router/interfaces/BasePathOptions.md +5 -5
- package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +70 -26
- package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
- package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +8 -8
- package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +9 -14
- package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +24 -21
- package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouterConnection.md +8 -8
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +36 -23
- package/api/@xmachines/play-dom-router/type-aliases/Cleanup.md +2 -2
- package/api/@xmachines/play-dom-router/variables/DISPOSE.md +2 -2
- package/api/@xmachines/play-react/README.md +17 -39
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +14 -10
- package/api/@xmachines/play-react/functions/useActor.md +1 -1
- package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-react/functions/useSignalEffect.md +1 -1
- package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +11 -11
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +6 -6
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +4 -4
- package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +13 -13
- package/api/@xmachines/play-react/interfaces/ViewContextValue.md +8 -8
- package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +11 -3
- package/api/@xmachines/play-react/variables/ActorProvider.md +1 -1
- package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-react/variables/PlayUIProvider.md +1 -1
- package/api/@xmachines/play-react/variables/schema.md +52 -0
- package/api/@xmachines/play-react-router/README.md +22 -50
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +17 -16
- package/api/@xmachines/play-react-router/classes/RouteMap.md +11 -5
- package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +11 -8
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +16 -9
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +9 -14
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +10 -10
- package/api/@xmachines/play-react-router/interfaces/RoutableActor.md +72 -0
- package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +17 -7
- package/api/@xmachines/play-react-router/type-aliases/PlayRouterProviderBaseProps.md +5 -5
- package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +4 -4
- package/api/@xmachines/play-router/README.md +104 -196
- package/api/@xmachines/play-router/errors/README.md +15 -0
- package/api/@xmachines/play-router/errors/classes/DuplicateBridgeError.md +191 -0
- package/api/@xmachines/play-router/errors/classes/DuplicateRoutePathError.md +175 -0
- package/api/@xmachines/play-router/errors/classes/EmptyRoutePathError.md +175 -0
- package/api/@xmachines/play-router/errors/classes/InvalidBasePathError.md +200 -0
- package/api/@xmachines/play-router/errors/classes/InvalidRoutePatternError.md +203 -0
- package/api/@xmachines/play-router/errors/classes/InvalidStateIdError.md +175 -0
- package/api/@xmachines/play-router/errors/classes/MissingBasePathParamError.md +199 -0
- package/api/@xmachines/play-router/errors/classes/RouterSyncError.md +192 -0
- package/api/@xmachines/play-router/errors/classes/UnknownStateTypeError.md +182 -0
- package/api/@xmachines/play-router/index/README.md +75 -0
- package/api/@xmachines/play-router/{classes → index/classes}/RouteMap.md +12 -6
- package/api/@xmachines/play-router/{classes → index/classes}/RouterBridgeBase.md +19 -17
- package/api/@xmachines/play-router/{functions → index/functions}/buildPlayRouteEvent.md +2 -2
- package/api/@xmachines/play-router/{functions → index/functions}/buildRouteTree.md +14 -4
- package/api/@xmachines/play-router/{functions → index/functions}/cleanFrameworkParams.md +3 -4
- package/api/@xmachines/play-router/{functions → index/functions}/createRouteMapFromTree.md +13 -6
- package/api/@xmachines/play-router/{functions → index/functions}/createRouterConnection.md +2 -2
- package/api/@xmachines/play-router/{functions → index/functions}/detectDuplicateRoutes.md +2 -2
- package/api/@xmachines/play-router/{functions → index/functions}/extractQuery.md +2 -2
- package/api/@xmachines/play-router/{functions → index/functions}/extractRouteParams.md +3 -3
- package/api/@xmachines/play-router/{functions → index/functions}/findRouteById.md +2 -2
- package/api/@xmachines/play-router/{functions → index/functions}/findRouteByPath.md +2 -2
- package/api/@xmachines/play-router/index/functions/getPatternParamNames.md +29 -0
- package/api/@xmachines/play-router/index/functions/getRequiredPatternParamNames.md +39 -0
- package/api/@xmachines/play-router/{functions → index/functions}/isMountableBridge.md +2 -2
- package/api/@xmachines/play-router/index/functions/joinBasePath.md +37 -0
- package/api/@xmachines/play-router/{functions → index/functions}/mountKey.md +2 -2
- package/api/@xmachines/play-router/index/functions/normalizeBasePath.md +43 -0
- package/api/@xmachines/play-router/{functions → index/functions}/openProviderBridge.md +14 -14
- package/api/@xmachines/play-router/index/functions/pickOwnParams.md +41 -0
- package/api/@xmachines/play-router/{functions → index/functions}/repointProviderBridge.md +2 -2
- package/api/@xmachines/play-router/index/functions/resolveBasePath.md +51 -0
- package/api/@xmachines/play-router/{functions → index/functions}/resolveFrameworkParams.md +11 -13
- package/api/@xmachines/play-router/{functions → index/functions}/sanitizePathname.md +2 -2
- package/api/@xmachines/play-router/index/functions/stripBasePath.md +44 -0
- package/api/@xmachines/play-router/{functions → index/functions}/validateRouteFormat.md +2 -2
- package/api/@xmachines/play-router/{functions → index/functions}/validateStateExists.md +2 -2
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/BasePathOptions.md +6 -6
- package/api/@xmachines/play-router/index/interfaces/BuildPlayRouteEventOptions.md +13 -0
- package/api/@xmachines/play-router/index/interfaces/FrameworkParamsSource.md +47 -0
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/LocationLike.md +6 -6
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/MountableRouterBridge.md +9 -9
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/OpenProviderBridgeArgs.md +13 -13
- package/api/@xmachines/play-router/index/interfaces/PlayRouteEvent.md +130 -0
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/PlayRouterProviderBaseProps.md +15 -15
- package/api/@xmachines/play-router/index/interfaces/ResolvedBasePath.md +14 -0
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/ResolvedRoutePath.md +6 -6
- package/api/@xmachines/play-router/index/interfaces/Routable.md +26 -0
- package/api/@xmachines/play-router/index/interfaces/RoutableActor.md +72 -0
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteInfo.md +11 -11
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteMapOptions.md +5 -5
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteMapping.md +6 -6
- package/api/@xmachines/play-router/index/interfaces/RouteMatch.md +12 -0
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteNode.md +13 -13
- package/api/@xmachines/play-router/index/interfaces/RouteObject.md +34 -0
- package/api/@xmachines/play-router/index/interfaces/RouteTree.md +27 -0
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteWatcherHandle.md +7 -7
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouterBridge.md +5 -5
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouterConnection.md +10 -10
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/WindowLike.md +4 -4
- package/api/@xmachines/play-router/index/type-aliases/PlayRouterBridgeConstructor.md +46 -0
- package/api/@xmachines/play-router/index/type-aliases/RouteData.md +12 -0
- package/api/@xmachines/play-router/index/type-aliases/RouteDataResolver.md +31 -0
- package/api/@xmachines/play-router/index/type-aliases/RouteMetadata.md +11 -0
- package/api/@xmachines/{play-xstate → play-router/index}/variables/DISPOSE.md +3 -3
- package/api/@xmachines/play-router/index/variables/NO_BASE_PATH.md +18 -0
- package/api/@xmachines/play-router/index/variables/ROOT_NODE_ID.md +18 -0
- package/api/@xmachines/play-router/xstate/README.md +53 -0
- package/api/@xmachines/play-router/{functions → xstate/functions}/createRouteMap.md +8 -6
- package/api/@xmachines/play-router/{functions → xstate/functions}/extractMachineRoutes.md +4 -4
- package/api/@xmachines/play-router/xstate/functions/getNavigableRoutes.md +35 -0
- package/api/@xmachines/play-router/{functions → xstate/functions}/getRoutableRoutes.md +6 -6
- package/api/@xmachines/play-router/{functions → xstate/functions}/getRouteMappings.md +7 -7
- package/api/@xmachines/play-router/{functions → xstate/functions}/getTransitionReachableRoutes.md +2 -2
- package/api/@xmachines/play-router/{functions → xstate/functions}/isRouteReachable.md +2 -2
- package/api/@xmachines/play-router/{functions → xstate/functions}/machineToGraph.md +2 -2
- package/api/@xmachines/play-router/xstate/functions/routeExists.md +26 -0
- package/api/@xmachines/play-router/xstate/interfaces/MachineEdgeData.md +15 -0
- package/api/@xmachines/play-router/xstate/interfaces/MachineNodeData.md +17 -0
- package/api/@xmachines/play-router/{type-aliases → xstate/type-aliases}/MachineGraph.md +2 -2
- package/api/@xmachines/play-signals/README.md +2 -24
- package/api/@xmachines/play-signals/functions/watchSignal.md +1 -1
- package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalOptions.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalState.md +3 -3
- package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +4 -4
- package/api/@xmachines/play-signals/type-aliases/Cleanup.md +2 -2
- package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
- package/api/@xmachines/play-solid/README.md +14 -31
- package/api/@xmachines/play-solid/functions/useActor.md +1 -1
- package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +11 -11
- package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +13 -13
- package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +8 -8
- package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +11 -3
- package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
- package/api/@xmachines/play-solid/variables/ActorProvider.md +1 -1
- package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
- package/api/@xmachines/play-solid/variables/schema.md +71 -0
- package/api/@xmachines/play-solid-router/README.md +31 -52
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +11 -5
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +30 -53
- package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +9 -8
- package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +38 -35
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +9 -14
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +12 -12
- package/api/@xmachines/play-solid-router/interfaces/RoutableActor.md +72 -0
- package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +5 -5
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +17 -7
- package/api/@xmachines/play-solid-router/type-aliases/PlayRouterProviderBaseProps.md +5 -5
- package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
- package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +4 -4
- package/api/@xmachines/play-svelte/README.md +11 -26
- package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
- package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
- package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
- package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
- package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +12 -12
- package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +4 -4
- package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +14 -14
- package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +8 -8
- package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +11 -3
- package/api/@xmachines/play-svelte/variables/schema.md +16 -0
- package/api/@xmachines/play-svelte-spa-router/README.md +22 -41
- package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +11 -5
- package/api/@xmachines/play-svelte-spa-router/classes/SvelteSpaRouterBridge.md +22 -21
- package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +3 -2
- package/api/@xmachines/play-svelte-spa-router/interfaces/BasePathOptions.md +5 -5
- package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +8 -8
- package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +9 -14
- package/api/@xmachines/play-svelte-spa-router/interfaces/RoutableActor.md +72 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterConnection.md +8 -8
- package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
- package/api/@xmachines/play-sveltekit-router/README.md +17 -35
- package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +11 -5
- package/api/@xmachines/play-sveltekit-router/classes/SvelteKitRouterBridge.md +22 -21
- package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +3 -2
- package/api/@xmachines/play-sveltekit-router/interfaces/BasePathOptions.md +5 -5
- package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +8 -8
- package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +9 -14
- package/api/@xmachines/play-sveltekit-router/interfaces/RoutableActor.md +72 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterConnection.md +8 -8
- package/api/@xmachines/play-tanstack-react-router/README.md +19 -43
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +11 -5
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +18 -17
- package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +11 -8
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +16 -9
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +9 -14
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +10 -10
- package/api/@xmachines/play-tanstack-react-router/interfaces/RoutableActor.md +72 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +17 -7
- package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterProviderBaseProps.md +5 -5
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +5 -5
- package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +4 -4
- package/api/@xmachines/play-tanstack-router/README.md +6 -4
- package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +17 -20
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +3 -3
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/README.md +26 -52
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +11 -5
- package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +49 -45
- package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +9 -8
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +9 -14
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +10 -10
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RoutableActor.md +72 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +17 -7
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterProviderBaseProps.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +4 -4
- package/api/@xmachines/play-url/README.md +69 -0
- package/api/@xmachines/play-url/errors/README.md +17 -0
- package/api/@xmachines/play-url/errors/classes/InvalidBasePathError.md +200 -0
- package/api/@xmachines/play-url/errors/classes/InvalidRoutePatternError.md +203 -0
- package/api/@xmachines/play-url/errors/classes/MissingBasePathParamError.md +199 -0
- package/api/@xmachines/play-url/index/README.md +65 -0
- package/api/@xmachines/play-url/index/functions/cleanFrameworkParams.md +39 -0
- package/api/@xmachines/play-url/index/functions/getCandidates.md +29 -0
- package/api/@xmachines/play-url/index/functions/getCompiledPattern.md +31 -0
- package/api/@xmachines/play-url/index/functions/getIndexKey.md +30 -0
- package/api/@xmachines/play-url/index/functions/getNormalizedParamNameMap.md +32 -0
- package/api/@xmachines/play-url/index/functions/getPatternParamNames.md +29 -0
- package/api/@xmachines/play-url/index/functions/getRequiredPatternParamNames.md +39 -0
- package/api/@xmachines/play-url/index/functions/holdsUnsubstitutedParam.md +36 -0
- package/api/@xmachines/play-url/index/functions/isParameterizedPattern.md +36 -0
- package/api/@xmachines/{play-router → play-url/index}/functions/joinBasePath.md +2 -2
- package/api/@xmachines/{play-router → play-url/index}/functions/normalizeBasePath.md +2 -2
- package/api/@xmachines/play-url/index/functions/normalizeParamNames.md +36 -0
- package/api/@xmachines/play-url/index/functions/parsePattern.md +27 -0
- package/api/@xmachines/{play-router → play-url/index}/functions/pickOwnParams.md +4 -4
- package/api/@xmachines/{play-router → play-url/index}/functions/resolveBasePath.md +2 -2
- package/api/@xmachines/play-url/index/functions/resolveFrameworkParams.md +49 -0
- package/api/@xmachines/{play-router → play-url/index}/functions/stripBasePath.md +2 -2
- package/api/@xmachines/play-url/index/interfaces/BasePathOptions.md +28 -0
- package/api/@xmachines/{play-router → play-url/index}/interfaces/FrameworkParamsSource.md +9 -9
- package/api/@xmachines/play-url/index/interfaces/GroupPart.md +15 -0
- package/api/@xmachines/play-url/index/interfaces/LiteralPart.md +14 -0
- package/api/@xmachines/play-url/index/interfaces/ParamPart.md +21 -0
- package/api/@xmachines/play-url/index/interfaces/ParsedPattern.md +23 -0
- package/api/@xmachines/play-url/index/interfaces/PatternParam.md +15 -0
- package/api/@xmachines/{play-router → play-url/index}/interfaces/ResolvedBasePath.md +6 -6
- package/api/@xmachines/play-url/index/type-aliases/PatternModifier.md +11 -0
- package/api/@xmachines/play-url/index/type-aliases/PatternPart.md +9 -0
- package/api/@xmachines/play-url/index/type-aliases/URLPatternCtor.md +22 -0
- package/api/@xmachines/play-url/index/type-aliases/URLPatternLike.md +68 -0
- package/api/@xmachines/{play-router → play-url/index}/variables/NO_BASE_PATH.md +2 -2
- package/api/@xmachines/play-url/index/variables/URLPattern.md +21 -0
- package/api/@xmachines/play-view/README.md +165 -0
- package/api/@xmachines/play-view/errors/README.md +17 -0
- package/api/@xmachines/play-view/errors/classes/ReadOnlyContextError.md +192 -0
- package/api/@xmachines/play-view/index/README.md +55 -0
- package/api/@xmachines/{play-actor → play-view/index}/functions/attachRenderErrorHandler.md +6 -6
- package/api/@xmachines/{play-actor → play-view/index}/functions/composePlayState.md +2 -2
- package/api/@xmachines/{play-actor → play-view/index}/functions/createFailureLatch.md +2 -2
- package/api/@xmachines/{play-actor → play-view/index}/functions/createReportGuard.md +2 -2
- package/api/@xmachines/{play-actor → play-view/index}/functions/createViewStoreLifecycle.md +2 -2
- package/api/@xmachines/{play-actor → play-view/index}/functions/guardContextWrites.md +2 -2
- package/api/@xmachines/{play-actor → play-view/index}/functions/refreshContextSubtree.md +2 -2
- package/api/@xmachines/{play-actor → play-view/index}/functions/reuseComposedState.md +3 -3
- package/api/@xmachines/{play-actor → play-view/index}/functions/sameViewInputs.md +2 -2
- package/api/@xmachines/{play-actor → play-view/index}/functions/toAtomState.md +2 -2
- package/api/@xmachines/{play-actor → play-view/index}/functions/typedSpec.md +2 -2
- package/api/@xmachines/play-view/index/interfaces/BaseActorProviderProps.md +49 -0
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/BaseViewContextValue.md +12 -12
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/FailureLatch.md +6 -5
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/PlaySpec.md +8 -8
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/ReportGuard.md +6 -6
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/ReportGuardMessages.md +6 -6
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/ResolveViewStoreOptions.md +5 -5
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/ViewInputs.md +7 -7
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/ViewStoreLifecycle.md +6 -5
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/ViewStoreResolution.md +7 -7
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/Viewable.md +5 -5
- package/api/@xmachines/play-view/index/type-aliases/ViewActor.md +26 -0
- package/api/@xmachines/{play-actor → play-view/index}/variables/CONTEXT_STATE_KEY.md +2 -2
- package/api/@xmachines/play-vue/README.md +15 -33
- package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
- package/api/@xmachines/play-vue/functions/useActor.md +1 -1
- package/api/@xmachines/play-vue/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +9 -9
- package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +11 -11
- package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +8 -8
- package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +11 -3
- 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/schema.md +71 -0
- package/api/@xmachines/play-vue-router/README.md +34 -77
- package/api/@xmachines/play-vue-router/errors/README.md +8 -0
- package/api/@xmachines/play-vue-router/errors/classes/VueRouterNavigationError.md +193 -0
- package/api/@xmachines/play-vue-router/errors/classes/VueRouterSendError.md +177 -0
- package/api/@xmachines/play-vue-router/index/README.md +20 -0
- package/api/@xmachines/play-vue-router/index/classes/RouteMap.md +157 -0
- package/api/@xmachines/play-vue-router/{classes → index/classes}/VueRouterBridge.md +24 -43
- package/api/@xmachines/play-vue-router/index/interfaces/PlayRouteEvent.md +130 -0
- package/api/@xmachines/play-vue-router/index/interfaces/RoutableActor.md +72 -0
- package/api/@xmachines/play-vue-router/{interfaces → index/interfaces}/RouteMapOptions.md +5 -5
- package/api/@xmachines/play-vue-router/{interfaces → index/interfaces}/RouteMapping.md +6 -6
- package/api/@xmachines/play-vue-router/{interfaces → index/interfaces}/RouterBridge.md +5 -5
- package/api/@xmachines/play-vue-router/{variables → index/variables}/PlayRouterProvider.md +4 -4
- package/api/@xmachines/play-xstate/README.md +153 -105
- package/api/@xmachines/play-xstate/errors/README.md +13 -0
- package/api/@xmachines/play-xstate/errors/classes/ActorThrewNonErrorError.md +199 -0
- package/api/@xmachines/play-xstate/errors/classes/InvalidEventError.md +198 -0
- package/api/@xmachines/play-xstate/errors/classes/InvalidMachineError.md +169 -0
- package/api/@xmachines/play-xstate/errors/classes/InvalidRouteHandlerError.md +197 -0
- package/api/@xmachines/play-xstate/errors/classes/InvalidRouteMetadataError.md +176 -0
- package/api/@xmachines/play-xstate/errors/classes/MissingRouteParamError.md +199 -0
- package/api/@xmachines/play-xstate/errors/classes/MissingStateIdError.md +203 -0
- package/api/@xmachines/play-xstate/index/README.md +38 -0
- package/api/@xmachines/play-xstate/index/classes/PlayerActor.md +584 -0
- package/api/@xmachines/play-xstate/index/functions/compose.md +224 -0
- package/api/@xmachines/play-xstate/index/functions/definePlayer.md +158 -0
- package/api/@xmachines/play-xstate/index/interfaces/PlayerConfig.md +22 -0
- package/api/@xmachines/play-xstate/{interfaces → index/interfaces}/PlayerFactoryResumeOptions.md +3 -3
- package/api/@xmachines/play-xstate/{interfaces → index/interfaces}/PlayerOptions.md +8 -8
- package/api/@xmachines/play-xstate/index/type-aliases/Capability.md +33 -0
- package/api/@xmachines/play-xstate/index/type-aliases/PlayerConstructor.md +39 -0
- package/api/@xmachines/play-xstate/index/type-aliases/PlayerFactory.md +27 -0
- package/api/@xmachines/{play-router → play-xstate/index}/variables/DISPOSE.md +3 -3
- package/api/@xmachines/play-xstate/with-routing/README.md +46 -0
- package/api/@xmachines/play-xstate/{functions → with-routing/functions}/buildRouteUrl.md +2 -2
- package/api/@xmachines/play-xstate/{functions → with-routing/functions}/deriveRoute.md +4 -4
- package/api/@xmachines/play-xstate/{functions → with-routing/functions}/formatPlayRouteTransitions.md +2 -2
- package/api/@xmachines/play-xstate/{functions → with-routing/functions}/isAbsoluteRoute.md +3 -3
- package/api/@xmachines/play-xstate/with-routing/functions/withRouting.md +36 -0
- package/api/@xmachines/play-xstate/{interfaces → with-routing/interfaces}/RouteContext.md +6 -6
- package/api/@xmachines/play-xstate/with-routing/interfaces/RouteObject.md +34 -0
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteData.md +12 -0
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteDataResolver.md +31 -0
- package/api/@xmachines/play-xstate/{type-aliases → with-routing/type-aliases}/RouteMachineConfig.md +5 -5
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMetadata.md +11 -0
- package/api/@xmachines/play-xstate/{type-aliases → with-routing/type-aliases}/RouteStateNode.md +21 -7
- package/api/@xmachines/play-xstate/with-view/README.md +31 -0
- package/api/@xmachines/play-xstate/with-view/functions/withView.md +32 -0
- package/api/@xmachines/shared/README.md +10 -32
- 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 +2 -1
- package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +4 -4
- package/api/README.md +2 -0
- package/api/llms.txt +15 -10
- package/contributing/architecture.md +94 -66
- package/contributing/configuration.md +85 -26
- package/contributing/deployment.md +30 -28
- package/contributing/development.md +51 -10
- package/contributing/testing.md +87 -28
- package/examples/README.md +9 -7
- package/examples/form-validation.md +3 -2
- package/examples/multi-router-integration.md +61 -39
- package/examples/routing-patterns.md +15 -14
- package/examples/traffic-light.md +11 -5
- package/guides/README.md +1 -0
- package/guides/actor-model.md +35 -26
- package/guides/getting-started.md +49 -46
- package/guides/inspector.md +4 -4
- package/guides/routing.md +245 -0
- package/guides/state-machines.md +16 -17
- package/package.json +10 -9
- package/rfc/play.md +35 -22
- package/api/@xmachines/play-actor/classes/AbstractActor.md +0 -505
- package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +0 -48
- package/api/@xmachines/play-actor/interfaces/Routable.md +0 -14
- package/api/@xmachines/play-dom/type-aliases/DisposablePlayUI.md +0 -36
- package/api/@xmachines/play-dom-router/functions/createRouteMap.md +0 -40
- package/api/@xmachines/play-dom-router/interfaces/DisposableBrowserHistory.md +0 -262
- package/api/@xmachines/play-dom-router/interfaces/DisposableVanillaRouter.md +0 -80
- package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +0 -122
- package/api/@xmachines/play-react/type-aliases/PlayRendererProps.md +0 -13
- package/api/@xmachines/play-react-router/functions/createRouteMap.md +0 -40
- package/api/@xmachines/play-react-router/interfaces/PlayActor.md +0 -70
- package/api/@xmachines/play-router/functions/getNavigableRoutes.md +0 -35
- package/api/@xmachines/play-router/functions/getPatternParamNames.md +0 -24
- package/api/@xmachines/play-router/functions/getRequiredPatternParamNames.md +0 -36
- package/api/@xmachines/play-router/functions/routeExists.md +0 -26
- package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +0 -13
- package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +0 -15
- package/api/@xmachines/play-router/interfaces/MachineNodeData.md +0 -17
- package/api/@xmachines/play-router/interfaces/PlayActor.md +0 -70
- package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +0 -135
- package/api/@xmachines/play-router/interfaces/RoutableActor.md +0 -65
- package/api/@xmachines/play-router/interfaces/RouteMatch.md +0 -12
- package/api/@xmachines/play-router/interfaces/RouteObject.md +0 -21
- package/api/@xmachines/play-router/interfaces/RouteTree.md +0 -21
- package/api/@xmachines/play-router/type-aliases/BaseRouteMapping.md +0 -13
- package/api/@xmachines/play-router/type-aliases/PlayRouterBridgeConstructor.md +0 -36
- package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +0 -11
- package/api/@xmachines/play-solid-router/functions/createRouteMap.md +0 -40
- package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +0 -471
- package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +0 -13
- package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +0 -40
- package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +0 -9
- package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +0 -40
- package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +0 -9
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +0 -40
- package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +0 -29
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayActor.md +0 -70
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +0 -31
- package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +0 -40
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayActor.md +0 -70
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +0 -13
- package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +0 -9
- package/api/@xmachines/play-vue/variables/getPlayViewContext.md +0 -39
- package/api/@xmachines/play-vue-router/functions/createRouteMap.md +0 -40
- package/api/@xmachines/play-vue-router/interfaces/PlayActor.md +0 -70
- package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +0 -135
- package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +0 -13
- package/api/@xmachines/play-vue-router/type-aliases/VueRouteMap.md +0 -13
- package/api/@xmachines/play-vue-router/variables/VueRouteMap.md +0 -13
- package/api/@xmachines/play-xstate/classes/PlayerActor.md +0 -568
- package/api/@xmachines/play-xstate/functions/composeGuards.md +0 -86
- package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +0 -72
- package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +0 -43
- package/api/@xmachines/play-xstate/functions/definePlayer.md +0 -78
- package/api/@xmachines/play-xstate/functions/eventMatches.md +0 -45
- package/api/@xmachines/play-xstate/functions/hasContext.md +0 -45
- package/api/@xmachines/play-xstate/functions/negateGuard.md +0 -67
- package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +0 -20
- package/api/@xmachines/play-xstate/interfaces/RouteObject.md +0 -17
- package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +0 -19
- package/api/@xmachines/play-xstate/type-aliases/Guard.md +0 -36
- package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +0 -23
- package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +0 -26
- package/api/@xmachines/play-xstate/type-aliases/RouteMetadata.md +0 -9
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
[API](../../../../README.md) / [@xmachines/play-vue-router](../../README.md) / [index](../README.md) / RoutableActor
|
|
2
|
+
|
|
3
|
+
# Interface: RoutableActor
|
|
4
|
+
|
|
5
|
+
Defined in: [packages/play-router/src/types.ts:392](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-router/src/types.ts#L392)
|
|
6
|
+
|
|
7
|
+
The minimal actor interface that `RouterBridgeBase` and every framework router
|
|
8
|
+
adapter require.
|
|
9
|
+
|
|
10
|
+
It names `send` itself, and it therefore gives `RouterBridgeBase.actor.send` a type that
|
|
11
|
+
accepts a `PlayRouteEvent` directly. That removes the unsafe cast
|
|
12
|
+
`(actor.send as (e: PlayRouteEvent) => void)`.
|
|
13
|
+
|
|
14
|
+
It is [Routable](../../../play-router/index/interfaces/Routable.md) with `send`. The two members of the capability are declared once,
|
|
15
|
+
in `Routable`, and this interface extends it. A copy of them here drifts the day that
|
|
16
|
+
one of the two files changes.
|
|
17
|
+
|
|
18
|
+
**It names the view NOWHERE. Routing implies no rendering.** No file of this package,
|
|
19
|
+
and no file of any of the eight router adapters, ever reads `currentView`. A provider
|
|
20
|
+
whose renderer callback reads the view binds its own `TActor`, and a constraint keeps
|
|
21
|
+
the concrete type of the actor whole, so that callback still reads the exact spec of
|
|
22
|
+
that actor.
|
|
23
|
+
|
|
24
|
+
Every `PlayActor` of `@xmachines/play-actor` that also implements `Routable`, and whose
|
|
25
|
+
event union holds `PlayRouteEvent`, satisfies this interface structurally. A machine
|
|
26
|
+
that declares no route event does NOT satisfy it, and that refusal is correct: a bridge
|
|
27
|
+
cannot navigate an actor that receives no route event.
|
|
28
|
+
|
|
29
|
+
## Example
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
import type { RoutableActor } from "@xmachines/play-router";
|
|
33
|
+
|
|
34
|
+
class MyBridge extends RouterBridgeBase {
|
|
35
|
+
constructor(actor: RoutableActor, routeMap: RouteMap) {
|
|
36
|
+
super(actor, routeMap);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Extends
|
|
42
|
+
|
|
43
|
+
- [`Routable`](../../../play-router/index/interfaces/Routable.md)
|
|
44
|
+
|
|
45
|
+
## Properties
|
|
46
|
+
|
|
47
|
+
| Property | Modifier | Type | Inherited from | Defined in |
|
|
48
|
+
| ------------------------------------------------- | ---------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
49
|
+
| <a id="property-currentroute"></a> `currentRoute` | `readonly` | [`Computed`](../../../play-signals/namespaces/Signal/classes/Computed.md)\<`string` \| `null`\> | [`Routable`](../../../play-router/index/interfaces/Routable.md).[`currentRoute`](../../../play-router/index/interfaces/Routable.md#property-currentroute) | [packages/play-router/src/types.ts:354](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-router/src/types.ts#L354) |
|
|
50
|
+
| <a id="property-initialroute"></a> `initialRoute` | `readonly` | `string` \| `null` | [`Routable`](../../../play-router/index/interfaces/Routable.md).[`initialRoute`](../../../play-router/index/interfaces/Routable.md#property-initialroute) | [packages/play-router/src/types.ts:355](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-router/src/types.ts#L355) |
|
|
51
|
+
|
|
52
|
+
## Methods
|
|
53
|
+
|
|
54
|
+
### send()
|
|
55
|
+
|
|
56
|
+
```ts
|
|
57
|
+
send(event): void;
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Defined in: [packages/play-router/src/types.ts:394](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-router/src/types.ts#L394)
|
|
61
|
+
|
|
62
|
+
Sends a route navigation event to the actor.
|
|
63
|
+
|
|
64
|
+
#### Parameters
|
|
65
|
+
|
|
66
|
+
| Parameter | Type |
|
|
67
|
+
| --------- | ------------------------------------- |
|
|
68
|
+
| `event` | [`PlayRouteEvent`](PlayRouteEvent.md) |
|
|
69
|
+
|
|
70
|
+
#### Returns
|
|
71
|
+
|
|
72
|
+
`void`
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
[API](
|
|
1
|
+
[API](../../../../README.md) / [@xmachines/play-vue-router](../../README.md) / [index](../README.md) / RouteMapOptions
|
|
2
2
|
|
|
3
3
|
# Interface: RouteMapOptions
|
|
4
4
|
|
|
5
|
-
Defined in: [play-router/src/
|
|
5
|
+
Defined in: [packages/play-router/src/types.ts:567](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-router/src/types.ts#L567)
|
|
6
6
|
|
|
7
7
|
The options of `createRouteMap` and of `createRouteMapFromTree`.
|
|
8
8
|
|
|
9
9
|
## Properties
|
|
10
10
|
|
|
11
|
-
| Property | Type | Description | Defined in
|
|
12
|
-
| -------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
13
|
-
| <a id="property-cachesize"></a> `cacheSize?` | `number` | The maximum number of the resolved parameterized path lookups in the cache. `RouteMap.getStateIdByPath()` resolves a parameterized pattern, for example `/profile/:userId`, with URLPattern on each call. The map keeps each path of a frequent visit in an LRU cache, and a later lookup of that path is therefore O(1). Raise this value for an application with a large set of parameterized routes, or with a high frequency of the navigation. The default is `500`. | [play-router/src/
|
|
11
|
+
| Property | Type | Description | Defined in |
|
|
12
|
+
| -------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
13
|
+
| <a id="property-cachesize"></a> `cacheSize?` | `number` | The maximum number of the resolved parameterized path lookups in the cache. `RouteMap.getStateIdByPath()` resolves a parameterized pattern, for example `/profile/:userId`, with URLPattern on each call. The map keeps each path of a frequent visit in an LRU cache, and a later lookup of that path is therefore O(1). Raise this value for an application with a large set of parameterized routes, or with a high frequency of the navigation. The default is `500`. | [packages/play-router/src/types.ts:579](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-router/src/types.ts#L579) |
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
[API](
|
|
1
|
+
[API](../../../../README.md) / [@xmachines/play-vue-router](../../README.md) / [index](../README.md) / RouteMapping
|
|
2
2
|
|
|
3
3
|
# Interface: RouteMapping
|
|
4
4
|
|
|
5
|
-
Defined in: [play-router/src/base-route-map.ts:54](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
5
|
+
Defined in: [packages/play-router/src/base-route-map.ts:54](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-router/src/base-route-map.ts#L54)
|
|
6
6
|
|
|
7
7
|
One entry of the map between a state ID and a path.
|
|
8
8
|
|
|
@@ -22,7 +22,7 @@ const optionalMapping: RouteMapping = { stateId: "settings", path: "/settings/:s
|
|
|
22
22
|
|
|
23
23
|
## Properties
|
|
24
24
|
|
|
25
|
-
| Property | Modifier | Type | Description | Defined in
|
|
26
|
-
| --------------------------------------- | ---------- | -------- | ------------------------------------------------------------------------------------------------ |
|
|
27
|
-
| <a id="property-path"></a> `path` | `readonly` | `string` | The pattern of the URL path, for example `"/"`, `"/profile/:userId"`, or `"/settings/:section?"` | [play-router/src/base-route-map.ts:58](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
28
|
-
| <a id="property-stateid"></a> `stateId` | `readonly` | `string` | The state ID of the state machine, for example `"home"` or `"#profile"` | [play-router/src/base-route-map.ts:56](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
25
|
+
| Property | Modifier | Type | Description | Defined in |
|
|
26
|
+
| --------------------------------------- | ---------- | -------- | ------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
27
|
+
| <a id="property-path"></a> `path` | `readonly` | `string` | The pattern of the URL path, for example `"/"`, `"/profile/:userId"`, or `"/settings/:section?"` | [packages/play-router/src/base-route-map.ts:58](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-router/src/base-route-map.ts#L58) |
|
|
28
|
+
| <a id="property-stateid"></a> `stateId` | `readonly` | `string` | The state ID of the state machine, for example `"home"` or `"#profile"` | [packages/play-router/src/base-route-map.ts:56](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-router/src/base-route-map.ts#L56) |
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
[API](
|
|
1
|
+
[API](../../../../README.md) / [@xmachines/play-vue-router](../../README.md) / [index](../README.md) / RouterBridge
|
|
2
2
|
|
|
3
3
|
# Interface: RouterBridge
|
|
4
4
|
|
|
5
|
-
Defined in: [play-router/src/types.ts:
|
|
5
|
+
Defined in: [packages/play-router/src/types.ts:438](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-router/src/types.ts#L438)
|
|
6
6
|
|
|
7
7
|
The RouterBridge interface of a runtime infrastructure adapter
|
|
8
8
|
|
|
@@ -46,7 +46,7 @@ class MyRouterBridge implements RouterBridge {
|
|
|
46
46
|
|
|
47
47
|
## See
|
|
48
48
|
|
|
49
|
-
[Play RFC](
|
|
49
|
+
[Play RFC](../../../../../rfc/play.md) - invariant INV-04
|
|
50
50
|
|
|
51
51
|
## Methods
|
|
52
52
|
|
|
@@ -56,7 +56,7 @@ class MyRouterBridge implements RouterBridge {
|
|
|
56
56
|
connect(): void | Promise<void>;
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
Defined in: [play-router/src/types.ts:
|
|
59
|
+
Defined in: [packages/play-router/src/types.ts:455](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-router/src/types.ts#L455)
|
|
60
60
|
|
|
61
61
|
Connects the router bridge to the Actor
|
|
62
62
|
|
|
@@ -86,7 +86,7 @@ await bridge.connect();
|
|
|
86
86
|
disconnect(): void | Promise<void>;
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
-
Defined in: [play-router/src/types.ts:
|
|
89
|
+
Defined in: [packages/play-router/src/types.ts:471](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-router/src/types.ts#L471)
|
|
90
90
|
|
|
91
91
|
Disconnects the router bridge from the Actor
|
|
92
92
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
[API](
|
|
1
|
+
[API](../../../../README.md) / [@xmachines/play-vue-router](../../README.md) / [index](../README.md) / PlayRouterProvider
|
|
2
2
|
|
|
3
3
|
# Variable: PlayRouterProvider
|
|
4
4
|
|
|
@@ -7,7 +7,7 @@ const PlayRouterProvider: DefineComponent<
|
|
|
7
7
|
ExtractPropTypes<{
|
|
8
8
|
actor: {
|
|
9
9
|
required: true;
|
|
10
|
-
type: PropType<
|
|
10
|
+
type: PropType<RoutableActor>;
|
|
11
11
|
};
|
|
12
12
|
basePath: {
|
|
13
13
|
default: undefined;
|
|
@@ -45,7 +45,7 @@ const PlayRouterProvider: DefineComponent<
|
|
|
45
45
|
ExtractPropTypes<{
|
|
46
46
|
actor: {
|
|
47
47
|
required: true;
|
|
48
|
-
type: PropType<
|
|
48
|
+
type: PropType<RoutableActor>;
|
|
49
49
|
};
|
|
50
50
|
basePath: {
|
|
51
51
|
default: undefined;
|
|
@@ -87,7 +87,7 @@ const PlayRouterProvider: DefineComponent<
|
|
|
87
87
|
>;
|
|
88
88
|
```
|
|
89
89
|
|
|
90
|
-
Defined in: [play-vue-router/src/play-router-provider.ts:
|
|
90
|
+
Defined in: [packages/play-vue-router/src/play-router-provider.ts:17](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-vue-router/src/play-router-provider.ts#L17)
|
|
91
91
|
|
|
92
92
|
PlayRouterProvider — the Vue wrapper of VueRouterBridge.
|
|
93
93
|
|
|
@@ -4,15 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
> XState v5 adapter for the XMachines Play Architecture. It binds a state machine to the actor base, with signal-driven reactivity and a router integration.
|
|
6
6
|
|
|
7
|
-
[](https://opensource.org/licenses/MIT) [](https://opensource.org/licenses/MIT) [](https://www.npmjs.com/package/@xmachines/play-xstate)
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
> **Browser floor: Chrome 110, Firefox 115, Safari 16.4.** This package calls the ES2023
|
|
12
12
|
> change-by-copy array methods, so a browser below that floor throws
|
|
13
|
-
> `TypeError: ... is not a function`.
|
|
14
|
-
> `baseline-widely-available` target to Firefox 114, which is below it — raise
|
|
15
|
-
> `build.target` when you bundle for the browser. The root README carries the table.
|
|
13
|
+
> `TypeError: ... is not a function`. The root README carries the table.
|
|
16
14
|
|
|
17
15
|
## Installation
|
|
18
16
|
|
|
@@ -20,7 +18,7 @@
|
|
|
20
18
|
pnpm add @xmachines/play-xstate xstate
|
|
21
19
|
```
|
|
22
20
|
|
|
23
|
-
`xstate ^5.
|
|
21
|
+
`xstate ^5.33.0` is a peer dependency. Install it with this package.
|
|
24
22
|
|
|
25
23
|
---
|
|
26
24
|
|
|
@@ -28,7 +26,8 @@ pnpm add @xmachines/play-xstate xstate
|
|
|
28
26
|
|
|
29
27
|
```typescript
|
|
30
28
|
import { setup } from "xstate";
|
|
31
|
-
import { definePlayer } from "@xmachines/play-xstate";
|
|
29
|
+
import { definePlayer, compose, PlayerActor } from "@xmachines/play-xstate";
|
|
30
|
+
import { withRouting } from "@xmachines/play-xstate/routing";
|
|
32
31
|
|
|
33
32
|
// 1. Define your XState v5 machine
|
|
34
33
|
const machine = setup({}).createMachine({
|
|
@@ -40,7 +39,7 @@ const machine = setup({}).createMachine({
|
|
|
40
39
|
});
|
|
41
40
|
|
|
42
41
|
// 2. Create a player factory
|
|
43
|
-
const createPlayer = definePlayer({ machine });
|
|
42
|
+
const createPlayer = definePlayer({ machine, actor: compose(PlayerActor, withRouting) });
|
|
44
43
|
|
|
45
44
|
// 3. Instantiate and start an actor
|
|
46
45
|
const actor = createPlayer();
|
|
@@ -135,16 +134,75 @@ console.log(restored.currentRoute.get()); // same route as when saved
|
|
|
135
134
|
|
|
136
135
|
### `PlayerActor<TMachine>`
|
|
137
136
|
|
|
138
|
-
This concrete actor class is an XState v5 actor that
|
|
137
|
+
This concrete actor class is an XState v5 actor that exposes reactive TC39 Signals. It holds the protocol of `PlayActor` and nothing else: `state` and `send`.
|
|
139
138
|
|
|
140
139
|
#### Signals
|
|
141
140
|
|
|
142
|
-
| Signal
|
|
143
|
-
|
|
|
144
|
-
| `state`
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
141
|
+
| Signal | Type | Description |
|
|
142
|
+
| ------- | -------------------------------------- | ---------------------------------------------------------------------------- |
|
|
143
|
+
| `state` | `Signal.State<SnapshotFrom<TMachine>>` | The current XState snapshot. The actor updates it on every active transition |
|
|
144
|
+
|
|
145
|
+
### The capabilities
|
|
146
|
+
|
|
147
|
+
Routing and the view are OPTIONAL, and each one is a mixin behind its own entry point. An application that declares no route loads no routing code, and an application that renders no view loads no view code and installs no json-render.
|
|
148
|
+
|
|
149
|
+
Each capability package is an OPTIONAL peer dependency. Install the one that you compose:
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
pnpm add @xmachines/play-router # for @xmachines/play-xstate/routing
|
|
153
|
+
pnpm add @xmachines/play-view # for @xmachines/play-xstate/view
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
The main entry point of this package names neither. `@xmachines/play-xstate/routing` also
|
|
157
|
+
carries the route utilities — `deriveRoute`, `isAbsoluteRoute`, `buildRouteUrl`,
|
|
158
|
+
`formatPlayRouteTransitions` and the route types — because each one names
|
|
159
|
+
`@xmachines/play-router` in its own types.
|
|
160
|
+
|
|
161
|
+
| Capability | Entry point | Adds | Interface |
|
|
162
|
+
| ---------- | -------------------------------- | ------------------------------ | -------------------------------------- |
|
|
163
|
+
| Routing | `@xmachines/play-xstate/routing` | `currentRoute`, `initialRoute` | `Routable` of `@xmachines/play-router` |
|
|
164
|
+
| View | `@xmachines/play-xstate/view` | `currentView` | `Viewable` of `@xmachines/play-view` |
|
|
165
|
+
|
|
166
|
+
`compose` applies each capability from left to right:
|
|
167
|
+
|
|
168
|
+
```typescript
|
|
169
|
+
import { definePlayer, PlayerActor, compose } from "@xmachines/play-xstate";
|
|
170
|
+
import { withRouting } from "@xmachines/play-xstate/routing";
|
|
171
|
+
import { withView } from "@xmachines/play-xstate/view";
|
|
172
|
+
|
|
173
|
+
// Both capabilities
|
|
174
|
+
const createPlayer = definePlayer({
|
|
175
|
+
machine,
|
|
176
|
+
actor: compose(PlayerActor, withRouting, withView),
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
// Routing alone: `currentView` is a compile error on this actor
|
|
180
|
+
const createRouted = definePlayer({ machine, actor: compose(PlayerActor, withRouting) });
|
|
181
|
+
|
|
182
|
+
// Neither: `state` and `send`
|
|
183
|
+
const createBare = definePlayer({ machine });
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
**Compose `withView` after `withRouting`.** An override calls `super.onSnapshot()` first, so the composition order decides the derivation order: the route holds its new value before the view derives from the same transition. A router bridge therefore sees a guard redirect before a renderer sees the view of the state that the guard refused.
|
|
187
|
+
|
|
188
|
+
**A lifecycle hook receives the bare actor.** `PlayerOptions` is typed before the class is composed, so it cannot name the capabilities, and a narrower hook parameter is refused under `strictFunctionTypes`. A hook that reads `currentRoute` or `currentView` reads them through a binding of the composed type:
|
|
189
|
+
|
|
190
|
+
```typescript
|
|
191
|
+
let composed: PlayerActor<typeof machine> & Routable & Viewable;
|
|
192
|
+
|
|
193
|
+
const actor = definePlayer({
|
|
194
|
+
machine,
|
|
195
|
+
options: { onStateChange: () => console.log(composed.currentRoute.get()) },
|
|
196
|
+
actor: compose(PlayerActor, withRouting, withView),
|
|
197
|
+
})();
|
|
198
|
+
composed = actor;
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
| Signal | Type | Capability | Description |
|
|
202
|
+
| -------------- | --------------------------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
203
|
+
| `currentRoute` | `Signal.Computed<string \| null>` | routing | The URL that comes from the `meta.route` template of the active state and from the context |
|
|
204
|
+
| `initialRoute` | `readonly string \| null` | routing | The route of the initial state of the machine. The construction fixes it, and a router bridge uses it to detect a deep link or a restore |
|
|
205
|
+
| `currentView` | `Signal.State<PlaySpec \| null>` | view | The view spec from the `meta.view` metadata of the active state, with the context params added |
|
|
148
206
|
|
|
149
207
|
#### Methods
|
|
150
208
|
|
|
@@ -155,7 +213,6 @@ This concrete actor class is an XState v5 actor that also exposes reactive TC39
|
|
|
155
213
|
| `send(event)` | Sends a typed event to the machine and calls the `onTransition` hook |
|
|
156
214
|
| `can(event)` | Returns `true` when the current state accepts the given event |
|
|
157
215
|
| `getSnapshot()` | Returns the current XState snapshot |
|
|
158
|
-
| `dispose()` | The alias of `stop()`. Deprecated — call `stop()`, or write `using` |
|
|
159
216
|
| `[DISPOSE]()` | Stops the actor at the end of a `using` scope. The release is `stop()` |
|
|
160
217
|
|
|
161
218
|
#### Signal usage example
|
|
@@ -175,39 +232,26 @@ actor.start();
|
|
|
175
232
|
|
|
176
233
|
---
|
|
177
234
|
|
|
178
|
-
###
|
|
235
|
+
### Guards
|
|
179
236
|
|
|
180
|
-
|
|
181
|
-
> combinators of XState, but they do not compose with a guard slot that
|
|
182
|
-
> `setup()` types. Use the combinators of XState directly. The next major
|
|
183
|
-
> version removes this module.
|
|
184
|
-
|
|
185
|
-
These composable guard helpers wrap the `and()`, `or()`, and `not()` functions of XState. Use them in a machine `setup({ guards })` definition.
|
|
237
|
+
This package gives no guard utility. Compose a guard with the `and()`, `or()` and `not()` combinators of XState:
|
|
186
238
|
|
|
187
239
|
```typescript
|
|
188
|
-
import { setup } from "xstate";
|
|
189
|
-
import {
|
|
190
|
-
composeGuards, // AND logic: all guards must pass
|
|
191
|
-
composeGuardsOr, // OR logic: at least one guard must pass
|
|
192
|
-
negateGuard, // NOT logic: inverts a guard
|
|
193
|
-
hasContext, // guard: context field is present and non-null
|
|
194
|
-
eventMatches, // guard: event type matches a string
|
|
195
|
-
contextFieldMatches, // guard: context field equals a value
|
|
196
|
-
} from "@xmachines/play-xstate";
|
|
240
|
+
import { and, not, setup } from "xstate";
|
|
197
241
|
|
|
198
242
|
const machine = setup({
|
|
199
243
|
guards: {
|
|
200
|
-
isLoggedIn: ({ context }) =>
|
|
244
|
+
isLoggedIn: ({ context }) => context.userId !== "",
|
|
201
245
|
hasAdminRole: ({ context }) => context.role === "admin",
|
|
202
246
|
},
|
|
203
247
|
}).createMachine({
|
|
204
248
|
on: {
|
|
205
249
|
accessAdmin: {
|
|
206
|
-
guard:
|
|
250
|
+
guard: and(["isLoggedIn", "hasAdminRole"]),
|
|
207
251
|
target: "adminPanel",
|
|
208
252
|
},
|
|
209
253
|
accessLogin: {
|
|
210
|
-
guard:
|
|
254
|
+
guard: not("isLoggedIn"),
|
|
211
255
|
target: "login",
|
|
212
256
|
},
|
|
213
257
|
},
|
|
@@ -215,6 +259,10 @@ const machine = setup({
|
|
|
215
259
|
});
|
|
216
260
|
```
|
|
217
261
|
|
|
262
|
+
A combinator resolves each name against the `guards` of `setup()`. A name that the map does not hold therefore fails to compile, and it names the fault: `Type '"typoGuardName"' is not assignable to type '"isLoggedIn"'`.
|
|
263
|
+
|
|
264
|
+
`composeGuards`, `composeGuardsOr`, `negateGuard`, `hasContext`, `eventMatches` and `contextFieldMatches` stood here before. They closed two gaps of the types of XState 5.28. The peer floor of this package is `^5.33.0`, and 5.33 holds neither gap. The helpers also fitted a guard slot that `setup()` types never: the example of this package reached them through an `as never` cast. Write the combinator instead, and write a plain predicate in place of each helper.
|
|
265
|
+
|
|
218
266
|
---
|
|
219
267
|
|
|
220
268
|
### Routing utilities
|
|
@@ -227,7 +275,7 @@ This function reads each machine state that has a `meta.route` field. It then ge
|
|
|
227
275
|
|
|
228
276
|
```typescript
|
|
229
277
|
import { setup } from "xstate";
|
|
230
|
-
import { formatPlayRouteTransitions } from "@xmachines/play-xstate";
|
|
278
|
+
import { formatPlayRouteTransitions } from "@xmachines/play-xstate/routing";
|
|
231
279
|
|
|
232
280
|
const config = formatPlayRouteTransitions({
|
|
233
281
|
id: "app",
|
|
@@ -311,17 +359,75 @@ import type {
|
|
|
311
359
|
PlayerOptions, // Lifecycle hooks (onStart, onStop, onTransition, onStateChange, onError) + inspect
|
|
312
360
|
PlayerFactory, // Factory function returned by definePlayer()
|
|
313
361
|
PlayerFactoryResumeOptions, // { snapshot? } for restoring actor state
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
362
|
+
} from "@xmachines/play-xstate";
|
|
363
|
+
|
|
364
|
+
import type {
|
|
317
365
|
RouteMachineConfig, // Minimal machine config accepted by formatPlayRouteTransitions
|
|
318
366
|
RouteStateNode, // Single state node shape used during route crawling
|
|
319
367
|
RouteContext, // Context shape expected by buildRouteUrl ({ params?, query?, basePath?, hash? })
|
|
320
|
-
RouteObject, // Route metadata object shape: { path
|
|
368
|
+
RouteObject, // Route metadata object shape: { path, reenter?, handler?, data? }
|
|
321
369
|
RouteMetadata, // Union: string | RouteObject
|
|
322
|
-
|
|
370
|
+
RouteData, // The resolved extra data of a route: Record<string, unknown>
|
|
371
|
+
RouteDataResolver, // The function form of RouteObject.data
|
|
372
|
+
} from "@xmachines/play-xstate/routing";
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
`RouteObject`, `RouteMetadata`, `RouteData`, and `RouteDataResolver` have one
|
|
376
|
+
definition, and it lives in `@xmachines/play-router`. `@xmachines/play-xstate/routing`
|
|
377
|
+
re-exports them, so either import path gives you the same type. The MAIN entry point of
|
|
378
|
+
this package re-exports them no longer: it would name an optional peer in the types of
|
|
379
|
+
every consumer, including one that composes no routing.
|
|
380
|
+
|
|
381
|
+
### The object form of `meta.route`
|
|
382
|
+
|
|
383
|
+
The string form declares the path only. The object form declares the path and the
|
|
384
|
+
behaviour of the generated `play.route` transition:
|
|
385
|
+
|
|
386
|
+
```typescript
|
|
387
|
+
meta: {
|
|
388
|
+
route: {
|
|
389
|
+
path: "/doc/:docId",
|
|
390
|
+
// Where the generated transition sits. The default is "root", which is what
|
|
391
|
+
// XState does: every route transition sits on the root of the machine.
|
|
392
|
+
// "root" — one transition on the root. A route from any state arrives.
|
|
393
|
+
// "local" — one transition on the PARENT. The parent keeps its entry action,
|
|
394
|
+
// and a route from outside the parent arrives NOWHERE.
|
|
395
|
+
// "both" — one in each place. The parent keeps its entry action, and a route
|
|
396
|
+
// from outside the parent still arrives.
|
|
397
|
+
handler: "both",
|
|
398
|
+
// Whether the transition re-enters its OWN DOMAIN. The default is false, which
|
|
399
|
+
// is the default of XState. Under `handler: "root"` the domain is the root of
|
|
400
|
+
// the machine, so `false` spares the root alone: each ancestor between the root
|
|
401
|
+
// and the target still runs its exit and its entry actions. `handler` is the
|
|
402
|
+
// field that spares those intermediate ancestors.
|
|
403
|
+
reenter: false,
|
|
404
|
+
// The extra data of the route. The generated transition assigns it to
|
|
405
|
+
// `context.data`. A literal value, or a function of { context, event }.
|
|
406
|
+
data: { titleKey: "doc.view" },
|
|
407
|
+
},
|
|
408
|
+
}
|
|
323
409
|
```
|
|
324
410
|
|
|
411
|
+
An unknown `handler` value throws `InvalidRouteHandlerError` at the format time.
|
|
412
|
+
|
|
413
|
+
> **Upgrading from 3.x: the `reenter` default changed, and a machine that relies on it
|
|
414
|
+
> goes quiet.** An earlier release wrote `reenter: true` on EVERY generated transition,
|
|
415
|
+
> so every routed state re-entered its own domain on each navigation and ran its `entry`
|
|
416
|
+
> actions again. The flag is now what `meta.route` declares, and the default is `false` —
|
|
417
|
+
> which is the default of XState. A state whose `entry` action must run on each
|
|
418
|
+
> navigation has to declare `reenter: true` for itself. Nothing throws, and the action
|
|
419
|
+
> simply stops running.
|
|
420
|
+
|
|
421
|
+
The `data` field follows the `WithDynamicParams` shape of XState, so the function form
|
|
422
|
+
reads the context and the event:
|
|
423
|
+
|
|
424
|
+
```typescript
|
|
425
|
+
data: ({ context, event }) => ({ title: `Document ${event.params?.docId}` });
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
A function does not survive `JSON.stringify`. Use the literal form for a machine that
|
|
429
|
+
Stately Studio reads, or that a process sends over a wire.
|
|
430
|
+
|
|
325
431
|
---
|
|
326
432
|
|
|
327
433
|
## Error Classes
|
|
@@ -331,31 +437,16 @@ The `@xmachines/play-xstate/errors` subpath exports the error classes. The main
|
|
|
331
437
|
```typescript
|
|
332
438
|
import {
|
|
333
439
|
MissingRouteParamError, // Required :param absent from context when resolving currentRoute
|
|
334
|
-
MissingQueryContextError, // deprecated: no longer thrown
|
|
335
440
|
MissingStateIdError, // meta.route declared without a state id field
|
|
336
441
|
InvalidMachineError, // PlayerActor constructed with a non-object machine
|
|
337
442
|
InvalidEventError, // actor.send() called with null/undefined/non-object
|
|
338
443
|
ActorThrewNonErrorError, // actor failed with a thrown value that is not an Error
|
|
339
444
|
InvalidRouteMetadataError, // meta.route is neither a string nor { path: string }
|
|
340
|
-
|
|
445
|
+
InvalidRouteHandlerError, // meta.route.handler is not "root", "local", or "both"
|
|
341
446
|
} from "@xmachines/play-xstate/errors";
|
|
342
447
|
```
|
|
343
448
|
|
|
344
|
-
Every error class extends `PlayError` from `@xmachines/play`. Each class also carries typed detail fields, such as `param`, `template`, and `
|
|
345
|
-
|
|
346
|
-
---
|
|
347
|
-
|
|
348
|
-
## Testing
|
|
349
|
-
|
|
350
|
-
```bash
|
|
351
|
-
# Run tests for this package in isolation
|
|
352
|
-
pnpm --filter @xmachines/play-xstate test
|
|
353
|
-
|
|
354
|
-
# Watch mode
|
|
355
|
-
pnpm --filter @xmachines/play-xstate run test:watch
|
|
356
|
-
```
|
|
357
|
-
|
|
358
|
-
The tests use [Vitest](https://vitest.dev/). They are in `packages/play-xstate/test/`.
|
|
449
|
+
Every error class extends `PlayError` from `@xmachines/play/errors`. Each class also carries typed detail fields, such as `param`, `template`, and `handler`. Your code therefore reads the details of an error, and it does not parse the message.
|
|
359
450
|
|
|
360
451
|
---
|
|
361
452
|
|
|
@@ -363,52 +454,9 @@ The tests use [Vitest](https://vitest.dev/). They are in `packages/play-xstate/t
|
|
|
363
454
|
|
|
364
455
|
MIT — see [LICENSE](LICENSE) for details.
|
|
365
456
|
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
This package gives you the definePlayer() API. That function binds an XState state
|
|
369
|
-
machine to the actor base, with the signal lifecycle and the DevTools
|
|
370
|
-
integration.
|
|
371
|
-
|
|
372
|
-
The Play RFC gives this package as the adapter of the logic layer. It converts a
|
|
373
|
-
declarative machine definition into a live actor with a signal-driven
|
|
374
|
-
reactivity.
|
|
375
|
-
|
|
376
|
-
## Classes
|
|
377
|
-
|
|
378
|
-
- [PlayerActor](classes/PlayerActor.md)
|
|
379
|
-
|
|
380
|
-
## Interfaces
|
|
381
|
-
|
|
382
|
-
- [PlayerConfig](interfaces/PlayerConfig.md)
|
|
383
|
-
- [PlayerFactoryResumeOptions](interfaces/PlayerFactoryResumeOptions.md)
|
|
384
|
-
- [PlayerOptions](interfaces/PlayerOptions.md)
|
|
385
|
-
- [RouteContext](interfaces/RouteContext.md)
|
|
386
|
-
- [RouteObject](interfaces/RouteObject.md)
|
|
387
|
-
|
|
388
|
-
## Type Aliases
|
|
389
|
-
|
|
390
|
-
- [~~ComposedGuard~~](type-aliases/ComposedGuard.md)
|
|
391
|
-
- [~~Guard~~](type-aliases/Guard.md)
|
|
392
|
-
- [~~GuardArray~~](type-aliases/GuardArray.md)
|
|
393
|
-
- [PlayerFactory](type-aliases/PlayerFactory.md)
|
|
394
|
-
- [RouteMachineConfig](type-aliases/RouteMachineConfig.md)
|
|
395
|
-
- [RouteMetadata](type-aliases/RouteMetadata.md)
|
|
396
|
-
- [RouteStateNode](type-aliases/RouteStateNode.md)
|
|
397
|
-
|
|
398
|
-
## Variables
|
|
399
|
-
|
|
400
|
-
- [DISPOSE](variables/DISPOSE.md)
|
|
401
|
-
|
|
402
|
-
## Functions
|
|
457
|
+
## Modules
|
|
403
458
|
|
|
404
|
-
- [
|
|
405
|
-
- [
|
|
406
|
-
- [
|
|
407
|
-
- [
|
|
408
|
-
- [definePlayer](functions/definePlayer.md)
|
|
409
|
-
- [deriveRoute](functions/deriveRoute.md)
|
|
410
|
-
- [~~eventMatches~~](functions/eventMatches.md)
|
|
411
|
-
- [formatPlayRouteTransitions](functions/formatPlayRouteTransitions.md)
|
|
412
|
-
- [~~hasContext~~](functions/hasContext.md)
|
|
413
|
-
- [isAbsoluteRoute](functions/isAbsoluteRoute.md)
|
|
414
|
-
- [~~negateGuard~~](functions/negateGuard.md)
|
|
459
|
+
- [errors](errors/README.md)
|
|
460
|
+
- [index](index/README.md)
|
|
461
|
+
- [with-routing](with-routing/README.md)
|
|
462
|
+
- [with-view](with-view/README.md)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-xstate](../README.md) / errors
|
|
2
|
+
|
|
3
|
+
# errors
|
|
4
|
+
|
|
5
|
+
## Classes
|
|
6
|
+
|
|
7
|
+
- [ActorThrewNonErrorError](classes/ActorThrewNonErrorError.md)
|
|
8
|
+
- [InvalidEventError](classes/InvalidEventError.md)
|
|
9
|
+
- [InvalidMachineError](classes/InvalidMachineError.md)
|
|
10
|
+
- [InvalidRouteHandlerError](classes/InvalidRouteHandlerError.md)
|
|
11
|
+
- [InvalidRouteMetadataError](classes/InvalidRouteMetadataError.md)
|
|
12
|
+
- [MissingRouteParamError](classes/MissingRouteParamError.md)
|
|
13
|
+
- [MissingStateIdError](classes/MissingStateIdError.md)
|