@xmachines/docs 2.2.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 +75 -97
- 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/index/functions/asCleanup.md +78 -0
- 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/index/type-aliases/Cleanup.md +38 -0
- package/api/@xmachines/play/index/type-aliases/DisposeKey.md +32 -0
- package/api/@xmachines/play/{type-aliases → index/type-aliases}/PlayEvent.md +4 -4
- package/api/@xmachines/play/index/variables/DISPOSE.md +34 -0
- package/api/@xmachines/play-actor/README.md +78 -222
- 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 +99 -43
- 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 +6 -6
- package/api/@xmachines/play-dom/functions/createRenderer.md +3 -3
- package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +17 -11
- package/api/@xmachines/play-dom/interfaces/MountOptions.md +5 -4
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +14 -12
- package/api/@xmachines/play-dom/type-aliases/Cleanup.md +38 -0
- package/api/@xmachines/play-dom/type-aliases/MountFn.md +30 -8
- package/api/@xmachines/play-dom-router/README.md +99 -73
- 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 +7 -1
- package/api/@xmachines/play-dom-router/functions/createRouter.md +12 -6
- package/api/@xmachines/play-dom-router/interfaces/BasePathOptions.md +5 -5
- package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +73 -19
- package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +16 -16
- 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 +36 -7
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +40 -6
- package/api/@xmachines/play-dom-router/type-aliases/Cleanup.md +38 -0
- package/api/@xmachines/play-dom-router/variables/DISPOSE.md +34 -0
- package/api/@xmachines/play-react/README.md +18 -40
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +50 -11
- 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 +8 -6
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +6 -5
- 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 +108 -189
- 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 +38 -9
- 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-router/index/variables/DISPOSE.md +34 -0
- 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-dom-router → play-router/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 +5 -25
- package/api/@xmachines/play-signals/functions/watchSignal.md +27 -4
- 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 +38 -0
- package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
- package/api/@xmachines/play-solid/README.md +36 -35
- package/api/@xmachines/play-solid/functions/useActor.md +1 -1
- package/api/@xmachines/play-solid/functions/usePlayView.md +14 -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 +16 -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 +13 -28
- 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 +7 -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 +36 -7
- 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 +36 -7
- 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-view/index/functions/createFailureLatch.md +20 -0
- package/api/@xmachines/play-view/index/functions/createReportGuard.md +26 -0
- 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-view/index/functions/sameViewInputs.md +25 -0
- 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-view/index/interfaces/FailureLatch.md +60 -0
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/PlaySpec.md +8 -8
- package/api/@xmachines/play-view/index/interfaces/ReportGuard.md +92 -0
- package/api/@xmachines/play-view/index/interfaces/ReportGuardMessages.md +18 -0
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/ResolveViewStoreOptions.md +5 -5
- package/api/@xmachines/play-view/index/interfaces/ViewInputs.md +19 -0
- 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 +46 -42
- 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 +6 -1
- package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +13 -8
- package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +15 -10
- 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 +163 -98
- 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-xstate/index/variables/DISPOSE.md +34 -0
- 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 +97 -65
- package/contributing/configuration.md +142 -41
- package/contributing/deployment.md +30 -28
- package/contributing/development.md +94 -31
- package/contributing/testing.md +90 -31
- 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 +47 -44
- package/guides/inspector.md +4 -4
- package/guides/routing.md +245 -0
- package/guides/signals.md +43 -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-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/createRouteMap.md +0 -40
- 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 -34
- 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 -532
- 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
|
@@ -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,17 +4,21 @@
|
|
|
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
|
+
> **Browser floor: Chrome 110, Firefox 115, Safari 16.4.** This package calls the ES2023
|
|
12
|
+
> change-by-copy array methods, so a browser below that floor throws
|
|
13
|
+
> `TypeError: ... is not a function`. The root README carries the table.
|
|
14
|
+
|
|
11
15
|
## Installation
|
|
12
16
|
|
|
13
17
|
```bash
|
|
14
18
|
pnpm add @xmachines/play-xstate xstate
|
|
15
19
|
```
|
|
16
20
|
|
|
17
|
-
`xstate ^5.
|
|
21
|
+
`xstate ^5.33.0` is a peer dependency. Install it with this package.
|
|
18
22
|
|
|
19
23
|
---
|
|
20
24
|
|
|
@@ -22,7 +26,8 @@ pnpm add @xmachines/play-xstate xstate
|
|
|
22
26
|
|
|
23
27
|
```typescript
|
|
24
28
|
import { setup } from "xstate";
|
|
25
|
-
import { definePlayer } from "@xmachines/play-xstate";
|
|
29
|
+
import { definePlayer, compose, PlayerActor } from "@xmachines/play-xstate";
|
|
30
|
+
import { withRouting } from "@xmachines/play-xstate/routing";
|
|
26
31
|
|
|
27
32
|
// 1. Define your XState v5 machine
|
|
28
33
|
const machine = setup({}).createMachine({
|
|
@@ -34,7 +39,7 @@ const machine = setup({}).createMachine({
|
|
|
34
39
|
});
|
|
35
40
|
|
|
36
41
|
// 2. Create a player factory
|
|
37
|
-
const createPlayer = definePlayer({ machine });
|
|
42
|
+
const createPlayer = definePlayer({ machine, actor: compose(PlayerActor, withRouting) });
|
|
38
43
|
|
|
39
44
|
// 3. Instantiate and start an actor
|
|
40
45
|
const actor = createPlayer();
|
|
@@ -129,16 +134,75 @@ console.log(restored.currentRoute.get()); // same route as when saved
|
|
|
129
134
|
|
|
130
135
|
### `PlayerActor<TMachine>`
|
|
131
136
|
|
|
132
|
-
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`.
|
|
133
138
|
|
|
134
139
|
#### Signals
|
|
135
140
|
|
|
136
|
-
| Signal
|
|
137
|
-
|
|
|
138
|
-
| `state`
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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 |
|
|
142
206
|
|
|
143
207
|
#### Methods
|
|
144
208
|
|
|
@@ -149,7 +213,7 @@ This concrete actor class is an XState v5 actor that also exposes reactive TC39
|
|
|
149
213
|
| `send(event)` | Sends a typed event to the machine and calls the `onTransition` hook |
|
|
150
214
|
| `can(event)` | Returns `true` when the current state accepts the given event |
|
|
151
215
|
| `getSnapshot()` | Returns the current XState snapshot |
|
|
152
|
-
| `
|
|
216
|
+
| `[DISPOSE]()` | Stops the actor at the end of a `using` scope. The release is `stop()` |
|
|
153
217
|
|
|
154
218
|
#### Signal usage example
|
|
155
219
|
|
|
@@ -168,39 +232,26 @@ actor.start();
|
|
|
168
232
|
|
|
169
233
|
---
|
|
170
234
|
|
|
171
|
-
###
|
|
172
|
-
|
|
173
|
-
> **Deprecated:** these guard helpers wrap the `and()`, `or()`, and `not()`
|
|
174
|
-
> combinators of XState, but they do not compose with a guard slot that
|
|
175
|
-
> `setup()` types. Use the combinators of XState directly. The next major
|
|
176
|
-
> version removes this module.
|
|
235
|
+
### Guards
|
|
177
236
|
|
|
178
|
-
|
|
237
|
+
This package gives no guard utility. Compose a guard with the `and()`, `or()` and `not()` combinators of XState:
|
|
179
238
|
|
|
180
239
|
```typescript
|
|
181
|
-
import { setup } from "xstate";
|
|
182
|
-
import {
|
|
183
|
-
composeGuards, // AND logic: all guards must pass
|
|
184
|
-
composeGuardsOr, // OR logic: at least one guard must pass
|
|
185
|
-
negateGuard, // NOT logic: inverts a guard
|
|
186
|
-
hasContext, // guard: context field is present and non-null
|
|
187
|
-
eventMatches, // guard: event type matches a string
|
|
188
|
-
contextFieldMatches, // guard: context field equals a value
|
|
189
|
-
} from "@xmachines/play-xstate";
|
|
240
|
+
import { and, not, setup } from "xstate";
|
|
190
241
|
|
|
191
242
|
const machine = setup({
|
|
192
243
|
guards: {
|
|
193
|
-
isLoggedIn: ({ context }) =>
|
|
244
|
+
isLoggedIn: ({ context }) => context.userId !== "",
|
|
194
245
|
hasAdminRole: ({ context }) => context.role === "admin",
|
|
195
246
|
},
|
|
196
247
|
}).createMachine({
|
|
197
248
|
on: {
|
|
198
249
|
accessAdmin: {
|
|
199
|
-
guard:
|
|
250
|
+
guard: and(["isLoggedIn", "hasAdminRole"]),
|
|
200
251
|
target: "adminPanel",
|
|
201
252
|
},
|
|
202
253
|
accessLogin: {
|
|
203
|
-
guard:
|
|
254
|
+
guard: not("isLoggedIn"),
|
|
204
255
|
target: "login",
|
|
205
256
|
},
|
|
206
257
|
},
|
|
@@ -208,6 +259,10 @@ const machine = setup({
|
|
|
208
259
|
});
|
|
209
260
|
```
|
|
210
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
|
+
|
|
211
266
|
---
|
|
212
267
|
|
|
213
268
|
### Routing utilities
|
|
@@ -220,7 +275,7 @@ This function reads each machine state that has a `meta.route` field. It then ge
|
|
|
220
275
|
|
|
221
276
|
```typescript
|
|
222
277
|
import { setup } from "xstate";
|
|
223
|
-
import { formatPlayRouteTransitions } from "@xmachines/play-xstate";
|
|
278
|
+
import { formatPlayRouteTransitions } from "@xmachines/play-xstate/routing";
|
|
224
279
|
|
|
225
280
|
const config = formatPlayRouteTransitions({
|
|
226
281
|
id: "app",
|
|
@@ -251,6 +306,12 @@ const machine = setup({}).createMachine(config);
|
|
|
251
306
|
| `isAbsoluteRoute(route)` | Returns `true` when the route string is an absolute URL path |
|
|
252
307
|
| `buildRouteUrl(template, context)` | Replaces each `:param` placeholder of a route template with a context value |
|
|
253
308
|
|
|
309
|
+
#### The release protocol
|
|
310
|
+
|
|
311
|
+
`DISPOSE` comes from [`@xmachines/play`](../play/README.md), and this package re-exports
|
|
312
|
+
it, because `PlayerActor` carries `[DISPOSE]`: a scope releases an actor with `using` and
|
|
313
|
+
writes no teardown.
|
|
314
|
+
|
|
254
315
|
---
|
|
255
316
|
|
|
256
317
|
## Inspection
|
|
@@ -298,17 +359,75 @@ import type {
|
|
|
298
359
|
PlayerOptions, // Lifecycle hooks (onStart, onStop, onTransition, onStateChange, onError) + inspect
|
|
299
360
|
PlayerFactory, // Factory function returned by definePlayer()
|
|
300
361
|
PlayerFactoryResumeOptions, // { snapshot? } for restoring actor state
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
362
|
+
} from "@xmachines/play-xstate";
|
|
363
|
+
|
|
364
|
+
import type {
|
|
304
365
|
RouteMachineConfig, // Minimal machine config accepted by formatPlayRouteTransitions
|
|
305
366
|
RouteStateNode, // Single state node shape used during route crawling
|
|
306
367
|
RouteContext, // Context shape expected by buildRouteUrl ({ params?, query?, basePath?, hash? })
|
|
307
|
-
RouteObject, // Route metadata object shape: { path
|
|
368
|
+
RouteObject, // Route metadata object shape: { path, reenter?, handler?, data? }
|
|
308
369
|
RouteMetadata, // Union: string | RouteObject
|
|
309
|
-
|
|
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
|
+
}
|
|
310
409
|
```
|
|
311
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
|
+
|
|
312
431
|
---
|
|
313
432
|
|
|
314
433
|
## Error Classes
|
|
@@ -318,31 +437,16 @@ The `@xmachines/play-xstate/errors` subpath exports the error classes. The main
|
|
|
318
437
|
```typescript
|
|
319
438
|
import {
|
|
320
439
|
MissingRouteParamError, // Required :param absent from context when resolving currentRoute
|
|
321
|
-
MissingQueryContextError, // deprecated: no longer thrown
|
|
322
440
|
MissingStateIdError, // meta.route declared without a state id field
|
|
323
441
|
InvalidMachineError, // PlayerActor constructed with a non-object machine
|
|
324
442
|
InvalidEventError, // actor.send() called with null/undefined/non-object
|
|
325
443
|
ActorThrewNonErrorError, // actor failed with a thrown value that is not an Error
|
|
326
444
|
InvalidRouteMetadataError, // meta.route is neither a string nor { path: string }
|
|
327
|
-
|
|
445
|
+
InvalidRouteHandlerError, // meta.route.handler is not "root", "local", or "both"
|
|
328
446
|
} from "@xmachines/play-xstate/errors";
|
|
329
447
|
```
|
|
330
448
|
|
|
331
|
-
Every error class extends `PlayError` from `@xmachines/play`. Each class also carries typed detail fields, such as `param`, `template`, and `
|
|
332
|
-
|
|
333
|
-
---
|
|
334
|
-
|
|
335
|
-
## Testing
|
|
336
|
-
|
|
337
|
-
```bash
|
|
338
|
-
# Run tests for this package in isolation
|
|
339
|
-
pnpm --filter @xmachines/play-xstate test
|
|
340
|
-
|
|
341
|
-
# Watch mode
|
|
342
|
-
pnpm --filter @xmachines/play-xstate run test:watch
|
|
343
|
-
```
|
|
344
|
-
|
|
345
|
-
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.
|
|
346
450
|
|
|
347
451
|
---
|
|
348
452
|
|
|
@@ -350,48 +454,9 @@ The tests use [Vitest](https://vitest.dev/). They are in `packages/play-xstate/t
|
|
|
350
454
|
|
|
351
455
|
MIT — see [LICENSE](LICENSE) for details.
|
|
352
456
|
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
This package gives you the definePlayer() API. That function binds an XState state
|
|
356
|
-
machine to the actor base, with the signal lifecycle and the DevTools
|
|
357
|
-
integration.
|
|
358
|
-
|
|
359
|
-
The Play RFC gives this package as the adapter of the logic layer. It converts a
|
|
360
|
-
declarative machine definition into a live actor with a signal-driven
|
|
361
|
-
reactivity.
|
|
362
|
-
|
|
363
|
-
## Classes
|
|
364
|
-
|
|
365
|
-
- [PlayerActor](classes/PlayerActor.md)
|
|
366
|
-
|
|
367
|
-
## Interfaces
|
|
368
|
-
|
|
369
|
-
- [PlayerConfig](interfaces/PlayerConfig.md)
|
|
370
|
-
- [PlayerFactoryResumeOptions](interfaces/PlayerFactoryResumeOptions.md)
|
|
371
|
-
- [PlayerOptions](interfaces/PlayerOptions.md)
|
|
372
|
-
- [RouteContext](interfaces/RouteContext.md)
|
|
373
|
-
- [RouteObject](interfaces/RouteObject.md)
|
|
374
|
-
|
|
375
|
-
## Type Aliases
|
|
376
|
-
|
|
377
|
-
- [~~ComposedGuard~~](type-aliases/ComposedGuard.md)
|
|
378
|
-
- [~~Guard~~](type-aliases/Guard.md)
|
|
379
|
-
- [~~GuardArray~~](type-aliases/GuardArray.md)
|
|
380
|
-
- [PlayerFactory](type-aliases/PlayerFactory.md)
|
|
381
|
-
- [RouteMachineConfig](type-aliases/RouteMachineConfig.md)
|
|
382
|
-
- [RouteMetadata](type-aliases/RouteMetadata.md)
|
|
383
|
-
- [RouteStateNode](type-aliases/RouteStateNode.md)
|
|
384
|
-
|
|
385
|
-
## Functions
|
|
457
|
+
## Modules
|
|
386
458
|
|
|
387
|
-
- [
|
|
388
|
-
- [
|
|
389
|
-
- [
|
|
390
|
-
- [
|
|
391
|
-
- [definePlayer](functions/definePlayer.md)
|
|
392
|
-
- [deriveRoute](functions/deriveRoute.md)
|
|
393
|
-
- [~~eventMatches~~](functions/eventMatches.md)
|
|
394
|
-
- [formatPlayRouteTransitions](functions/formatPlayRouteTransitions.md)
|
|
395
|
-
- [~~hasContext~~](functions/hasContext.md)
|
|
396
|
-
- [isAbsoluteRoute](functions/isAbsoluteRoute.md)
|
|
397
|
-
- [~~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)
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
[API](../../../../README.md) / [@xmachines/play-xstate](../../README.md) / [errors](../README.md) / ActorThrewNonErrorError
|
|
2
|
+
|
|
3
|
+
# Class: ActorThrewNonErrorError
|
|
4
|
+
|
|
5
|
+
Defined in: [packages/play-xstate/src/errors.ts:295](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-xstate/src/errors.ts#L295)
|
|
6
|
+
|
|
7
|
+
The actor gives this error to `PlayerOptions.onError` when it failed with a value
|
|
8
|
+
that is not an `Error`, for example after a machine action ran
|
|
9
|
+
`throw { code: 42 }`.
|
|
10
|
+
|
|
11
|
+
An actor error that _is_ an `Error` reaches `onError` without a change, and it
|
|
12
|
+
keeps the identity of the machine. This case alone builds a new error. The new
|
|
13
|
+
error therefore carries a code that your code can match, and not a
|
|
14
|
+
`String(value)` message such as `"[object Object]"`. The `cause` field holds the
|
|
15
|
+
value from the throw.
|
|
16
|
+
|
|
17
|
+
**Error code:** `PLAY_XSTATE_NON_ERROR_THROWN`
|
|
18
|
+
|
|
19
|
+
## Example
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
import { ActorThrewNonErrorError } from "@xmachines/play-xstate/errors";
|
|
23
|
+
|
|
24
|
+
definePlayer({
|
|
25
|
+
machine,
|
|
26
|
+
options: {
|
|
27
|
+
onError: (actor, err) => {
|
|
28
|
+
if (err instanceof ActorThrewNonErrorError) {
|
|
29
|
+
// err.cause is the value that the machine threw
|
|
30
|
+
console.error("Machine threw a non-Error:", err.cause);
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Extends
|
|
38
|
+
|
|
39
|
+
- [`PlayError`](../../../play/errors/classes/PlayError.md)
|
|
40
|
+
|
|
41
|
+
## Constructors
|
|
42
|
+
|
|
43
|
+
### Constructor
|
|
44
|
+
|
|
45
|
+
```ts
|
|
46
|
+
new ActorThrewNonErrorError(value): ActorThrewNonErrorError;
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Defined in: [packages/play-xstate/src/errors.ts:296](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-xstate/src/errors.ts#L296)
|
|
50
|
+
|
|
51
|
+
#### Parameters
|
|
52
|
+
|
|
53
|
+
| Parameter | Type |
|
|
54
|
+
| --------- | --------- |
|
|
55
|
+
| `value` | `unknown` |
|
|
56
|
+
|
|
57
|
+
#### Returns
|
|
58
|
+
|
|
59
|
+
`ActorThrewNonErrorError`
|
|
60
|
+
|
|
61
|
+
#### Overrides
|
|
62
|
+
|
|
63
|
+
[`PlayError`](../../../play/errors/classes/PlayError.md).[`constructor`](../../../play/errors/classes/PlayError.md#constructor)
|
|
64
|
+
|
|
65
|
+
## Properties
|
|
66
|
+
|
|
67
|
+
| Property | Modifier | Type | Description | Inherited from | Defined in |
|
|
68
|
+
| ------------------------------------------------------- | ---------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------- |
|
|
69
|
+
| <a id="property-cause"></a> `cause?` | `public` | `unknown` | - | [`PlayError`](../../../play/errors/classes/PlayError.md).[`cause`](../../../play/errors/classes/PlayError.md#property-cause) | - |
|
|
70
|
+
| <a id="property-code"></a> `code` | `readonly` | `string` | A stable, machine-readable identifier of the error. An error code follows the naming convention `PLAY_<PACKAGE>_<DESCRIPTION>`. It stays the same across each patch release and each minor release of one major version. Never match on `.message`. Always match on `.code`, or on the subclass. | [`PlayError`](../../../play/errors/classes/PlayError.md).[`code`](../../../play/errors/classes/PlayError.md#property-code) | [packages/play/src/errors.ts:76](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play/src/errors.ts#L76) |
|
|
71
|
+
| <a id="property-message"></a> `message` | `public` | `string` | - | [`PlayError`](../../../play/errors/classes/PlayError.md).[`message`](../../../play/errors/classes/PlayError.md#property-message) | - |
|
|
72
|
+
| <a id="property-name"></a> `name` | `public` | `string` | - | [`PlayError`](../../../play/errors/classes/PlayError.md).[`name`](../../../play/errors/classes/PlayError.md#property-name) | - |
|
|
73
|
+
| <a id="property-scope"></a> `scope` | `readonly` | `string` | The class or the module that threw this error, for example `"RouterBridgeBase"`. | [`PlayError`](../../../play/errors/classes/PlayError.md).[`scope`](../../../play/errors/classes/PlayError.md#property-scope) | [packages/play/src/errors.ts:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play/src/errors.ts#L66) |
|
|
74
|
+
| <a id="property-stack"></a> `stack?` | `public` | `string` | - | [`PlayError`](../../../play/errors/classes/PlayError.md).[`stack`](../../../play/errors/classes/PlayError.md#property-stack) | - |
|
|
75
|
+
| <a id="property-stacktracelimit"></a> `stackTraceLimit` | `static` | `number` | The `Error.stackTraceLimit` property specifies the number of stack frames collected by a stack trace (whether generated by `new Error().stack` or `Error.captureStackTrace(obj)`). The default value is `10` but may be set to any valid JavaScript number. Changes will affect any stack trace captured _after_ the value has been changed. If set to a non-number value, or set to a negative number, stack traces will not capture any frames. | [`PlayError`](../../../play/errors/classes/PlayError.md).[`stackTraceLimit`](../../../play/errors/classes/PlayError.md#property-stacktracelimit) | - |
|
|
76
|
+
|
|
77
|
+
## Methods
|
|
78
|
+
|
|
79
|
+
### captureStackTrace()
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
static captureStackTrace(targetObject, constructorOpt?): void;
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Defined in: `@types/node`
|
|
86
|
+
|
|
87
|
+
Creates a `.stack` property on `targetObject`, which when accessed returns
|
|
88
|
+
a string representing the location in the code at which
|
|
89
|
+
`Error.captureStackTrace()` was called.
|
|
90
|
+
|
|
91
|
+
```js
|
|
92
|
+
const myObject = {};
|
|
93
|
+
Error.captureStackTrace(myObject);
|
|
94
|
+
myObject.stack; // Similar to `new Error().stack`
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
The first line of the trace will be prefixed with
|
|
98
|
+
`${myObject.name}: ${myObject.message}`.
|
|
99
|
+
|
|
100
|
+
The optional `constructorOpt` argument accepts a function. If given, all frames
|
|
101
|
+
above `constructorOpt`, including `constructorOpt`, will be omitted from the
|
|
102
|
+
generated stack trace.
|
|
103
|
+
|
|
104
|
+
The `constructorOpt` argument is useful for hiding implementation
|
|
105
|
+
details of error generation from the user. For instance:
|
|
106
|
+
|
|
107
|
+
```js
|
|
108
|
+
function a() {
|
|
109
|
+
b();
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
function b() {
|
|
113
|
+
c();
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
function c() {
|
|
117
|
+
// Create an error without stack trace to avoid calculating the stack trace twice.
|
|
118
|
+
const { stackTraceLimit } = Error;
|
|
119
|
+
Error.stackTraceLimit = 0;
|
|
120
|
+
const error = new Error();
|
|
121
|
+
Error.stackTraceLimit = stackTraceLimit;
|
|
122
|
+
|
|
123
|
+
// Capture the stack trace above function b
|
|
124
|
+
Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
|
|
125
|
+
throw error;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
a();
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
#### Parameters
|
|
132
|
+
|
|
133
|
+
| Parameter | Type |
|
|
134
|
+
| ----------------- | ---------- |
|
|
135
|
+
| `targetObject` | `object` |
|
|
136
|
+
| `constructorOpt?` | `Function` |
|
|
137
|
+
|
|
138
|
+
#### Returns
|
|
139
|
+
|
|
140
|
+
`void`
|
|
141
|
+
|
|
142
|
+
#### Inherited from
|
|
143
|
+
|
|
144
|
+
[`PlayError`](../../../play/errors/classes/PlayError.md).[`captureStackTrace`](../../../play/errors/classes/PlayError.md#capturestacktrace)
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
### isError()
|
|
149
|
+
|
|
150
|
+
```ts
|
|
151
|
+
static isError(error): error is Error;
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Defined in: `typescript`
|
|
155
|
+
|
|
156
|
+
Indicates whether the argument provided is a built-in Error instance or not.
|
|
157
|
+
|
|
158
|
+
#### Parameters
|
|
159
|
+
|
|
160
|
+
| Parameter | Type |
|
|
161
|
+
| --------- | --------- |
|
|
162
|
+
| `error` | `unknown` |
|
|
163
|
+
|
|
164
|
+
#### Returns
|
|
165
|
+
|
|
166
|
+
`error is Error`
|
|
167
|
+
|
|
168
|
+
#### Inherited from
|
|
169
|
+
|
|
170
|
+
[`PlayError`](../../../play/errors/classes/PlayError.md).[`isError`](../../../play/errors/classes/PlayError.md#iserror)
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
### prepareStackTrace()
|
|
175
|
+
|
|
176
|
+
```ts
|
|
177
|
+
static prepareStackTrace(err, stackTraces): any;
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Defined in: `@types/node`
|
|
181
|
+
|
|
182
|
+
#### Parameters
|
|
183
|
+
|
|
184
|
+
| Parameter | Type |
|
|
185
|
+
| ------------- | ------------ |
|
|
186
|
+
| `err` | `Error` |
|
|
187
|
+
| `stackTraces` | `CallSite`[] |
|
|
188
|
+
|
|
189
|
+
#### Returns
|
|
190
|
+
|
|
191
|
+
`any`
|
|
192
|
+
|
|
193
|
+
#### See
|
|
194
|
+
|
|
195
|
+
https://v8.dev/docs/stack-trace-api#customizing-stack-traces
|
|
196
|
+
|
|
197
|
+
#### Inherited from
|
|
198
|
+
|
|
199
|
+
[`PlayError`](../../../play/errors/classes/PlayError.md).[`prepareStackTrace`](../../../play/errors/classes/PlayError.md#preparestacktrace)
|