@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
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> Documentation, guides, RFCs, and generated API reference for XMachines.
|
|
4
4
|
|
|
5
|
-
[](https://opensource.org/licenses/MIT) [](https://opensource.org/licenses/MIT) [](https://www.npmjs.com/package/@xmachines/docs)
|
|
6
6
|
|
|
7
7
|
## Overview
|
|
8
8
|
|
|
@@ -70,6 +70,8 @@ Architectural specifications that define the XMachines system:
|
|
|
70
70
|
| [`rfc/rest.md`](rfc/rest.md) | REST | REST adapter specification |
|
|
71
71
|
| [`rfc/mcp.md`](rfc/mcp.md) | MCP | Model Context Protocol adapter |
|
|
72
72
|
|
|
73
|
+
An RFC that describes work with no published package carries `status: planned` in its frontmatter. The documentation site reads the key and shows a "Planned" badge on the page and in the menu. Remove the key from the RFC in the change that publishes the package. The `**Status:**` line in the body gives the state of the specification, and not the state of the implementation.
|
|
74
|
+
|
|
73
75
|
### Guides
|
|
74
76
|
|
|
75
77
|
Concept guides and tutorials that show how to use XMachines:
|
|
@@ -117,6 +119,7 @@ The documented packages:
|
|
|
117
119
|
- [`@xmachines/play-actor`](../play-actor/README.md) — `PlayActor`
|
|
118
120
|
- [`@xmachines/play-view`](../play-view/README.md) — `Viewable`, `PlaySpec`, the view store lifecycle
|
|
119
121
|
- [`@xmachines/play-atom`](../play-atom/README.md) — the atom primitives, `watchAtom`
|
|
122
|
+
- [`@xmachines/core`](../core/README.md) — `BaseError` on `/errors`, the release protocol (`asDisposable`, `DISPOSE`) and helpers on `/utils`, a key-value cache on `/cache`
|
|
120
123
|
- [`@xmachines/play-router`](../play-router/README.md) — `RouterBridgeBase`, `RouteMap`, `Routable`
|
|
121
124
|
- [`@xmachines/play-router/xstate`](../play-router/README.md) — `extractMachineRoutes`, `createRouteMap`
|
|
122
125
|
- [`@xmachines/play-pattern`](../play-pattern/README.md) — the route pattern language: one parse, and the path that `buildPath` writes back
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
[API](../../README.md) / @xmachines/core
|
|
2
|
+
|
|
3
|
+
# @xmachines/core
|
|
4
|
+
|
|
5
|
+
The base of the XMachines packages: the error base class, the release protocol, and a cache.
|
|
6
|
+
|
|
7
|
+
[](https://opensource.org/licenses/MIT) [](https://www.npmjs.com/package/@xmachines/core)
|
|
8
|
+
|
|
9
|
+
Code that more than one `@xmachines/*` package can use, and that belongs to no layer of the Play Architecture. The package reads no workspace package. [`@xmachines/play`](../play/README.md) reads it, and so can every package above the protocol layer.
|
|
10
|
+
|
|
11
|
+
## What this package is
|
|
12
|
+
|
|
13
|
+
The package has no root entry. It has three subpaths:
|
|
14
|
+
|
|
15
|
+
- **`@xmachines/core/errors`** — `BaseError`, the base class of every typed error of the workspace, and `DisposeConflictError`.
|
|
16
|
+
- **`@xmachines/core/utils`** — the release protocol, and small helpers for values and errors.
|
|
17
|
+
- **`@xmachines/core/cache`** — a key-value cache contract, and an LRU cache.
|
|
18
|
+
|
|
19
|
+
A subscription of the XMachines packages hands back a plain release: a function, or an object with a release method. A caller that wants a `using` scope publishes the release with `asDisposable`. A caller that does not pays nothing.
|
|
20
|
+
|
|
21
|
+
- **`asDisposable(release)`** — makes a release function a `Disposable`. The function is its own release.
|
|
22
|
+
- **`asDisposable(target, release)`** — makes an object a `Disposable`, with the release that the caller names.
|
|
23
|
+
- **`DISPOSE`** — the symbol key that a release sits under.
|
|
24
|
+
- **`DisposeKey`** and **`DisposeMember`** — the types of that key and of the member.
|
|
25
|
+
|
|
26
|
+
The package keeps no module state, so `DISPOSE` resolves to the same symbol in each copy. It must still exist one time in an install, because `err instanceof BaseError` answers `false` for an error of a second copy. Each package that reads it therefore names it as a peer.
|
|
27
|
+
|
|
28
|
+
## Installation
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
pnpm add @xmachines/core
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Errors
|
|
35
|
+
|
|
36
|
+
`BaseError` gives each error two stable fields: `scope`, the class or the module that threw it, and `code`, a machine-readable identifier. `PlayError` of [`@xmachines/play`](../play/README.md) extends it, so `err instanceof BaseError` matches every typed error of the workspace. Branch on the class or on `code`, and never on `message`.
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
import { BaseError } from "@xmachines/core/errors";
|
|
40
|
+
|
|
41
|
+
try {
|
|
42
|
+
start();
|
|
43
|
+
} catch (err) {
|
|
44
|
+
if (err instanceof BaseError) {
|
|
45
|
+
console.error(`[${err.scope}:${err.code}] ${err.message}`);
|
|
46
|
+
} else {
|
|
47
|
+
throw err;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
A package below the Play protocol extends `BaseError` directly. This package throws one such error: `DisposeConflictError`, with the code `CORE_DISPOSE_CONFLICT`.
|
|
53
|
+
|
|
54
|
+
## Usage
|
|
55
|
+
|
|
56
|
+
### A release function
|
|
57
|
+
|
|
58
|
+
`asDisposable` gives the SAME function back with the dispose key added. Nothing wraps it, so a caller that runs the release keeps that code:
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
import { watchAtom } from "@xmachines/play-atom";
|
|
62
|
+
import { asDisposable } from "@xmachines/core/utils";
|
|
63
|
+
|
|
64
|
+
// The explicit form.
|
|
65
|
+
const stop = watchAtom(count, render);
|
|
66
|
+
stop();
|
|
67
|
+
|
|
68
|
+
// The scoped form. The scope releases it, and an exception releases it too.
|
|
69
|
+
{
|
|
70
|
+
using stop = asDisposable(watchAtom(count, render));
|
|
71
|
+
render(count.get());
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### An object
|
|
76
|
+
|
|
77
|
+
An object names its release. The object comes back as itself, and it keeps every member that it had:
|
|
78
|
+
|
|
79
|
+
```ts
|
|
80
|
+
import { createBrowserHistory } from "@xmachines/play-dom-router";
|
|
81
|
+
import { asDisposable } from "@xmachines/core/utils";
|
|
82
|
+
|
|
83
|
+
{
|
|
84
|
+
const plain = createBrowserHistory({ window });
|
|
85
|
+
using history = asDisposable(plain, () => plain.destroy());
|
|
86
|
+
history.push("/first");
|
|
87
|
+
} // destroy() runs here
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### A value that is a `Disposable` already
|
|
91
|
+
|
|
92
|
+
`asDisposable` adds the key only where it is absent. `asDisposable(release)` gives a value that carries a dispose member already, own or inherited, back unchanged, and a second call changes nothing. A Vitest mock is such a value: its dispose restores the mock.
|
|
93
|
+
|
|
94
|
+
A named release does not replace that member. `asDisposable(target, release)` throws a `DisposeConflictError` when the target has a dispose member already, because the scope would run that member and never the release. A second call with the same release is not a conflict, and it returns the target. Each form fills a well-known key that a polyfill installed after the first call.
|
|
95
|
+
|
|
96
|
+
### The rules of a release
|
|
97
|
+
|
|
98
|
+
- **Idempotent.** A caller that runs the release AND lets the scope end runs it two times.
|
|
99
|
+
- **Synchronous.** The type rejects a release that returns a value, a promise above all. A `Disposable` serves `using` and `await using`, while an `AsyncDisposable` raises a TypeError under a plain `using`.
|
|
100
|
+
|
|
101
|
+
The key is not enumerable, so a spread of the value does not copy it.
|
|
102
|
+
|
|
103
|
+
Use `DISPOSE` and not a bare `Symbol.dispose` when a class implements the protocol itself. A bundler that downlevels `using` for a target below Chrome 134 emits a helper that reads `object[Symbol.dispose || Symbol.for("Symbol.dispose")]`, and `DISPOSE` is that same pair:
|
|
104
|
+
|
|
105
|
+
```ts
|
|
106
|
+
import { DISPOSE } from "@xmachines/core/utils";
|
|
107
|
+
|
|
108
|
+
class Session {
|
|
109
|
+
close(): void {}
|
|
110
|
+
[DISPOSE](): void {
|
|
111
|
+
this.close();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
> **The `using` form needs `"lib": ["ESNext"]`.** A consumer on a lower `lib` reads `DisposeMember` as an empty type, and every call site keeps compiling.
|
|
117
|
+
|
|
118
|
+
### `releaseQuietly(release, onFailure)`
|
|
119
|
+
|
|
120
|
+
Runs one release, and gives a throw of it to `onFailure`. A teardown that runs several releases in a row runs each one through it, so a throw of the first release skips none of the others. `null` and `undefined` do nothing.
|
|
121
|
+
|
|
122
|
+
## Value helpers
|
|
123
|
+
|
|
124
|
+
### `isError(value)`
|
|
125
|
+
|
|
126
|
+
Tells if a value is an `Error` of any realm. The function tries `instanceof` first, so an object that inherits from `Error.prototype` answers `true`. `instanceof` misses an error from an iframe or from `node:vm`, so for such a value the function uses `Error.isError` where the runtime has it, and it tests the brand elsewhere. It can throw for a revoked Proxy, so wrap it in `try` inside an error path.
|
|
127
|
+
|
|
128
|
+
### `safeString(value)` and `describeValue(value)`
|
|
129
|
+
|
|
130
|
+
Two ways to put an unknown value in the message of an error, and neither one throws. `safeString` gives the `String()` of the value, and it falls back to the brand for an object with a null prototype or a conversion that throws. `describeValue` gives the JSON text, and it names the type for a value that JSON drops or cannot write, such as `[function]`.
|
|
131
|
+
|
|
132
|
+
### `isThenable(value)`
|
|
133
|
+
|
|
134
|
+
Tells if a value has a callable `then`, which is the test that `await` applies. Use it where a declared `void | Promise<void>` says nothing at run time.
|
|
135
|
+
|
|
136
|
+
### `createNullRecord()`
|
|
137
|
+
|
|
138
|
+
Builds an empty record with no prototype. A record that collects keys from outside the program — the params of a URL, the query of a location — takes any key that the outside sends. In an ordinary `{}`, a key such as `__proto__` writes the prototype and not an entry.
|
|
139
|
+
|
|
140
|
+
### `rethrowLater(error)`
|
|
141
|
+
|
|
142
|
+
Throws an error again from a microtask of its own, and returns at once. The throw reaches the global handler of the runtime, and it touches the current stack not. A host escalates a failure this way from the `onError` handler of a renderer: each renderer contains a handler that throws, so a plain `throw` there reaches no caller.
|
|
143
|
+
|
|
144
|
+
### `createWarnOnce()`
|
|
145
|
+
|
|
146
|
+
Builds a function of `(anchor, message)` that writes one `console.warn` for each anchor object. A diagnostic that a hot path finds — a stale field of a static config, read on every event — reports one time for that config, and not at the rate of the path. Each function keeps a memory of its own, so the package keeps no module state.
|
|
147
|
+
|
|
148
|
+
### `shallowEqualExcept(a, b, except?)`
|
|
149
|
+
|
|
150
|
+
Compares the own keys of two objects with `Object.is`, and it can ignore one key on both sides. A key that one side carries and the other lacks makes the two unequal. The emission dedup of the Play packages reads it.
|
|
151
|
+
|
|
152
|
+
## The cache, on `@xmachines/core/cache`
|
|
153
|
+
|
|
154
|
+
The cache has a subpath of its own, because it is cache code alone.
|
|
155
|
+
|
|
156
|
+
- **`KeyValueCache<V>`** — a read and a write by a string key. A `Map` satisfies it, and so does an LRU of any library. A cache may forget an entry at any time.
|
|
157
|
+
- **`createLruCache<V>(maxSize = 500)`** — a cache that forgets its least recently used entries. It holds two generations, so it holds `2 * maxSize + 1` entries at most. A size below `1` reads as `1`, a fraction rounds down, and a size that is not a finite number reads as the default.
|
|
158
|
+
|
|
159
|
+
```ts
|
|
160
|
+
import { createLruCache } from "@xmachines/core/cache";
|
|
161
|
+
|
|
162
|
+
const pathCache = createLruCache<string | null>(5000);
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
The route map of [`@xmachines/play-router`](../play-router/README.md) and the parse of [`@xmachines/play-pattern`](../play-pattern/README.md) take such a cache, and those packages re-export both names.
|
|
166
|
+
|
|
167
|
+
## API Summary
|
|
168
|
+
|
|
169
|
+
### Exported from `@xmachines/core/errors`
|
|
170
|
+
|
|
171
|
+
| Export | Kind | Description |
|
|
172
|
+
| ---------------------- | ------- | ------------------------------------------------------------------- |
|
|
173
|
+
| `BaseError` | `class` | The base of every typed error: a `scope` and a `code` |
|
|
174
|
+
| `DisposeConflictError` | `class` | `asDisposable` refuses a named release that the scope would not run |
|
|
175
|
+
|
|
176
|
+
### Exported from `@xmachines/core/utils`
|
|
177
|
+
|
|
178
|
+
| Export | Kind | Description |
|
|
179
|
+
| -------------------- | ---------- | ------------------------------------------------------------------------ |
|
|
180
|
+
| `asDisposable` | `function` | Makes one function or object a `Disposable`. It changes the value itself |
|
|
181
|
+
| `DISPOSE` | `const` | The symbol key that a release sits under |
|
|
182
|
+
| `DisposeKey` | `type` | The type of that key, and `never` where the consumer omits the lib |
|
|
183
|
+
| `DisposeMember` | `type` | The dispose member of a `Disposable`, and none where the lib is absent |
|
|
184
|
+
| `releaseQuietly` | `function` | Runs one release, and gives a throw of it to `onFailure` |
|
|
185
|
+
| `rethrowLater` | `function` | Throws an error again from a microtask of its own |
|
|
186
|
+
| `createWarnOnce` | `function` | Builds a function that warns one time for each anchor object |
|
|
187
|
+
| `isError` | `function` | Tells if a value is an `Error` of any realm |
|
|
188
|
+
| `safeString` | `function` | The `String()` of a value, and it throws never |
|
|
189
|
+
| `describeValue` | `function` | The JSON text of a value, or its type in brackets |
|
|
190
|
+
| `isThenable` | `function` | Tells if a value has a callable `then` |
|
|
191
|
+
| `createNullRecord` | `function` | An empty record with no prototype |
|
|
192
|
+
| `shallowEqualExcept` | `function` | The shallow equality of the own keys, and it can ignore one key |
|
|
193
|
+
|
|
194
|
+
### Exported from `@xmachines/core/cache`
|
|
195
|
+
|
|
196
|
+
| Export | Kind | Description |
|
|
197
|
+
| ------------------ | ----------- | ---------------------------------------------------- |
|
|
198
|
+
| `KeyValueCache<V>` | `interface` | A read and a write by a string key |
|
|
199
|
+
| `createLruCache` | `function` | A cache that forgets its least recently used entries |
|
|
200
|
+
|
|
201
|
+
## License
|
|
202
|
+
|
|
203
|
+
MIT
|
|
204
|
+
|
|
205
|
+
## Modules
|
|
206
|
+
|
|
207
|
+
- [cache](cache/README.md)
|
|
208
|
+
- [errors](errors/README.md)
|
|
209
|
+
- [utils](utils/README.md)
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/core](../README.md) / cache
|
|
2
|
+
|
|
3
|
+
# cache
|
|
4
|
+
|
|
5
|
+
A cache contract by a string key, and a default implementation of it.
|
|
6
|
+
|
|
7
|
+
The contract is two methods, so a `Map` satisfies it, and so does an LRU of any
|
|
8
|
+
library. A caller that wants a time to live or an eviction callback brings the module
|
|
9
|
+
that has one, and the code that reads the cache needs to know nothing about it.
|
|
10
|
+
|
|
11
|
+
## Interfaces
|
|
12
|
+
|
|
13
|
+
- [KeyValueCache](interfaces/KeyValueCache.md)
|
|
14
|
+
|
|
15
|
+
## Functions
|
|
16
|
+
|
|
17
|
+
- [createLruCache](functions/createLruCache.md)
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
[API](../../../../README.md) / [@xmachines/core](../../README.md) / [cache](../README.md) / createLruCache
|
|
2
|
+
|
|
3
|
+
# Function: createLruCache()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function createLruCache<V>(maxSize?): KeyValueCache<V>;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [packages/core/src/cache.ts:54](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/core/src/cache.ts#L54)
|
|
10
|
+
|
|
11
|
+
Builds a cache that forgets its least recently used entries.
|
|
12
|
+
|
|
13
|
+
## The algorithm
|
|
14
|
+
|
|
15
|
+
Two maps, and no list. `recent` takes every write. When a write takes `recent` past
|
|
16
|
+
`maxSize` entries, it becomes `old` and a new `recent` opens, which drops the previous
|
|
17
|
+
`old` whole. A read of a key of `old` moves the entry into `recent`, and THAT is what
|
|
18
|
+
makes the eviction an LRU one rather than a FIFO one: an entry that every lookup reads
|
|
19
|
+
moves forward, and an entry that nothing reads falls out with the map that holds it.
|
|
20
|
+
|
|
21
|
+
The cache therefore holds `2 * maxSize + 1` entries at most: `old` holds `maxSize + 1`,
|
|
22
|
+
and `recent` holds `maxSize`. It does no bookkeeping for a read that hits `recent`.
|
|
23
|
+
|
|
24
|
+
A stored `undefined` reads as a miss. Store `null` for "no value".
|
|
25
|
+
|
|
26
|
+
## Type Parameters
|
|
27
|
+
|
|
28
|
+
| Type Parameter |
|
|
29
|
+
| -------------- |
|
|
30
|
+
| `V` |
|
|
31
|
+
|
|
32
|
+
## Parameters
|
|
33
|
+
|
|
34
|
+
| Parameter | Type | Default value | Description |
|
|
35
|
+
| --------- | -------- | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
36
|
+
| `maxSize` | `number` | `500` | The number of entries that `recent` holds. It is `1` at the least, and the default is `500`. A value that is not a finite number reads as the default, so a cache with no eviction at all cannot happen by accident. |
|
|
37
|
+
|
|
38
|
+
## Returns
|
|
39
|
+
|
|
40
|
+
[`KeyValueCache`](../interfaces/KeyValueCache.md)\<`V`\>
|
|
41
|
+
|
|
42
|
+
A cache. It is not shared: each call builds one.
|
|
43
|
+
|
|
44
|
+
## Example
|
|
45
|
+
|
|
46
|
+
```typescript
|
|
47
|
+
import { createLruCache } from "@xmachines/core/cache";
|
|
48
|
+
|
|
49
|
+
const cache = createLruCache<string>(50);
|
|
50
|
+
cache.set("/profile/:userId", "profile");
|
|
51
|
+
cache.get("/profile/:userId"); // "profile"
|
|
52
|
+
```
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
[API](../../../../README.md) / [@xmachines/core](../../README.md) / [cache](../README.md) / KeyValueCache
|
|
2
|
+
|
|
3
|
+
# Interface: KeyValueCache\<V\>
|
|
4
|
+
|
|
5
|
+
Defined in: [packages/core/src/cache.ts:17](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/core/src/cache.ts#L17)
|
|
6
|
+
|
|
7
|
+
What a reader needs from a cache: a read and a write, both by a string key.
|
|
8
|
+
|
|
9
|
+
A cache may forget an entry at any time, and it may forget none. Both are correct for a
|
|
10
|
+
reader that computes the value again for an entry that is absent.
|
|
11
|
+
|
|
12
|
+
## Type Parameters
|
|
13
|
+
|
|
14
|
+
| Type Parameter |
|
|
15
|
+
| -------------- |
|
|
16
|
+
| `V` |
|
|
17
|
+
|
|
18
|
+
## Methods
|
|
19
|
+
|
|
20
|
+
### get()
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
get(key): V | undefined;
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Defined in: [packages/core/src/cache.ts:19](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/core/src/cache.ts#L19)
|
|
27
|
+
|
|
28
|
+
Reads one entry, or `undefined` when the cache holds none for the key.
|
|
29
|
+
|
|
30
|
+
#### Parameters
|
|
31
|
+
|
|
32
|
+
| Parameter | Type |
|
|
33
|
+
| --------- | -------- |
|
|
34
|
+
| `key` | `string` |
|
|
35
|
+
|
|
36
|
+
#### Returns
|
|
37
|
+
|
|
38
|
+
`V` \| `undefined`
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
### set()
|
|
43
|
+
|
|
44
|
+
```ts
|
|
45
|
+
set(key, value): void;
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Defined in: [packages/core/src/cache.ts:21](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/core/src/cache.ts#L21)
|
|
49
|
+
|
|
50
|
+
Writes one entry.
|
|
51
|
+
|
|
52
|
+
#### Parameters
|
|
53
|
+
|
|
54
|
+
| Parameter | Type |
|
|
55
|
+
| --------- | -------- |
|
|
56
|
+
| `key` | `string` |
|
|
57
|
+
| `value` | `V` |
|
|
58
|
+
|
|
59
|
+
#### Returns
|
|
60
|
+
|
|
61
|
+
`void`
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/core](../README.md) / errors
|
|
2
|
+
|
|
3
|
+
# errors
|
|
4
|
+
|
|
5
|
+
The error base of the XMachines packages: [BaseError](classes/BaseError.md), and
|
|
6
|
+
[DisposeConflictError](classes/DisposeConflictError.md), the one error that `@xmachines/core` throws.
|
|
7
|
+
|
|
8
|
+
## Classes
|
|
9
|
+
|
|
10
|
+
- [BaseError](classes/BaseError.md)
|
|
11
|
+
- [DisposeConflictError](classes/DisposeConflictError.md)
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
[API](../../../../README.md) / [@xmachines/core](../../README.md) / [errors](../README.md) / BaseError
|
|
2
|
+
|
|
3
|
+
# Class: BaseError
|
|
4
|
+
|
|
5
|
+
Defined in: [packages/core/src/errors.ts:44](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/core/src/errors.ts#L44)
|
|
6
|
+
|
|
7
|
+
The base class of every typed runtime error of an `@xmachines/*` package.
|
|
8
|
+
|
|
9
|
+
`BaseError` gives each error two structured fields:
|
|
10
|
+
|
|
11
|
+
- `scope` — the class or the module that threw the error, for example `"asDisposable"`
|
|
12
|
+
- `code` — a stable, machine-readable identifier, for example `"CORE_DISPOSE_CONFLICT"`
|
|
13
|
+
|
|
14
|
+
Your application code therefore branches on the type of an error, and it does not
|
|
15
|
+
parse the `.message` string. A message changes between releases.
|
|
16
|
+
|
|
17
|
+
`PlayError` of `@xmachines/play/errors` extends this class, and every error of a Play
|
|
18
|
+
package extends `PlayError`. A package below the Play protocol, such as this one,
|
|
19
|
+
extends `BaseError` directly. `err instanceof BaseError` therefore matches every
|
|
20
|
+
typed error of the workspace.
|
|
21
|
+
|
|
22
|
+
## How to catch an error by its type
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
import { BaseError, DisposeConflictError } from "@xmachines/core/errors";
|
|
26
|
+
import { asDisposable } from "@xmachines/core/utils";
|
|
27
|
+
|
|
28
|
+
try {
|
|
29
|
+
using handle = asDisposable(target, release);
|
|
30
|
+
} catch (err) {
|
|
31
|
+
if (err instanceof DisposeConflictError) {
|
|
32
|
+
// err.scope === "asDisposable"
|
|
33
|
+
// err.code === "CORE_DISPOSE_CONFLICT"
|
|
34
|
+
} else if (err instanceof BaseError) {
|
|
35
|
+
// Every other @xmachines/* error
|
|
36
|
+
console.error(`[${err.scope}:${err.code}] ${err.message}`);
|
|
37
|
+
} else {
|
|
38
|
+
throw err; // Throw an unknown error again
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Extends
|
|
44
|
+
|
|
45
|
+
- `Error`
|
|
46
|
+
|
|
47
|
+
## Extended by
|
|
48
|
+
|
|
49
|
+
- [`DisposeConflictError`](DisposeConflictError.md)
|
|
50
|
+
- [`PlayError`](../../../play/errors/classes/PlayError.md)
|
|
51
|
+
|
|
52
|
+
## Constructors
|
|
53
|
+
|
|
54
|
+
### Constructor
|
|
55
|
+
|
|
56
|
+
```ts
|
|
57
|
+
new BaseError(
|
|
58
|
+
scope,
|
|
59
|
+
code,
|
|
60
|
+
message,
|
|
61
|
+
options?
|
|
62
|
+
): BaseError;
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Defined in: [packages/core/src/errors.ts:64](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/core/src/errors.ts#L64)
|
|
66
|
+
|
|
67
|
+
#### Parameters
|
|
68
|
+
|
|
69
|
+
| Parameter | Type | Description |
|
|
70
|
+
| ---------- | -------------- | --------------------------------------------------------------------------------------- |
|
|
71
|
+
| `scope` | `string` | The class or the module that throws this error. |
|
|
72
|
+
| `code` | `string` | The machine-readable identifier of the error, for example `"CORE_DISPOSE_CONFLICT"`. |
|
|
73
|
+
| `message` | `string` | The description for a person. Never match on it in your code. |
|
|
74
|
+
| `options?` | `ErrorOptions` | The standard `ErrorOptions`. Give `{ cause: originalError }` to make a chain of errors. |
|
|
75
|
+
|
|
76
|
+
#### Returns
|
|
77
|
+
|
|
78
|
+
`BaseError`
|
|
79
|
+
|
|
80
|
+
#### Overrides
|
|
81
|
+
|
|
82
|
+
```ts
|
|
83
|
+
Error.constructor;
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Properties
|
|
87
|
+
|
|
88
|
+
| Property | Modifier | Type | Description | Inherited from | Defined in |
|
|
89
|
+
| ------------------------------------------------------- | ---------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------- |
|
|
90
|
+
| <a id="property-cause"></a> `cause?` | `public` | `unknown` | - | `Error.cause` | - |
|
|
91
|
+
| <a id="property-code"></a> `code` | `readonly` | `string` | A stable, machine-readable identifier of the error. An error code follows the naming convention `<PACKAGE>_<DESCRIPTION>`, and a Play package writes `PLAY_<PACKAGE>_<DESCRIPTION>`. A code 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. | - | [packages/core/src/errors.ts:56](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/core/src/errors.ts#L56) |
|
|
92
|
+
| <a id="property-message"></a> `message` | `public` | `string` | - | `Error.message` | - |
|
|
93
|
+
| <a id="property-name"></a> `name` | `public` | `string` | - | `Error.name` | - |
|
|
94
|
+
| <a id="property-scope"></a> `scope` | `readonly` | `string` | The class or the module that threw this error, for example `"asDisposable"`. | - | [packages/core/src/errors.ts:46](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/core/src/errors.ts#L46) |
|
|
95
|
+
| <a id="property-stack"></a> `stack?` | `public` | `string` | - | `Error.stack` | - |
|
|
96
|
+
| <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. | `Error.stackTraceLimit` | - |
|
|
97
|
+
|
|
98
|
+
## Methods
|
|
99
|
+
|
|
100
|
+
### captureStackTrace()
|
|
101
|
+
|
|
102
|
+
```ts
|
|
103
|
+
static captureStackTrace(targetObject, constructorOpt?): void;
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Defined in: `@types/node`
|
|
107
|
+
|
|
108
|
+
Creates a `.stack` property on `targetObject`, which when accessed returns
|
|
109
|
+
a string representing the location in the code at which
|
|
110
|
+
`Error.captureStackTrace()` was called.
|
|
111
|
+
|
|
112
|
+
```js
|
|
113
|
+
const myObject = {};
|
|
114
|
+
Error.captureStackTrace(myObject);
|
|
115
|
+
myObject.stack; // Similar to `new Error().stack`
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
The first line of the trace will be prefixed with
|
|
119
|
+
`${myObject.name}: ${myObject.message}`.
|
|
120
|
+
|
|
121
|
+
The optional `constructorOpt` argument accepts a function. If given, all frames
|
|
122
|
+
above `constructorOpt`, including `constructorOpt`, will be omitted from the
|
|
123
|
+
generated stack trace.
|
|
124
|
+
|
|
125
|
+
The `constructorOpt` argument is useful for hiding implementation
|
|
126
|
+
details of error generation from the user. For instance:
|
|
127
|
+
|
|
128
|
+
```js
|
|
129
|
+
function a() {
|
|
130
|
+
b();
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function b() {
|
|
134
|
+
c();
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
function c() {
|
|
138
|
+
// Create an error without stack trace to avoid calculating the stack trace twice.
|
|
139
|
+
const { stackTraceLimit } = Error;
|
|
140
|
+
Error.stackTraceLimit = 0;
|
|
141
|
+
const error = new Error();
|
|
142
|
+
Error.stackTraceLimit = stackTraceLimit;
|
|
143
|
+
|
|
144
|
+
// Capture the stack trace above function b
|
|
145
|
+
Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
|
|
146
|
+
throw error;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
a();
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
#### Parameters
|
|
153
|
+
|
|
154
|
+
| Parameter | Type |
|
|
155
|
+
| ----------------- | ---------- |
|
|
156
|
+
| `targetObject` | `object` |
|
|
157
|
+
| `constructorOpt?` | `Function` |
|
|
158
|
+
|
|
159
|
+
#### Returns
|
|
160
|
+
|
|
161
|
+
`void`
|
|
162
|
+
|
|
163
|
+
#### Inherited from
|
|
164
|
+
|
|
165
|
+
```ts
|
|
166
|
+
Error.captureStackTrace;
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
### isError()
|
|
172
|
+
|
|
173
|
+
```ts
|
|
174
|
+
static isError(error): error is Error;
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Defined in: `typescript`
|
|
178
|
+
|
|
179
|
+
Indicates whether the argument provided is a built-in Error instance or not.
|
|
180
|
+
|
|
181
|
+
#### Parameters
|
|
182
|
+
|
|
183
|
+
| Parameter | Type |
|
|
184
|
+
| --------- | --------- |
|
|
185
|
+
| `error` | `unknown` |
|
|
186
|
+
|
|
187
|
+
#### Returns
|
|
188
|
+
|
|
189
|
+
`error is Error`
|
|
190
|
+
|
|
191
|
+
#### Inherited from
|
|
192
|
+
|
|
193
|
+
```ts
|
|
194
|
+
Error.isError;
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
### prepareStackTrace()
|
|
200
|
+
|
|
201
|
+
```ts
|
|
202
|
+
static prepareStackTrace(err, stackTraces): any;
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Defined in: `@types/node`
|
|
206
|
+
|
|
207
|
+
#### Parameters
|
|
208
|
+
|
|
209
|
+
| Parameter | Type |
|
|
210
|
+
| ------------- | ------------ |
|
|
211
|
+
| `err` | `Error` |
|
|
212
|
+
| `stackTraces` | `CallSite`[] |
|
|
213
|
+
|
|
214
|
+
#### Returns
|
|
215
|
+
|
|
216
|
+
`any`
|
|
217
|
+
|
|
218
|
+
#### See
|
|
219
|
+
|
|
220
|
+
https://v8.dev/docs/stack-trace-api#customizing-stack-traces
|
|
221
|
+
|
|
222
|
+
#### Inherited from
|
|
223
|
+
|
|
224
|
+
```ts
|
|
225
|
+
Error.prepareStackTrace;
|
|
226
|
+
```
|