@xmachines/docs 5.0.2 → 6.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 +4 -1
- package/api/@xmachines/core/README.md +209 -0
- package/api/@xmachines/core/cache/README.md +17 -0
- package/api/@xmachines/core/cache/functions/createLruCache.md +52 -0
- package/api/@xmachines/core/cache/interfaces/KeyValueCache.md +61 -0
- package/api/@xmachines/core/errors/README.md +11 -0
- package/api/@xmachines/core/errors/classes/BaseError.md +226 -0
- package/api/@xmachines/core/errors/classes/DisposeConflictError.md +177 -0
- package/api/@xmachines/core/utils/README.md +33 -0
- package/api/@xmachines/core/utils/functions/asDisposable.md +139 -0
- package/api/@xmachines/core/utils/functions/createNullRecord.md +39 -0
- package/api/@xmachines/core/utils/functions/createWarnOnce.md +39 -0
- package/api/@xmachines/core/utils/functions/describeValue.md +39 -0
- package/api/@xmachines/core/utils/functions/isError.md +46 -0
- package/api/@xmachines/core/utils/functions/isThenable.md +43 -0
- package/api/@xmachines/core/utils/functions/releaseQuietly.md +37 -0
- package/api/@xmachines/core/utils/functions/rethrowLater.md +43 -0
- package/api/@xmachines/core/utils/functions/safeString.md +36 -0
- package/api/@xmachines/core/utils/functions/shallowEqualExcept.md +42 -0
- package/api/@xmachines/core/utils/type-aliases/DisposeKey.md +28 -0
- package/api/@xmachines/core/utils/type-aliases/DisposeMember.md +14 -0
- package/api/@xmachines/{play-router/index → core/utils}/variables/DISPOSE.md +9 -9
- package/api/@xmachines/play/README.md +18 -69
- package/api/@xmachines/play/errors/classes/NonNullableError.md +4 -4
- package/api/@xmachines/play/errors/classes/PlayError.md +30 -34
- package/api/@xmachines/play/index/README.md +0 -8
- package/api/@xmachines/play/index/functions/assertNonNullable.md +1 -1
- package/api/@xmachines/play/index/type-aliases/PlayEvent.md +2 -2
- package/api/@xmachines/play-actor/README.md +1 -1
- package/api/@xmachines/play-actor/interfaces/ActorEvent.md +2 -2
- package/api/@xmachines/play-actor/interfaces/PlayActor.md +3 -3
- package/api/@xmachines/play-atom/README.md +34 -25
- package/api/@xmachines/play-atom/functions/watchAtom.md +8 -8
- package/api/@xmachines/play-atom/interfaces/AsyncAtomOptions.md +4 -4
- package/api/@xmachines/play-atom/interfaces/Atom.md +6 -6
- package/api/@xmachines/play-atom/interfaces/AtomObserver.md +6 -6
- package/api/@xmachines/play-atom/interfaces/AtomOptions.md +4 -4
- package/api/@xmachines/play-atom/interfaces/AtomSubscription.md +2 -2
- package/api/@xmachines/play-atom/interfaces/BaseAtom.md +4 -4
- package/api/@xmachines/play-atom/interfaces/CreateAtom.md +3 -3
- package/api/@xmachines/play-atom/interfaces/Readable.md +4 -4
- package/api/@xmachines/play-atom/interfaces/ReadonlyAtom.md +4 -4
- package/api/@xmachines/play-atom/type-aliases/AnyAtom.md +1 -1
- package/api/@xmachines/play-atom/type-aliases/AsyncAtomState.md +1 -1
- package/api/@xmachines/play-atom/variables/createAsyncAtom.md +1 -1
- package/api/@xmachines/play-atom/variables/createAtom.md +1 -1
- package/api/@xmachines/play-atom/variables/createWritableAtom.md +1 -1
- package/api/@xmachines/play-dom/README.md +32 -34
- package/api/@xmachines/play-dom/classes/PlayRenderer.md +4 -4
- package/api/@xmachines/play-dom/functions/createPlayUI.md +1 -1
- package/api/@xmachines/play-dom/functions/createRenderer.md +3 -3
- package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +11 -11
- package/api/@xmachines/play-dom/interfaces/MountOptions.md +3 -3
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +14 -14
- package/api/@xmachines/play-dom/type-aliases/MountFn.md +6 -17
- package/api/@xmachines/play-dom-router/README.md +28 -45
- package/api/@xmachines/play-dom-router/classes/DomRouterBridge.md +13 -13
- package/api/@xmachines/play-dom-router/classes/RouteMap.md +5 -6
- package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +5 -3
- package/api/@xmachines/play-dom-router/functions/createRouter.md +5 -3
- package/api/@xmachines/play-dom-router/interfaces/BasePathOptions.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +21 -67
- package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +16 -16
- package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +10 -10
- package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +6 -6
- package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +5 -5
- package/api/@xmachines/play-dom-router/interfaces/RouterConnection.md +12 -31
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +12 -27
- package/api/@xmachines/play-pattern/README.md +10 -6
- package/api/@xmachines/play-pattern/functions/buildPath.md +1 -1
- package/api/@xmachines/play-pattern/functions/{createPatternCache.md → createLruCache.md} +19 -14
- package/api/@xmachines/play-pattern/functions/getIndexKey.md +1 -1
- package/api/@xmachines/play-pattern/functions/isDotSegment.md +1 -1
- package/api/@xmachines/play-pattern/functions/parsePattern.md +1 -1
- package/api/@xmachines/play-pattern/interfaces/GroupPart.md +6 -6
- package/api/@xmachines/play-pattern/interfaces/KeyValueCache.md +61 -0
- package/api/@xmachines/play-pattern/interfaces/LiteralPart.md +5 -5
- package/api/@xmachines/play-pattern/interfaces/ParamPart.md +9 -9
- package/api/@xmachines/play-pattern/interfaces/ParseOptions.md +4 -4
- package/api/@xmachines/play-pattern/interfaces/ParsedPattern.md +14 -14
- package/api/@xmachines/play-pattern/interfaces/PatternParam.md +6 -6
- package/api/@xmachines/play-pattern/type-aliases/PathBuildResult.md +1 -1
- package/api/@xmachines/play-pattern/type-aliases/PathParams.md +1 -1
- package/api/@xmachines/play-pattern/type-aliases/PatternModifier.md +1 -1
- package/api/@xmachines/play-pattern/type-aliases/PatternPart.md +1 -1
- package/api/@xmachines/play-react/README.md +4 -4
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +6 -6
- package/api/@xmachines/play-react/functions/useActor.md +1 -1
- package/api/@xmachines/play-react/functions/useAtomEffect.md +1 -1
- package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +10 -10
- 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 +5 -5
- package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +1 -1
- 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-router/README.md +4 -2
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +7 -7
- package/api/@xmachines/play-react-router/classes/RouteMap.md +5 -6
- package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +11 -11
- package/api/@xmachines/play-react-router/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +6 -6
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +5 -5
- package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
- package/api/@xmachines/play-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
- package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-router/README.md +14 -13
- package/api/@xmachines/play-router/errors/classes/DuplicateBridgeError.md +4 -4
- package/api/@xmachines/play-router/errors/classes/DuplicateRoutePathError.md +5 -5
- package/api/@xmachines/play-router/errors/classes/EmptyRoutePathError.md +5 -5
- package/api/@xmachines/play-router/errors/classes/InvalidBasePathError.md +5 -5
- package/api/@xmachines/play-router/errors/classes/InvalidRoutePatternError.md +5 -5
- package/api/@xmachines/play-router/errors/classes/InvalidStateIdError.md +5 -5
- package/api/@xmachines/play-router/errors/classes/MissingBasePathParamError.md +6 -6
- package/api/@xmachines/play-router/errors/classes/RouterSyncError.md +4 -4
- package/api/@xmachines/play-router/errors/classes/UnknownStateTypeError.md +6 -6
- package/api/@xmachines/play-router/index/README.md +2 -3
- package/api/@xmachines/play-router/index/classes/RouteMap.md +5 -6
- package/api/@xmachines/play-router/index/classes/RouterBridgeBase.md +7 -7
- package/api/@xmachines/play-router/index/functions/buildPlayRouteEvent.md +1 -1
- package/api/@xmachines/play-router/index/functions/buildRouteTree.md +1 -1
- package/api/@xmachines/play-router/index/functions/cleanFrameworkParams.md +1 -1
- package/api/@xmachines/play-router/index/functions/{createPatternCache.md → createLruCache.md} +19 -14
- package/api/@xmachines/play-router/index/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-router/index/functions/createRouterConnection.md +1 -1
- package/api/@xmachines/play-router/index/functions/detectDuplicateRoutes.md +1 -1
- package/api/@xmachines/play-router/index/functions/extractQuery.md +1 -1
- package/api/@xmachines/play-router/index/functions/extractRouteParams.md +1 -1
- package/api/@xmachines/play-router/index/functions/findRouteById.md +1 -1
- package/api/@xmachines/play-router/index/functions/findRouteByPath.md +3 -3
- package/api/@xmachines/play-router/index/functions/isMountableBridge.md +1 -1
- package/api/@xmachines/play-router/index/functions/joinBasePath.md +1 -1
- package/api/@xmachines/play-router/index/functions/mountKey.md +1 -1
- package/api/@xmachines/play-router/index/functions/normalizeBasePath.md +1 -1
- package/api/@xmachines/play-router/index/functions/openProviderBridge.md +3 -3
- package/api/@xmachines/play-router/index/functions/parsePattern.md +1 -1
- package/api/@xmachines/play-router/index/functions/pickOwnParams.md +1 -1
- package/api/@xmachines/play-router/index/functions/repointProviderBridge.md +1 -1
- package/api/@xmachines/play-router/index/functions/resolveBasePath.md +1 -1
- package/api/@xmachines/play-router/index/functions/resolveFrameworkParams.md +1 -1
- package/api/@xmachines/play-router/index/functions/sanitizePathname.md +1 -1
- package/api/@xmachines/play-router/index/functions/splitLocation.md +1 -1
- package/api/@xmachines/play-router/index/functions/stripBasePath.md +1 -1
- package/api/@xmachines/play-router/index/functions/validateRouteFormat.md +1 -1
- package/api/@xmachines/play-router/index/functions/validateStateExists.md +1 -1
- package/api/@xmachines/play-router/index/interfaces/BasePathOptions.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/BuildPlayRouteEventOptions.md +4 -4
- package/api/@xmachines/play-router/index/interfaces/CompileOptions.md +5 -5
- package/api/@xmachines/play-router/index/interfaces/FrameworkParamsSource.md +9 -9
- package/api/@xmachines/play-router/index/interfaces/KeyValueCache.md +61 -0
- package/api/@xmachines/play-router/index/interfaces/LocationLike.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/MountableRouterBridge.md +6 -6
- package/api/@xmachines/play-router/index/interfaces/OpenProviderBridgeArgs.md +10 -10
- package/api/@xmachines/play-router/index/interfaces/ParseOptions.md +4 -4
- package/api/@xmachines/play-router/index/interfaces/ParsedPattern.md +12 -12
- package/api/@xmachines/play-router/index/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-router/index/interfaces/PlayRouterProviderBaseProps.md +11 -11
- package/api/@xmachines/play-router/index/interfaces/ResolvedBasePath.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/ResolvedRoutePath.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/Routable.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-router/index/interfaces/RouteInfo.md +8 -8
- package/api/@xmachines/play-router/index/interfaces/RouteMapOptions.md +6 -6
- package/api/@xmachines/play-router/index/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/RouteMatch.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/RouteNode.md +10 -10
- package/api/@xmachines/play-router/index/interfaces/RouteObject.md +5 -5
- package/api/@xmachines/play-router/index/interfaces/RouteTree.md +5 -5
- package/api/@xmachines/play-router/index/interfaces/RouteWatcherHandle.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/RouterBridge.md +5 -5
- package/api/@xmachines/play-router/index/interfaces/RouterBridgeOptions.md +7 -7
- package/api/@xmachines/play-router/index/interfaces/RouterConnection.md +12 -31
- package/api/@xmachines/play-router/index/interfaces/SplitLocation.md +5 -5
- package/api/@xmachines/play-router/index/interfaces/WindowLike.md +3 -3
- package/api/@xmachines/play-router/index/type-aliases/PlayRouterBridgeConstructor.md +1 -1
- package/api/@xmachines/play-router/index/type-aliases/RouteData.md +1 -1
- package/api/@xmachines/play-router/index/type-aliases/RouteDataResolver.md +1 -1
- package/api/@xmachines/play-router/index/type-aliases/RouteMetadata.md +1 -1
- package/api/@xmachines/play-router/index/type-aliases/URLPatternLike.md +3 -3
- package/api/@xmachines/play-router/index/variables/NO_BASE_PATH.md +1 -1
- package/api/@xmachines/play-router/index/variables/ROOT_NODE_ID.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/extractMachineRoutes.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/getNavigableRoutes.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/getRoutableRoutes.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/getRouteMappings.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/getTransitionReachableRoutes.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/isRouteReachable.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/machineToGraph.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/routeExists.md +1 -1
- package/api/@xmachines/play-router/xstate/interfaces/MachineEdgeData.md +3 -3
- package/api/@xmachines/play-router/xstate/interfaces/MachineNodeData.md +5 -5
- package/api/@xmachines/play-router/xstate/type-aliases/MachineGraph.md +1 -1
- package/api/@xmachines/play-solid/README.md +2 -2
- 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 +10 -10
- package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +13 -13
- package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +1 -1
- 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-router/README.md +4 -2
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +5 -6
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +7 -7
- package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +3 -3
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +11 -11
- package/api/@xmachines/play-solid-router/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +6 -6
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +5 -5
- package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
- package/api/@xmachines/play-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
- package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
- package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-svelte/README.md +3 -3
- 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 +10 -10
- package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +4 -4
- package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +13 -13
- package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +1 -1
- package/api/@xmachines/play-svelte-spa-router/README.md +4 -2
- package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +5 -6
- package/api/@xmachines/play-svelte-spa-router/classes/SvelteSpaRouterBridge.md +7 -7
- package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-svelte-spa-router/interfaces/BasePathOptions.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +10 -10
- package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-svelte-spa-router/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +6 -6
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +5 -5
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterConnection.md +12 -31
- package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
- package/api/@xmachines/play-sveltekit-router/README.md +4 -2
- package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +5 -6
- package/api/@xmachines/play-sveltekit-router/classes/SvelteKitRouterBridge.md +7 -7
- package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-sveltekit-router/interfaces/BasePathOptions.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +10 -10
- package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-sveltekit-router/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +6 -6
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +5 -5
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterConnection.md +12 -31
- package/api/@xmachines/play-tanstack-react-router/README.md +4 -2
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +5 -6
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +7 -7
- package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +11 -11
- package/api/@xmachines/play-tanstack-react-router/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +6 -6
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +5 -5
- package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
- 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 +1 -1
- package/api/@xmachines/play-tanstack-router/README.md +11 -1
- package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +7 -7
- 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 +4 -2
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +5 -6
- package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +7 -7
- package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +11 -11
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +6 -6
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
- 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 +1 -1
- package/api/@xmachines/play-url/README.md +3 -3
- package/api/@xmachines/play-url/errors/classes/InvalidBasePathError.md +5 -5
- package/api/@xmachines/play-url/errors/classes/InvalidRoutePatternError.md +5 -5
- package/api/@xmachines/play-url/errors/classes/MissingBasePathParamError.md +6 -6
- package/api/@xmachines/play-url/index/README.md +2 -2
- package/api/@xmachines/play-url/index/functions/buildPath.md +1 -1
- package/api/@xmachines/play-url/index/functions/cleanFrameworkParams.md +1 -1
- package/api/@xmachines/play-url/index/functions/{createPatternCache.md → createLruCache.md} +19 -14
- package/api/@xmachines/play-url/index/functions/getCandidates.md +1 -1
- package/api/@xmachines/play-url/index/functions/getCompiledPattern.md +1 -1
- package/api/@xmachines/play-url/index/functions/getIndexKey.md +1 -1
- package/api/@xmachines/play-url/index/functions/holdsUnsubstitutedParam.md +1 -1
- package/api/@xmachines/play-url/index/functions/isDotSegment.md +1 -1
- package/api/@xmachines/play-url/index/functions/joinBasePath.md +1 -1
- package/api/@xmachines/play-url/index/functions/normalizeBasePath.md +1 -1
- package/api/@xmachines/play-url/index/functions/parsePattern.md +1 -1
- package/api/@xmachines/play-url/index/functions/pickOwnParams.md +1 -1
- package/api/@xmachines/play-url/index/functions/resolveBasePath.md +1 -1
- package/api/@xmachines/play-url/index/functions/resolveFrameworkParams.md +1 -1
- package/api/@xmachines/play-url/index/functions/sanitizePathname.md +1 -1
- package/api/@xmachines/play-url/index/functions/splitLocation.md +1 -1
- package/api/@xmachines/play-url/index/functions/stripBasePath.md +1 -1
- package/api/@xmachines/play-url/index/interfaces/BasePathOptions.md +3 -3
- package/api/@xmachines/play-url/index/interfaces/CompileOptions.md +5 -5
- package/api/@xmachines/play-url/index/interfaces/FrameworkParamsSource.md +9 -9
- package/api/@xmachines/play-url/index/interfaces/GroupPart.md +4 -4
- package/api/@xmachines/play-url/index/interfaces/KeyValueCache.md +61 -0
- package/api/@xmachines/play-url/index/interfaces/LiteralPart.md +3 -3
- package/api/@xmachines/play-url/index/interfaces/ParamPart.md +7 -7
- package/api/@xmachines/play-url/index/interfaces/ParseOptions.md +4 -4
- package/api/@xmachines/play-url/index/interfaces/ParsedPattern.md +12 -12
- package/api/@xmachines/play-url/index/interfaces/PatternParam.md +4 -4
- package/api/@xmachines/play-url/index/interfaces/ResolvedBasePath.md +3 -3
- package/api/@xmachines/play-url/index/interfaces/SplitLocation.md +5 -5
- package/api/@xmachines/play-url/index/type-aliases/PathBuildResult.md +1 -1
- package/api/@xmachines/play-url/index/type-aliases/PathParams.md +1 -1
- package/api/@xmachines/play-url/index/type-aliases/PatternModifier.md +1 -1
- package/api/@xmachines/play-url/index/type-aliases/PatternPart.md +1 -1
- package/api/@xmachines/play-url/index/type-aliases/URLPatternCtor.md +1 -1
- package/api/@xmachines/play-url/index/type-aliases/URLPatternLike.md +3 -3
- package/api/@xmachines/play-url/index/variables/NO_BASE_PATH.md +1 -1
- package/api/@xmachines/play-url/index/variables/URLPattern.md +1 -1
- package/api/@xmachines/play-view/README.md +4 -3
- package/api/@xmachines/play-view/errors/README.md +1 -1
- package/api/@xmachines/play-view/errors/classes/ReadOnlyContextError.md +5 -5
- package/api/@xmachines/play-view/index/functions/attachRenderErrorHandler.md +1 -1
- package/api/@xmachines/play-view/index/functions/composePlayState.md +1 -1
- package/api/@xmachines/play-view/index/functions/createFailureLatch.md +1 -1
- package/api/@xmachines/play-view/index/functions/createReportGuard.md +1 -1
- package/api/@xmachines/play-view/index/functions/createViewStoreLifecycle.md +1 -1
- package/api/@xmachines/play-view/index/functions/guardContextWrites.md +1 -1
- package/api/@xmachines/play-view/index/functions/refreshContextSubtree.md +1 -1
- package/api/@xmachines/play-view/index/functions/reuseComposedState.md +2 -2
- package/api/@xmachines/play-view/index/functions/sameViewInputs.md +1 -1
- package/api/@xmachines/play-view/index/functions/toAtomState.md +1 -1
- package/api/@xmachines/play-view/index/functions/typedSpec.md +1 -1
- package/api/@xmachines/play-view/index/interfaces/BaseActorProviderProps.md +5 -5
- package/api/@xmachines/play-view/index/interfaces/BaseViewContextValue.md +5 -5
- package/api/@xmachines/play-view/index/interfaces/FailureLatch.md +3 -3
- package/api/@xmachines/play-view/index/interfaces/PlaySpec.md +2 -2
- package/api/@xmachines/play-view/index/interfaces/ReportGuard.md +5 -5
- package/api/@xmachines/play-view/index/interfaces/ReportGuardMessages.md +5 -5
- package/api/@xmachines/play-view/index/interfaces/ResolveViewStoreOptions.md +2 -2
- package/api/@xmachines/play-view/index/interfaces/ViewInputs.md +4 -4
- package/api/@xmachines/play-view/index/interfaces/ViewStoreLifecycle.md +3 -3
- package/api/@xmachines/play-view/index/interfaces/ViewStoreResolution.md +4 -4
- package/api/@xmachines/play-view/index/interfaces/Viewable.md +2 -2
- package/api/@xmachines/play-view/index/type-aliases/ViewActor.md +1 -1
- package/api/@xmachines/play-view/index/variables/CONTEXT_STATE_KEY.md +1 -1
- package/api/@xmachines/play-vue/README.md +3 -3
- 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 +8 -8
- package/api/@xmachines/play-vue/interfaces/ComponentContext.md +1 -0
- package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +11 -11
- package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +1 -1
- 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 +35 -54
- package/api/@xmachines/play-vue-router/README.md +4 -2
- package/api/@xmachines/play-vue-router/errors/classes/VueRouterNavigationError.md +4 -4
- package/api/@xmachines/play-vue-router/errors/classes/VueRouterSendError.md +4 -4
- package/api/@xmachines/play-vue-router/index/classes/RouteMap.md +5 -6
- package/api/@xmachines/play-vue-router/index/classes/VueRouterBridge.md +7 -7
- package/api/@xmachines/play-vue-router/index/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-vue-router/index/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-vue-router/index/interfaces/RouteMapOptions.md +6 -6
- package/api/@xmachines/play-vue-router/index/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-vue-router/index/interfaces/RouterBridge.md +5 -5
- package/api/@xmachines/play-vue-router/index/variables/PlayRouterProvider.md +7 -7
- package/api/@xmachines/play-xstate/README.md +19 -8
- package/api/@xmachines/play-xstate/errors/classes/ActorThrewNonErrorError.md +4 -4
- package/api/@xmachines/play-xstate/errors/classes/InvalidEventError.md +5 -5
- package/api/@xmachines/play-xstate/errors/classes/InvalidMachineError.md +4 -4
- package/api/@xmachines/play-xstate/errors/classes/InvalidRouteHandlerError.md +5 -5
- package/api/@xmachines/play-xstate/errors/classes/InvalidRouteMetadataError.md +5 -5
- package/api/@xmachines/play-xstate/errors/classes/InvalidRouteParamError.md +14 -14
- package/api/@xmachines/play-xstate/errors/classes/MissingRouteParamError.md +6 -6
- package/api/@xmachines/play-xstate/errors/classes/MissingStateIdError.md +6 -6
- package/api/@xmachines/play-xstate/index/README.md +0 -4
- package/api/@xmachines/play-xstate/index/classes/PlayerActor.md +10 -45
- package/api/@xmachines/play-xstate/index/functions/compose.md +4 -4
- package/api/@xmachines/play-xstate/index/functions/definePlayer.md +2 -2
- package/api/@xmachines/play-xstate/index/interfaces/PlayerConfig.md +4 -4
- package/api/@xmachines/play-xstate/index/interfaces/PlayerFactoryResumeOptions.md +2 -2
- package/api/@xmachines/play-xstate/index/interfaces/PlayerOptions.md +7 -7
- package/api/@xmachines/play-xstate/index/type-aliases/Capability.md +1 -1
- package/api/@xmachines/play-xstate/index/type-aliases/PlayerConstructor.md +1 -1
- package/api/@xmachines/play-xstate/index/type-aliases/PlayerFactory.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/functions/buildRouteUrl.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/functions/deriveRoute.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/functions/formatPlayRouteTransitions.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/functions/isAbsoluteRoute.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/functions/withRouting.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/interfaces/RouteContext.md +5 -5
- package/api/@xmachines/play-xstate/with-routing/interfaces/RouteObject.md +5 -5
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteData.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteDataResolver.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMachineConfig.md +4 -4
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMetadata.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteStateNode.md +5 -5
- package/api/@xmachines/play-xstate/with-view/functions/withView.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +2 -2
- package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
- package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +1 -1
- package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +4 -4
- package/api/README.md +1 -0
- package/api/llms.txt +1 -0
- package/contributing/architecture.md +36 -21
- package/contributing/configuration.md +5 -3
- package/contributing/development.md +25 -27
- package/contributing/migrating-to-play-atom.md +1 -0
- package/examples/@xmachines/play-dom-demo/functions/createAuthActionHandlers.md +9 -9
- package/examples/@xmachines/play-dom-demo/functions/createConfirmDialog.md +1 -1
- package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +1 -1
- package/examples/@xmachines/play-dom-demo/functions/initShell.md +1 -1
- package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/About.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Button.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Contact.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Field.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Home.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Login.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Navigation.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Overview.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Panel.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Profile.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Settings.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Stats.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/demoComponents.md +15 -15
- package/examples/@xmachines/play-react-demo/functions/createAuthActionHandlers.md +9 -9
- package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/About.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Button.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Contact.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Dashboard.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Field.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Home.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Login.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/NavBar.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/NavBarView.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Navigation.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Overview.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Panel.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Profile.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Settings.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Shell.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Stats.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/demoComponents.md +15 -15
- package/examples/@xmachines/play-solid-demo/functions/createAuthActionHandlers.md +9 -9
- package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Button.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Field.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Panel.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Shell.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/demoComponents.md +15 -15
- package/examples/@xmachines/play-svelte-demo/functions/createAuthActionHandlers.md +9 -9
- package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-svelte-demo/variables/demoComponents.md +15 -15
- package/examples/@xmachines/play-vue-demo/functions/createAuthActionHandlers.md +9 -9
- package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-vue-demo/variables/App.md +1 -1
- package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +190 -277
- package/examples/@xmachines/play-vue-demo/variables/demoComponents.md +1 -1
- package/examples/README.md +1 -1
- package/guides/atoms.md +24 -12
- package/guides/getting-started.md +12 -10
- package/package.json +1 -1
- package/rfc/broker.md +4 -0
- package/rfc/browser.md +4 -0
- package/rfc/cli.md +4 -0
- package/rfc/git.md +4 -0
- package/rfc/mcp.md +4 -0
- package/rfc/node.md +4 -0
- package/rfc/play.md +1 -1
- package/rfc/rest.md +4 -0
- package/rfc/run.md +4 -0
- package/rfc/streams.md +4 -0
- package/api/@xmachines/play/index/functions/asCleanup.md +0 -77
- package/api/@xmachines/play/index/functions/shallowEqualExcept.md +0 -29
- package/api/@xmachines/play/index/type-aliases/Cleanup.md +0 -38
- package/api/@xmachines/play/index/type-aliases/DisposeKey.md +0 -32
- package/api/@xmachines/play/index/variables/DISPOSE.md +0 -34
- package/api/@xmachines/play-atom/type-aliases/Cleanup.md +0 -38
- package/api/@xmachines/play-dom/functions/asCleanup.md +0 -77
- package/api/@xmachines/play-dom/type-aliases/Cleanup.md +0 -38
- package/api/@xmachines/play-dom-router/functions/asCleanup.md +0 -77
- package/api/@xmachines/play-dom-router/type-aliases/Cleanup.md +0 -38
- package/api/@xmachines/play-dom-router/variables/DISPOSE.md +0 -34
- package/api/@xmachines/play-pattern/interfaces/PatternCache.md +0 -65
- package/api/@xmachines/play-router/index/interfaces/PatternCache.md +0 -65
- package/api/@xmachines/play-url/index/interfaces/PatternCache.md +0 -65
- package/api/@xmachines/play-xstate/index/variables/DISPOSE.md +0 -34
|
@@ -4,17 +4,16 @@
|
|
|
4
4
|
|
|
5
5
|
The atom primitives for XMachines. They give the Play Architecture fine-grained reactive state. The primitives propagate state without a glitch and without a subscription of the consumer.
|
|
6
6
|
|
|
7
|
-
[](https://opensource.org/licenses/MIT) [](https://opensource.org/licenses/MIT) [](https://www.npmjs.com/package/@xmachines/play-atom)
|
|
8
8
|
|
|
9
9
|
## Installation
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
pnpm add @xmachines/play-atom @
|
|
12
|
+
pnpm add @xmachines/play-atom @xstate/store
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
**Peer
|
|
15
|
+
**Peer dependency.** Install it with the package:
|
|
16
16
|
|
|
17
|
-
- [`@xmachines/play`](../play/README.md) — the core protocol. This package reads `asCleanup` and `Cleanup` from it.
|
|
18
17
|
- `@xstate/store` `^4.2.3` — the atom engine.
|
|
19
18
|
|
|
20
19
|
Install ONE copy of `@xstate/store` — see [One instance](#one-instance).
|
|
@@ -109,7 +108,7 @@ count.set(3); // → logs "count changed: 3" once, from a microtask
|
|
|
109
108
|
cleanup();
|
|
110
109
|
```
|
|
111
110
|
|
|
112
|
-
The cleanup function is idempotent. A second call is safe, and it does not throw. It is
|
|
111
|
+
The cleanup function is idempotent. A second call is safe, and it does not throw. It is a plain function. To release it at the end of a scope, publish it with `asDisposable` of [`@xmachines/core/utils`](../core/README.md): `using cleanup = asDisposable(watchAtom(...))`.
|
|
113
112
|
|
|
114
113
|
### `atom.subscribe` — synchronous observation
|
|
115
114
|
|
|
@@ -120,6 +119,18 @@ const subscription = count.subscribe((value) => console.log(value));
|
|
|
120
119
|
subscription.unsubscribe();
|
|
121
120
|
```
|
|
122
121
|
|
|
122
|
+
The subscription is the plain `{ unsubscribe }` of the engine. To hold it with `using`, publish it with `asDisposable` of [`@xmachines/core/utils`](../core/README.md):
|
|
123
|
+
|
|
124
|
+
```typescript
|
|
125
|
+
import { asDisposable } from "@xmachines/core/utils";
|
|
126
|
+
|
|
127
|
+
{
|
|
128
|
+
const plain = count.subscribe((value) => console.log(value));
|
|
129
|
+
using subscription = asDisposable(plain, () => plain.unsubscribe());
|
|
130
|
+
count.set(1);
|
|
131
|
+
} // the scope calls unsubscribe()
|
|
132
|
+
```
|
|
133
|
+
|
|
123
134
|
### Custom equality
|
|
124
135
|
|
|
125
136
|
`createAtom` accepts a `compare` option. It controls when an atom notifies its dependents. The default is `Object.is`.
|
|
@@ -145,25 +156,24 @@ This package therefore declares `@xstate/store` as a peer dependency. A renderer
|
|
|
145
156
|
|
|
146
157
|
## API Summary
|
|
147
158
|
|
|
148
|
-
| Export | Kind | Description
|
|
149
|
-
| ---------------------------------- | --------- |
|
|
150
|
-
| `createAtom(value, options?)` | function | The writable atom
|
|
151
|
-
| `createAtom(fn, options?)` | function | The computed atom
|
|
152
|
-
| `createWritableAtom(value, opts?)` | function | The writable atom, with one signature, for a generic value type
|
|
153
|
-
| `createAsyncAtom(fn, options?)` | function | The computed atom of a promise. It holds an `AsyncAtomState`. `fn` reads an `AbortSignal`
|
|
154
|
-
| `watchAtom(atom, onValue)` | function | The coalesced subscription helper. It returns a
|
|
155
|
-
| `Atom<T>` | interface | The writable atom (`.get()`, `.set()`, `.subscribe()`)
|
|
156
|
-
| `ReadonlyAtom<T>` | interface | The computed atom (`.get()`, `.subscribe()`)
|
|
157
|
-
| `Readable<T>` | interface | The read side of either one (`.get()`, `.subscribe()`)
|
|
158
|
-
| `BaseAtom<T>` | interface | The common base of both kinds
|
|
159
|
-
| `AnyAtom` | type | An atom of an unknown value type
|
|
160
|
-
| `AtomOptions<T>` | interface | The options object of `createAtom` (`compare?`)
|
|
161
|
-
| `AtomObserver<T>` | interface | The observer of `subscribe`, in the object form
|
|
162
|
-
| `AtomSubscription` | interface | The release that `subscribe` returns
|
|
163
|
-
| `AsyncAtomState<TData>` | type | The state of `createAsyncAtom`: `pending`, `done`, or `error`
|
|
164
|
-
| `AsyncAtomOptions` | interface | What `createAsyncAtom` hands its getter: the `signal` that aborts a stale run
|
|
165
|
-
| `CreateAtom` | interface | The two call signatures of `createAtom`
|
|
166
|
-
| `Cleanup` | type | The release that `watchAtom` returns, re-exported from [`@xmachines/play`](../play/README.md) |
|
|
159
|
+
| Export | Kind | Description |
|
|
160
|
+
| ---------------------------------- | --------- | ----------------------------------------------------------------------------------------- |
|
|
161
|
+
| `createAtom(value, options?)` | function | The writable atom |
|
|
162
|
+
| `createAtom(fn, options?)` | function | The computed atom |
|
|
163
|
+
| `createWritableAtom(value, opts?)` | function | The writable atom, with one signature, for a generic value type |
|
|
164
|
+
| `createAsyncAtom(fn, options?)` | function | The computed atom of a promise. It holds an `AsyncAtomState`. `fn` reads an `AbortSignal` |
|
|
165
|
+
| `watchAtom(atom, onValue)` | function | The coalesced subscription helper. It returns a plain release |
|
|
166
|
+
| `Atom<T>` | interface | The writable atom (`.get()`, `.set()`, `.subscribe()`) |
|
|
167
|
+
| `ReadonlyAtom<T>` | interface | The computed atom (`.get()`, `.subscribe()`) |
|
|
168
|
+
| `Readable<T>` | interface | The read side of either one (`.get()`, `.subscribe()`) |
|
|
169
|
+
| `BaseAtom<T>` | interface | The common base of both kinds |
|
|
170
|
+
| `AnyAtom` | type | An atom of an unknown value type |
|
|
171
|
+
| `AtomOptions<T>` | interface | The options object of `createAtom` (`compare?`) |
|
|
172
|
+
| `AtomObserver<T>` | interface | The observer of `subscribe`, in the object form |
|
|
173
|
+
| `AtomSubscription` | interface | The release that `subscribe` returns |
|
|
174
|
+
| `AsyncAtomState<TData>` | type | The state of `createAsyncAtom`: `pending`, `done`, or `error` |
|
|
175
|
+
| `AsyncAtomOptions` | interface | What `createAsyncAtom` hands its getter: the `signal` that aborts a stale run |
|
|
176
|
+
| `CreateAtom` | interface | The two call signatures of `createAtom` |
|
|
167
177
|
|
|
168
178
|
The observer types carry the `Atom` prefix on purpose: `xstate` declares `Observer` and `Subscription` too, so a plain name here would put two declarations of one name in one file. `Subscribable` stays out of the surface for the same reason.
|
|
169
179
|
|
|
@@ -268,7 +278,6 @@ updates never.
|
|
|
268
278
|
|
|
269
279
|
- [AnyAtom](type-aliases/AnyAtom.md)
|
|
270
280
|
- [AsyncAtomState](type-aliases/AsyncAtomState.md)
|
|
271
|
-
- [Cleanup](type-aliases/Cleanup.md)
|
|
272
281
|
|
|
273
282
|
## Variables
|
|
274
283
|
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
# Function: watchAtom()
|
|
4
4
|
|
|
5
5
|
```ts
|
|
6
|
-
function watchAtom<T>(atom, onValue):
|
|
6
|
+
function watchAtom<T>(atom, onValue): () => void;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [
|
|
9
|
+
Defined in: [watch-atom.ts:57](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/watch-atom.ts#L57)
|
|
10
10
|
|
|
11
11
|
Subscribes to one atom, and coalesces the notifications into one microtask.
|
|
12
12
|
|
|
@@ -37,12 +37,12 @@ and the microtask queue drains never. That is the loop of the caller, and this
|
|
|
37
37
|
function bounds it not. A write of the SAME value ends the sequence by itself,
|
|
38
38
|
because an atom notifies for a value that it holds already never.
|
|
39
39
|
|
|
40
|
-
The return is a
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
The return is a plain function. A caller that keeps the release in a field runs it
|
|
41
|
+
from a teardown. A caller inside one scope publishes it with `asDisposable` of
|
|
42
|
+
`@xmachines/core/utils`, writes `using`, and writes no teardown:
|
|
43
43
|
|
|
44
44
|
```ts
|
|
45
|
-
using stop = watchAtom(count, render);
|
|
45
|
+
using stop = asDisposable(watchAtom(count, render));
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
## Type Parameters
|
|
@@ -60,10 +60,10 @@ using stop = watchAtom(count, render);
|
|
|
60
60
|
|
|
61
61
|
## Returns
|
|
62
62
|
|
|
63
|
-
[`Cleanup`](../type-aliases/Cleanup.md)
|
|
64
|
-
|
|
65
63
|
The release. It removes the subscription.
|
|
66
64
|
|
|
65
|
+
() => `void`
|
|
66
|
+
|
|
67
67
|
## Example
|
|
68
68
|
|
|
69
69
|
```typescript
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Interface: AsyncAtomOptions
|
|
4
4
|
|
|
5
|
-
Defined in: [
|
|
5
|
+
Defined in: [types.ts:168](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L168)
|
|
6
6
|
|
|
7
7
|
What `createAsyncAtom` gives its getter
|
|
8
8
|
|
|
@@ -11,6 +11,6 @@ stale answer reaches the atom never. Pass it to `fetch`, and the request stops w
|
|
|
11
11
|
|
|
12
12
|
## Properties
|
|
13
13
|
|
|
14
|
-
| Property | Modifier | Type | Description | Defined in
|
|
15
|
-
| ------------------------------------- | ---------- | ------------- | ------------------------------------------------------------ |
|
|
16
|
-
| <a id="property-signal"></a> `signal` | `readonly` | `AbortSignal` | Aborted when the atom derives again before this run settles. | [
|
|
14
|
+
| Property | Modifier | Type | Description | Defined in |
|
|
15
|
+
| ------------------------------------- | ---------- | ------------- | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------- |
|
|
16
|
+
| <a id="property-signal"></a> `signal` | `readonly` | `AbortSignal` | Aborted when the atom derives again before this run settles. | [types.ts:170](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L170) |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Interface: Atom\<T\>
|
|
4
4
|
|
|
5
|
-
Defined in: [
|
|
5
|
+
Defined in: [types.ts:117](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L117)
|
|
6
6
|
|
|
7
7
|
The writable atom. It holds one reactive value
|
|
8
8
|
|
|
@@ -40,7 +40,7 @@ name.set((previous) => previous.toUpperCase()); // "BOB"
|
|
|
40
40
|
get(): T;
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
Defined in: [
|
|
43
|
+
Defined in: [types.ts:59](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L59)
|
|
44
44
|
|
|
45
45
|
#### Returns
|
|
46
46
|
|
|
@@ -60,7 +60,7 @@ Defined in: [play-atom/src/types.ts:59](https://gitlab.com/xmachin-es/xmachines-
|
|
|
60
60
|
set(fn): void;
|
|
61
61
|
```
|
|
62
62
|
|
|
63
|
-
Defined in: [
|
|
63
|
+
Defined in: [types.ts:119](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L119)
|
|
64
64
|
|
|
65
65
|
Sets the value of the atom from the previous value.
|
|
66
66
|
|
|
@@ -80,7 +80,7 @@ Sets the value of the atom from the previous value.
|
|
|
80
80
|
set(value): void;
|
|
81
81
|
```
|
|
82
82
|
|
|
83
|
-
Defined in: [
|
|
83
|
+
Defined in: [types.ts:121](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L121)
|
|
84
84
|
|
|
85
85
|
Sets the value of the atom.
|
|
86
86
|
|
|
@@ -104,7 +104,7 @@ Sets the value of the atom.
|
|
|
104
104
|
subscribe(observer): AtomSubscription;
|
|
105
105
|
```
|
|
106
106
|
|
|
107
|
-
Defined in: [
|
|
107
|
+
Defined in: [types.ts:60](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L60)
|
|
108
108
|
|
|
109
109
|
##### Parameters
|
|
110
110
|
|
|
@@ -130,7 +130,7 @@ subscribe(
|
|
|
130
130
|
): AtomSubscription;
|
|
131
131
|
```
|
|
132
132
|
|
|
133
|
-
Defined in: [
|
|
133
|
+
Defined in: [types.ts:61](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L61)
|
|
134
134
|
|
|
135
135
|
##### Parameters
|
|
136
136
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Interface: AtomObserver\<T\>
|
|
4
4
|
|
|
5
|
-
Defined in: [
|
|
5
|
+
Defined in: [types.ts:34](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L34)
|
|
6
6
|
|
|
7
7
|
The observer of an atom, in the object form
|
|
8
8
|
|
|
@@ -18,8 +18,8 @@ consumers that adapt an atom to an observable.
|
|
|
18
18
|
|
|
19
19
|
## Properties
|
|
20
20
|
|
|
21
|
-
| Property | Type | Defined in
|
|
22
|
-
| ------------------------------------------ | ------------------- |
|
|
23
|
-
| <a id="property-complete"></a> `complete?` | () => `void` | [
|
|
24
|
-
| <a id="property-error"></a> `error?` | (`error`) => `void` | [
|
|
25
|
-
| <a id="property-next"></a> `next?` | (`value`) => `void` | [
|
|
21
|
+
| Property | Type | Defined in |
|
|
22
|
+
| ------------------------------------------ | ------------------- | ----------------------------------------------------------------------------------------------------------- |
|
|
23
|
+
| <a id="property-complete"></a> `complete?` | () => `void` | [types.ts:37](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L37) |
|
|
24
|
+
| <a id="property-error"></a> `error?` | (`error`) => `void` | [types.ts:36](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L36) |
|
|
25
|
+
| <a id="property-next"></a> `next?` | (`value`) => `void` | [types.ts:35](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L35) |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Interface: AtomOptions\<T\>
|
|
4
4
|
|
|
5
|
-
Defined in: [
|
|
5
|
+
Defined in: [types.ts:147](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L147)
|
|
6
6
|
|
|
7
7
|
The options of `createAtom`
|
|
8
8
|
|
|
@@ -28,6 +28,6 @@ const point = createAtom(
|
|
|
28
28
|
|
|
29
29
|
## Properties
|
|
30
30
|
|
|
31
|
-
| Property | Type | Defined in
|
|
32
|
-
| ---------------------------------------- | --------------------------------- |
|
|
33
|
-
| <a id="property-compare"></a> `compare?` | (`previous`, `next`) => `boolean` | [
|
|
31
|
+
| Property | Type | Defined in |
|
|
32
|
+
| ---------------------------------------- | --------------------------------- | ------------------------------------------------------------------------------------------------------------- |
|
|
33
|
+
| <a id="property-compare"></a> `compare?` | (`previous`, `next`) => `boolean` | [types.ts:148](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L148) |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Interface: AtomSubscription
|
|
4
4
|
|
|
5
|
-
Defined in: [
|
|
5
|
+
Defined in: [types.ts:23](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L23)
|
|
6
6
|
|
|
7
7
|
The release of one subscription
|
|
8
8
|
|
|
@@ -16,7 +16,7 @@ The release of one subscription
|
|
|
16
16
|
unsubscribe(): void;
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
Defined in: [
|
|
19
|
+
Defined in: [types.ts:24](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L24)
|
|
20
20
|
|
|
21
21
|
#### Returns
|
|
22
22
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Interface: BaseAtom\<T\>
|
|
4
4
|
|
|
5
|
-
Defined in: [
|
|
5
|
+
Defined in: [types.ts:74](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L74)
|
|
6
6
|
|
|
7
7
|
The common base of a writable atom and a computed atom
|
|
8
8
|
|
|
@@ -32,7 +32,7 @@ both kinds.
|
|
|
32
32
|
get(): T;
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
Defined in: [
|
|
35
|
+
Defined in: [types.ts:59](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L59)
|
|
36
36
|
|
|
37
37
|
#### Returns
|
|
38
38
|
|
|
@@ -52,7 +52,7 @@ Defined in: [play-atom/src/types.ts:59](https://gitlab.com/xmachin-es/xmachines-
|
|
|
52
52
|
subscribe(observer): AtomSubscription;
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
-
Defined in: [
|
|
55
|
+
Defined in: [types.ts:60](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L60)
|
|
56
56
|
|
|
57
57
|
##### Parameters
|
|
58
58
|
|
|
@@ -78,7 +78,7 @@ subscribe(
|
|
|
78
78
|
): AtomSubscription;
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
-
Defined in: [
|
|
81
|
+
Defined in: [types.ts:61](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L61)
|
|
82
82
|
|
|
83
83
|
##### Parameters
|
|
84
84
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Interface: CreateAtom()
|
|
4
4
|
|
|
5
|
-
Defined in: [
|
|
5
|
+
Defined in: [create-atom.ts:33](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/create-atom.ts#L33)
|
|
6
6
|
|
|
7
7
|
The two forms of `createAtom`
|
|
8
8
|
|
|
@@ -22,7 +22,7 @@ because `get` tracked the edge already.
|
|
|
22
22
|
CreateAtom<T>(getValue, options?): ReadonlyAtom<T>;
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
Defined in: [
|
|
25
|
+
Defined in: [create-atom.ts:34](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/create-atom.ts#L34)
|
|
26
26
|
|
|
27
27
|
The two forms of `createAtom`
|
|
28
28
|
|
|
@@ -59,7 +59,7 @@ because `get` tracked the edge already.
|
|
|
59
59
|
CreateAtom<T>(initialValue, options?): Atom<T>;
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
-
Defined in: [
|
|
62
|
+
Defined in: [create-atom.ts:35](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/create-atom.ts#L35)
|
|
63
63
|
|
|
64
64
|
The two forms of `createAtom`
|
|
65
65
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Interface: Readable\<T\>
|
|
4
4
|
|
|
5
|
-
Defined in: [
|
|
5
|
+
Defined in: [types.ts:58](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L58)
|
|
6
6
|
|
|
7
7
|
The read side of an atom
|
|
8
8
|
|
|
@@ -40,7 +40,7 @@ show(createAtom("ready")); // "ready"
|
|
|
40
40
|
get(): T;
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
Defined in: [
|
|
43
|
+
Defined in: [types.ts:59](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L59)
|
|
44
44
|
|
|
45
45
|
#### Returns
|
|
46
46
|
|
|
@@ -56,7 +56,7 @@ Defined in: [play-atom/src/types.ts:59](https://gitlab.com/xmachin-es/xmachines-
|
|
|
56
56
|
subscribe(observer): AtomSubscription;
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
Defined in: [
|
|
59
|
+
Defined in: [types.ts:60](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L60)
|
|
60
60
|
|
|
61
61
|
##### Parameters
|
|
62
62
|
|
|
@@ -78,7 +78,7 @@ subscribe(
|
|
|
78
78
|
): AtomSubscription;
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
-
Defined in: [
|
|
81
|
+
Defined in: [types.ts:61](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L61)
|
|
82
82
|
|
|
83
83
|
##### Parameters
|
|
84
84
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Interface: ReadonlyAtom\<T\>
|
|
4
4
|
|
|
5
|
-
Defined in: [
|
|
5
|
+
Defined in: [types.ts:97](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L97)
|
|
6
6
|
|
|
7
7
|
The computed atom. It evaluates late, and it memoizes the result
|
|
8
8
|
|
|
@@ -43,7 +43,7 @@ console.log(doubled.get()); // 10 (from the memory, with no new computation)
|
|
|
43
43
|
get(): T;
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
Defined in: [
|
|
46
|
+
Defined in: [types.ts:59](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L59)
|
|
47
47
|
|
|
48
48
|
#### Returns
|
|
49
49
|
|
|
@@ -63,7 +63,7 @@ Defined in: [play-atom/src/types.ts:59](https://gitlab.com/xmachin-es/xmachines-
|
|
|
63
63
|
subscribe(observer): AtomSubscription;
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
-
Defined in: [
|
|
66
|
+
Defined in: [types.ts:60](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L60)
|
|
67
67
|
|
|
68
68
|
##### Parameters
|
|
69
69
|
|
|
@@ -89,7 +89,7 @@ subscribe(
|
|
|
89
89
|
): AtomSubscription;
|
|
90
90
|
```
|
|
91
91
|
|
|
92
|
-
Defined in: [
|
|
92
|
+
Defined in: [types.ts:61](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L61)
|
|
93
93
|
|
|
94
94
|
##### Parameters
|
|
95
95
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
type AnyAtom = BaseAtom<unknown>;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [
|
|
9
|
+
Defined in: [types.ts:129](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L129)
|
|
10
10
|
|
|
11
11
|
An atom of an unknown value type
|
|
12
12
|
|
|
@@ -17,7 +17,7 @@ type AsyncAtomState<TData, TError> =
|
|
|
17
17
|
};
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
Defined in: [
|
|
20
|
+
Defined in: [types.ts:157](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/types.ts#L157)
|
|
21
21
|
|
|
22
22
|
The state of an atom that reads a promise
|
|
23
23
|
|
|
@@ -7,7 +7,7 @@ const createAsyncAtom: <T>(getValue, options?) => ReadonlyAtom<AsyncAtomState<T>
|
|
|
7
7
|
createEngineAsyncAtom;
|
|
8
8
|
```
|
|
9
9
|
|
|
10
|
-
Defined in: [
|
|
10
|
+
Defined in: [create-atom.ts:64](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/create-atom.ts#L64)
|
|
11
11
|
|
|
12
12
|
Builds a read-only atom that holds the state of a promise
|
|
13
13
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
const createAtom: CreateAtom = createEngineAtom;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [
|
|
9
|
+
Defined in: [create-atom.ts:47](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/create-atom.ts#L47)
|
|
10
10
|
|
|
11
11
|
Builds a writable atom from a value, and a computed atom from a function
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
const createWritableAtom: <T>(initialValue, options?) => Atom<T> = createAtom;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [
|
|
9
|
+
Defined in: [create-writable-atom.ts:50](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-atom/src/create-writable-atom.ts#L50)
|
|
10
10
|
|
|
11
11
|
Builds a WRITABLE atom, and never a computed one.
|
|
12
12
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Vanilla DOM renderer for XMachines Play architecture with atom-driven rendering.
|
|
6
6
|
|
|
7
|
-
[](https://opensource.org/licenses/MIT) [](https://opensource.org/licenses/MIT) [](https://www.npmjs.com/package/@xmachines/play-dom)
|
|
8
8
|
|
|
9
9
|
## Installation
|
|
10
10
|
|
|
@@ -15,9 +15,11 @@ pnpm add @xmachines/play-dom
|
|
|
15
15
|
**Peer dependencies:**
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
pnpm add @xmachines/play @xmachines/play-atom @xstate/store @xmachines/json-render-core @xmachines/json-render-dom @xmachines/json-render-xstate
|
|
18
|
+
pnpm add @xmachines/core @xmachines/play @xmachines/play-atom @xstate/store @xmachines/json-render-core @xmachines/json-render-dom @xmachines/json-render-xstate
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
+
[`@xmachines/play`](../play/README.md) is the peer of [`@xmachines/play-view`](../play-view/README.md), which this package depends on. Install ONE copy of it.
|
|
22
|
+
|
|
21
23
|
`@xstate/store` is the peer of [`@xmachines/play-atom`](../play-atom/README.md), and not of this
|
|
22
24
|
package: this package reads the atom through [`@xmachines/play-atom`](../play-atom/README.md) and
|
|
23
25
|
imports the engine in no source file. Install ONE copy of it.
|
|
@@ -302,15 +304,15 @@ The four framework renderers contain a failed render always, because an error bo
|
|
|
302
304
|
a framework is not an option that a caller turns off. This change puts play-dom on the
|
|
303
305
|
same rule.
|
|
304
306
|
|
|
305
|
-
**To escalate a failure, raise it from a task of your own
|
|
307
|
+
**To escalate a failure, raise it from a task of your own.** The example imports `rethrowLater` from [`@xmachines/core/utils`](../core/README.md). Install that package next to this one, because your code imports it and a package manager such as pnpm does not let your code import a package that it does not declare:
|
|
306
308
|
|
|
307
309
|
```typescript
|
|
310
|
+
import { rethrowLater } from "@xmachines/core/utils";
|
|
311
|
+
|
|
308
312
|
const mount = createPlayUI(registryResult, {
|
|
309
313
|
onError: (err) => {
|
|
310
314
|
reportToSentry(err);
|
|
311
|
-
|
|
312
|
-
throw err; // the page keeps its own global handler
|
|
313
|
-
});
|
|
315
|
+
rethrowLater(err); // the page keeps its own global handler
|
|
314
316
|
},
|
|
315
317
|
});
|
|
316
318
|
```
|
|
@@ -367,35 +369,33 @@ const Home: ComponentFn<typeof catalog, "Home"> = ({ ctx }) => {
|
|
|
367
369
|
|
|
368
370
|
### XMachines Layer
|
|
369
371
|
|
|
370
|
-
| Export | Kind | Description
|
|
371
|
-
| ---------------------------------------- | -------- |
|
|
372
|
-
| `createRenderer(catalog, components)` | function | The one-call factory. Its `mount` hands a
|
|
373
|
-
| `createPlayUI(registryResult, options?)` | function | The complete factory. It returns a `MountFn`
|
|
374
|
-
| `PlayRenderer` | class | The renderer class, with a `connect()` and `disconnect()` lifecycle
|
|
375
|
-
| `defineRegistry(catalog, options)` | function | Build a catalog-typed `DomRegistry` with typed handlers
|
|
376
|
-
| `renderSpec(...)` | function | The pure low-level Spec → DOM renderer
|
|
377
|
-
| `schema` | const | The `@xmachines/json-render-dom` schema — pass to `defineCatalog()`
|
|
378
|
-
| `asCleanup`, `Cleanup` | — | The release a mount returns, re-exported from [`@xmachines/play`](../play/README.md) |
|
|
372
|
+
| Export | Kind | Description |
|
|
373
|
+
| ---------------------------------------- | -------- | ------------------------------------------------------------------- |
|
|
374
|
+
| `createRenderer(catalog, components)` | function | The one-call factory. Its `mount` hands a plain release back |
|
|
375
|
+
| `createPlayUI(registryResult, options?)` | function | The complete factory. It returns a `MountFn` |
|
|
376
|
+
| `PlayRenderer` | class | The renderer class, with a `connect()` and `disconnect()` lifecycle |
|
|
377
|
+
| `defineRegistry(catalog, options)` | function | Build a catalog-typed `DomRegistry` with typed handlers |
|
|
378
|
+
| `renderSpec(...)` | function | The pure low-level Spec → DOM renderer |
|
|
379
|
+
| `schema` | const | The `@xmachines/json-render-dom` schema — pass to `defineCatalog()` |
|
|
379
380
|
|
|
380
381
|
### Key Types
|
|
381
382
|
|
|
382
|
-
| Type | Description
|
|
383
|
-
| ------------------------ |
|
|
384
|
-
| `ComponentFn<C, K>` | Catalog-typed component function — returns `HTMLElement \| Text \| null`
|
|
385
|
-
| `ComponentContext<C, K>` | The context of each component: `props`, `children`, `emit`, `on`, `bindings`, and `ctx`
|
|
386
|
-
| `ActionFn<C, K>` | Catalog-typed action function — receives `(params, setState, state)`
|
|
387
|
-
| `EventHandle` | The handle that `on(eventName)` returns. It has `emit()`, `shouldPreventDefault`, and `bound`
|
|
388
|
-
| `SetState` | State updater: `(prev => next) => void`
|
|
389
|
-
| `DefineRegistryResult` | The result of `defineRegistry`. It has `registry`, `handlers`, and `executeAction`
|
|
390
|
-
| `PlayDomOptions` | Options for `PlayRenderer` — extends `UIProviderOptions`, adds `fallback` and `onError`
|
|
391
|
-
| `CreatePlayUIOptions` | Options for `createPlayUI` — extends `UIProviderOptions`, adds `fallback` and `onError`
|
|
392
|
-
| `MountOptions` | Per-mount options for `MountFn`: `store`, `loading`
|
|
393
|
-
| `MountFn` | The mount: `(actor, container, options?) →
|
|
394
|
-
| `UIProviderOptions` | Shared options: `functions`, `validationFunctions`, `navigate`, `onRenderError`
|
|
395
|
-
| `BaseComponentProps<P>` | Catalog-agnostic component props for shared component libraries
|
|
396
|
-
| `DomRegistry` | Raw registry type: `Record<string, DomComponentRenderer>`
|
|
397
|
-
| `DomSchema` | Type of the `schema` export
|
|
398
|
-
| `Cleanup` | The release of a mount, re-exported from [`@xmachines/play`](../play/README.md) |
|
|
383
|
+
| Type | Description |
|
|
384
|
+
| ------------------------ | ---------------------------------------------------------------------------------------------------------------- |
|
|
385
|
+
| `ComponentFn<C, K>` | Catalog-typed component function — returns `HTMLElement \| Text \| null` |
|
|
386
|
+
| `ComponentContext<C, K>` | The context of each component: `props`, `children`, `emit`, `on`, `bindings`, and `ctx` |
|
|
387
|
+
| `ActionFn<C, K>` | Catalog-typed action function — receives `(params, setState, state)` |
|
|
388
|
+
| `EventHandle` | The handle that `on(eventName)` returns. It has `emit()`, `shouldPreventDefault`, and `bound` |
|
|
389
|
+
| `SetState` | State updater: `(prev => next) => void` |
|
|
390
|
+
| `DefineRegistryResult` | The result of `defineRegistry`. It has `registry`, `handlers`, and `executeAction` |
|
|
391
|
+
| `PlayDomOptions` | Options for `PlayRenderer` — extends `UIProviderOptions`, adds `fallback` and `onError` |
|
|
392
|
+
| `CreatePlayUIOptions` | Options for `createPlayUI` — extends `UIProviderOptions`, adds `fallback` and `onError` |
|
|
393
|
+
| `MountOptions` | Per-mount options for `MountFn`: `store`, `loading` |
|
|
394
|
+
| `MountFn` | The mount: `(actor, container, options?) → () => void`. `createPlayUI` returns one, and a consumer may write one |
|
|
395
|
+
| `UIProviderOptions` | Shared options: `functions`, `validationFunctions`, `navigate`, `onRenderError` |
|
|
396
|
+
| `BaseComponentProps<P>` | Catalog-agnostic component props for shared component libraries |
|
|
397
|
+
| `DomRegistry` | Raw registry type: `Record<string, DomComponentRenderer>` |
|
|
398
|
+
| `DomSchema` | Type of the `schema` export |
|
|
399
399
|
|
|
400
400
|
## Rendering Behavior
|
|
401
401
|
|
|
@@ -455,7 +455,6 @@ The public API has two layers:
|
|
|
455
455
|
- [Actions](type-aliases/Actions.md)
|
|
456
456
|
- [BaseComponentProps](type-aliases/BaseComponentProps.md)
|
|
457
457
|
- [CatalogHasActions](type-aliases/CatalogHasActions.md)
|
|
458
|
-
- [Cleanup](type-aliases/Cleanup.md)
|
|
459
458
|
- [ComponentFn](type-aliases/ComponentFn.md)
|
|
460
459
|
- [ComponentRegistry](type-aliases/ComponentRegistry.md)
|
|
461
460
|
- [ConfirmHandler](type-aliases/ConfirmHandler.md)
|
|
@@ -473,7 +472,6 @@ The public API has two layers:
|
|
|
473
472
|
|
|
474
473
|
## Functions
|
|
475
474
|
|
|
476
|
-
- [asCleanup](functions/asCleanup.md)
|
|
477
475
|
- [createPlayUI](functions/createPlayUI.md)
|
|
478
476
|
- [createRenderer](functions/createRenderer.md)
|
|
479
477
|
- [createValidationRegistry](functions/createValidationRegistry.md)
|